《數(shù)據(jù)庫原理及應(yīng)用》第2版 課件 第12章 數(shù)據(jù)庫安全_第1頁
《數(shù)據(jù)庫原理及應(yīng)用》第2版 課件 第12章 數(shù)據(jù)庫安全_第2頁
《數(shù)據(jù)庫原理及應(yīng)用》第2版 課件 第12章 數(shù)據(jù)庫安全_第3頁
《數(shù)據(jù)庫原理及應(yīng)用》第2版 課件 第12章 數(shù)據(jù)庫安全_第4頁
《數(shù)據(jù)庫原理及應(yīng)用》第2版 課件 第12章 數(shù)據(jù)庫安全_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

數(shù)據(jù)庫虛擬教研室制作數(shù)據(jù)庫《數(shù)據(jù)庫原理及應(yīng)用》目錄01數(shù)據(jù)庫安全性概述02計算機系統(tǒng)中的安全模型03用戶管理04權(quán)限管理05角色管理第12章數(shù)據(jù)庫安全數(shù)據(jù)庫安全性概述問題的提出:數(shù)據(jù)庫的一大特點是數(shù)據(jù)可以共享,但數(shù)據(jù)共享必然帶來數(shù)據(jù)庫的安全性問題,數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)共享不能是無條件的共享,而是有條件的共享。數(shù)據(jù)庫中數(shù)據(jù)的共享是在DBMS統(tǒng)一的嚴(yán)格的控制之下的共享,即只允許有合法使用權(quán)限的用戶訪問允許他存取的數(shù)據(jù)。數(shù)據(jù)庫安全性概述數(shù)據(jù)庫不安全的因素:非授權(quán)用戶對數(shù)據(jù)庫的惡意存取和破壞;數(shù)據(jù)庫中重要或敏感的數(shù)據(jù)被泄露;安全環(huán)境的脆弱性。數(shù)據(jù)庫安全性概述數(shù)據(jù)庫安全的保障:技術(shù)安全類:使用各種安全技術(shù)防止數(shù)據(jù)被非法訪問;管理安全類:加強安全管理,防止信息泄漏;政策法律類:通過法律保障。2021年6月10日第十三屆全國人民代表大會常務(wù)委員會第二十九次會議通過《中華人民共和國數(shù)據(jù)安全法》計算機系統(tǒng)中的安全模型

應(yīng)用DBMSOS

DB

高安全性控制層次方法用戶標(biāo)識和鑒定

存取控制審計視圖

操作系統(tǒng)安全保護

密碼存儲用戶標(biāo)識與鑒定這是DBS提供的最外層安全保護措施。用戶訪問數(shù)據(jù)庫之前,必須先標(biāo)識自己的身份,由系統(tǒng)核實,通過鑒定后才提供機器使用權(quán)。常用方法有:靜態(tài)口令:這是最常用的方式,如輸入用戶密碼。動態(tài)口令:較安全,如短信或驗證碼。用戶個人特征:較安全,如指紋、虹膜、人臉等。智能卡:安全性高,如磁卡、IC卡、U-key等。存取控制存取控制機制:確保只授權(quán)給有資格的用戶訪問數(shù)據(jù)庫的權(quán)限,同時令所有未被授權(quán)的人員無法進入數(shù)據(jù)庫系統(tǒng)。每當(dāng)用戶向系統(tǒng)發(fā)出存取數(shù)據(jù)庫的請求后,DBMS查找數(shù)據(jù)字典,根據(jù)安全規(guī)則進行合法權(quán)限的檢查,若用戶的操作請求超出了合法權(quán)限,系統(tǒng)則拒絕執(zhí)行此操作。存取控制數(shù)據(jù)庫實現(xiàn)存取控制主要有兩種:自主存取控制(DAC):一個主體只能在獲得對一個客體的操作權(quán)限后才能對客體進行操作;主體對它創(chuàng)建的客體擁有所有權(quán),自然獲得對客體的一切操作權(quán)限。強制存取控制(MAC):對每一個數(shù)據(jù)對象標(biāo)以一定的密級,每一個用戶也被授予某一個級別的許可證。對于任意一個對象,只有具有合法許可證的用戶才可以存取。視圖機制為不同的用戶定義不同的視圖,可以限制各個用戶的訪問范圍。通過對視圖實施自主存取控制機制把要保密的數(shù)據(jù)對無權(quán)存取的用戶隱藏起來,從而自動地對數(shù)據(jù)提供一定程度的安全保護。視圖機制【例12.1】建立計算機系學(xué)生的視圖,把對該視圖的SELECT權(quán)限授于王平。--建立計算機系學(xué)生的視圖CREATEVIEWcs_studentASSELECT*FROMstudentWHEREdept='計算機';--授予SELECT權(quán)限給王平GRANTSELECTONcs_studentTO王平;數(shù)據(jù)加密數(shù)據(jù)加密是指把數(shù)據(jù)用密碼形式存儲在磁盤上。用戶標(biāo)識、存取控制、視圖等是防止從數(shù)據(jù)庫系統(tǒng)竊取和破壞數(shù)據(jù),但不能防止通過通信線路進行竊聽和竊取數(shù)據(jù)。為了更好地保證數(shù)據(jù)庫的安全性,用密碼存儲口令、數(shù)據(jù),對遠程用戶的信息用密碼傳輸,防止中途非法截獲數(shù)據(jù)。數(shù)據(jù)加密單向加密是對用戶密碼做了一個HASH算法,使明文到密文變得可行,但從密文無法查看到明文。單向加密函數(shù)通常有:MD5()、SHA1()和PASSWORD()等。雙向加密是指明文可以變成密文存儲在數(shù)據(jù)庫中,同時密文也能通過相應(yīng)的解密方法查看到明文。雙向加密函數(shù)有:ENCODE()和DECODE()、DES_ENCRYPT()和DES_DECRYPT()、AES_ENCRYPT()和AES_DECRYPT()三種。數(shù)據(jù)加密【例12.2】創(chuàng)建一張CREATETABLEusers(usernameVARCHAR(128),pwdBLOB)表,分別用MD5()和AES_ENCRYPT()對pwd字段的內(nèi)容進行加密,并觀察加密的內(nèi)容。CREATETABLEusers(usernameVARCHAR(128),pwdBLOB);--插入一條測試語句INSERTINTOusersVALUES('jery',MD5('mypwd'));--插入一條測試語句INSERTINTOusersVALUES(‘tom',AES_ENCRYPT('guessme','芝麻開門'));--查詢john的密碼SELECTusername,AES_DECRYPT(pwd,‘芝麻開門’)FROMusers;審計數(shù)據(jù)庫審計功能主要將用戶對數(shù)據(jù)庫的各類操作行為記錄下來放入審計日志,以便日后進行跟蹤、查詢、分析,實現(xiàn)對用戶操作的監(jiān)控和審計。

審計通常是很耗費時間和空間的,所以這項功能一般是作為DBMS的可選項,主要用于安全性要求較高的部門或單位。MySQL權(quán)限管理在MySQL服務(wù)器運行時,客戶端請求連接必須提供有效的身份認(rèn)證,例如輸入用戶名和密碼。MySQL用戶可以分為根(root)用戶和普通用戶。根用戶是超級管理員,用戶名為root,擁有所有權(quán)限;普通用戶只擁有被授予的權(quán)限;

當(dāng)某用戶執(zhí)行數(shù)據(jù)庫操作時,服務(wù)器將會驗證該用戶是否具有相應(yīng)的權(quán)限。--查看mysql用戶表userSELECT*FROMmysql.user;用戶管理CREATEUSER賬戶名[IDENTIFIED][with加密插件][BY密碼][密碼管理選項|賬戶鎖定選項]1.創(chuàng)建用戶(1)賬戶名是由“用戶名@主機名”組成的,其中主機名有以下幾種形式:‘%’:使用百分號(%)作為通配符,表示允許從任何主機連接。主機名省略,默認(rèn)為‘%’'localhost':表示用戶只能從運行MySQL服務(wù)器的同一臺機器上連接。地址:你可以指定一個具體的IP地址,允許用戶僅從該IP地址連接。如:'user'@'00'

子網(wǎng)掩碼:使用子網(wǎng)掩碼可以允許來自特定子網(wǎng)的連接。如:'user'@'192.168.1.%'域名:也可以使用完整的域名來限制連接。如:'user'@''?!纠?2.3】創(chuàng)建新用戶user1,并設(shè)置密碼為user1。CREATEUSERuser1@localhostIDENTIFIEDBY'user1';CREATEUSERuser1IDENTIFIEDBY'user1';用戶管理CREATEUSER賬戶名[IDENTIFIED][with加密插件][BY密碼][密碼管理選項|賬戶鎖定選項]1.創(chuàng)建用戶(2)with加密插件有兩種形式:mysql_native_password:默認(rèn)用于MySQL8.0之前的身份驗證插件,使用基于SHA-1的散列算法來加密密碼。caching_sha2_password:是MySQL8.0中引入的新默認(rèn)身份驗證插件,使用基于SHA-256的散列算法來加密密碼,提供更強大的安全性。注意:在安裝MySQL服務(wù)時可以選擇,推薦選擇第一種,客戶端連接時無需要修改插件【例12.3】創(chuàng)建新用戶user1,并指定插件。CREATEUSERuser1IDENTIFIEDWITH'mysql_native_password'BY'user1';用戶管理【例12.4】創(chuàng)建一個名為user2的用戶,并設(shè)置其密碼每180天變更一次,鎖定賬戶,具體SQL語句如下。CREATEUSERuser2IDENTIFIEDBY'user2'PASSWORDexpireINTERVAL180DAYACCOUNTLOCK;(3)創(chuàng)建有密碼期限的用戶(4)賬戶鎖定選項ACCOUNTLOCK:創(chuàng)建用戶時鎖定賬戶,防止該賬戶進行任何操作。ACCOUNTUNLOCK:解鎖一個已經(jīng)被鎖定的賬戶。用戶管理(1)修改用戶名,具體SQL語句如下。RENAMEUSER<舊用戶名>TO<新用戶名>;【例12.5】將user1@localhost用戶名修改為user1@''。RENAMEUSERuser1@localhostTOuser1@'';2.修改用戶【例12.6】將user2密碼修改為‘user2',驗證方式為'mysql_native_password',密碼長期有效,用戶為解鎖狀態(tài)。ALTERUSERuser2IDENTIFIEDWITH'mysql_native_password

'BY'user2'PASSWORDexpireneverACCOUNTUNLOCK;用戶管理DROPUSER[IFEXISTS]<帳戶名>,…;【例12.7】刪除user1和user1@兩個帳DROPUSERuser1,user1@;3.刪除用戶權(quán)限管理MySQL中的權(quán)限信息根據(jù)其作用范圍,分別存儲在mysql數(shù)據(jù)庫中的不同數(shù)據(jù)表中。MySQL啟動時會自動加載這些權(quán)限信息,并將這些權(quán)限信息讀取到內(nèi)存中。與權(quán)限相關(guān)的數(shù)據(jù)表如表所示:權(quán)限管理GRANT權(quán)限類型//通常指的是數(shù)據(jù)權(quán)限即對表中數(shù)據(jù)進行增、刪、改、查的權(quán)限ON權(quán)限級別//全局權(quán)限、數(shù)據(jù)庫權(quán)限和表權(quán)限TO

賬戶名[REQUIRE]//通常涉及到SSL加密、證書認(rèn)證等[WITHGRANTOPTION]//當(dāng)前賬戶可以為其他賬戶授權(quán)1.授予權(quán)限MySQL提供的GRANT語句用于實現(xiàn)用戶權(quán)限的授予,其基本語法格式如下:權(quán)限管理為用戶授予權(quán)限分為6個不同的級別:權(quán)限管理【例12.8】創(chuàng)建user1、user2兩個用戶,密碼與用戶名相同。給user1授予teaching_manage所有權(quán)限,并具有授權(quán)權(quán)限,用user1連接服務(wù)器,user1給user2授予teaching_manage數(shù)據(jù)中的score表的select權(quán)限、insert權(quán)限和修改grade字段的權(quán)限,用user2連接服務(wù)器查看其內(nèi)容。(1)創(chuàng)建user1和user2兩個用戶,若已存在不用再創(chuàng)建CREATEUSERuser1IDENTIFIEDWITH'mysql_native_password'BY'user2';CREATEUSERuser2IDENTIFIEDWITH'mysql_native_password'BY'user2';(2)root給user1授權(quán)GRANTALLPRIVILEGESONteaching_manage.*TOuser1WITHGRANTOPTION;(3)使用user1創(chuàng)建連接conn_user1,查看該連接下的內(nèi)容(4)user1給user2授權(quán)GRANTSELECT,INSERT,UPDATE(grade)ONteaching_manage.scoreTOuser2;(5)使用user2創(chuàng)建連接conn_user2,查看該連接下的內(nèi)容權(quán)限管理(1)查看用戶的授權(quán)情況。SHOWGRANTSFOR<用戶|角色>;(2)查看用戶對數(shù)據(jù)庫的訪問權(quán)限。SELECT*FROMmysql.tables_privWHEREUSER='用戶名';2.查看權(quán)限【例12.9】分別用兩種方式查看user2用戶的權(quán)限情況。--查看用戶的授權(quán)情況SHOWGRANTSFORuser2;--查看用戶對數(shù)據(jù)庫的訪問權(quán)限SELECT*FROMmysql.tables_privWHEREUSER='user2';權(quán)限管理在MySQL中,為了保證數(shù)據(jù)庫的安全,需要將用戶不必要的權(quán)限回收。例如,數(shù)據(jù)管理員發(fā)現(xiàn)某個用戶不應(yīng)該具有DELETE權(quán)限,就應(yīng)該及時將其收回。為此,MySQL專門提供了一個REVOKE語句用于回收指定用戶的權(quán)限。其基本語法格式如下。3.回收權(quán)限REVOKE權(quán)限類型[字段列表][,權(quán)限類型[字段列表]]…ON[目標(biāo)類型]權(quán)限級別FROM

賬戶名[,賬戶名]…權(quán)限管理【例12.10】收回user2用戶對teaching_manage.score表的SELECT權(quán)限、INSERT權(quán)限和grade字段修改權(quán)限,具體SQL語句如下。--收回SELECT權(quán)限REVOKESELECTONteaching_manage.scoreFROMuser2;--通過收回UPDATE來收回grade字段的修改權(quán)限REVOKEUPDATEONteaching_manage.scoreFROMuser2;--收回teaching_manage數(shù)據(jù)中的score表上的一切數(shù)據(jù)權(quán)限REVOKEALLONteaching_manage.scoreFROMuser2;角色管理問題:當(dāng)用戶越來越多時,針對單個用戶權(quán)限管理變得越來越復(fù)雜;而實際應(yīng)用中,許多同類型的用戶其權(quán)限也是相同的,能否給同類用戶定義相同的權(quán)限,簡化用戶授權(quán)。角色是一組權(quán)限的集合,可以授予權(quán)限給角色,角色不能用于登錄數(shù)據(jù)庫,但可通過角色為同類用戶一次性授權(quán)。角色管理(1)創(chuàng)建一個角色。CREATEROLE[IFNOTEXISTS]role[,role]…;(2)為角色授權(quán)權(quán)限。GRANT權(quán)限列表ON數(shù)據(jù)庫名.表名TO角色名[WITHGRANTOPTION];(3)為用戶指定角色。GRANTroleTOuser|role[WITHGRANTOPTION];(4)查看角色權(quán)限。SHOWGRANTSFOR<角色|用戶>;(5)收回角色權(quán)限。REVOKEroleFROMuser;(6)刪除角色。DROPROLE[IFEXISTS]role[,role]…;對角色管理的內(nèi)容有:角色管理【例12.11】為了方便對teaching_manage數(shù)據(jù)庫管理,對學(xué)校人員采用角色管理,分別為學(xué)校的管理員、教師和學(xué)生設(shè)置了三個角色(r_admin、r_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論