數據庫原理與應用(MySQL版) 課件 第11章 安全管理_第1頁
數據庫原理與應用(MySQL版) 課件 第11章 安全管理_第2頁
數據庫原理與應用(MySQL版) 課件 第11章 安全管理_第3頁
數據庫原理與應用(MySQL版) 課件 第11章 安全管理_第4頁
數據庫原理與應用(MySQL版) 課件 第11章 安全管理_第5頁
已閱讀5頁,還剩52頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第11章

安全管理

數據庫原理與應用1本章內容11.1安全管理概述11.2數據庫訪問控制11.3MySQL的安全管理211.1安全管理概述數據庫安全管理是指采取各種安全措施對數據庫及其相關文件和數據進行保護。數據庫系統的重要功能之一是確保系統安全,其中的核心和關鍵是數據安全。數據庫管理系統提供了安全控制機制,通過身份驗證、數據庫用戶權限確認等一系列措施來保護數據庫中的信息資源,以防止這些資源被破壞和被非法使用。311.1.1安全管理目標在數據庫中,對非法活動可采用加密存、取數據的方法控制;對非法操作可使用用戶身份驗證、限制操作權來控制;對無意的損壞可采用提高系統的可靠性和數據備份等方法來控制。4數據庫的安全管理包括的內容防止非法數據訪問防止濫用過高權限審計記錄備份數據的安全管理5防止非法數據訪問數據庫管理系統根據用戶或應用的授權來檢查訪問請求,以保證僅允許授權的用戶訪問數據庫。數據庫的訪問控制比操作系統的文件訪問控制復雜。首先,控制的對象有更細的粒度,如表、記錄、屬性等;其次,數據庫中的數據是語義相關的,所以用戶可以不直接訪問數據項而間接獲取數據。主要通過用戶身份驗證實現。6防止濫用過高權限如果數據庫管理員不進行細化的訪問控制,可能導致用戶或用戶組被授予超出其特定工作需要的訪問權限,從而對數據庫數據安全造成風險。防止濫用過高權限需要針對每一個用戶(或用戶組)的數據訪問需求,授予最合適的權限。7審計記錄自動記錄所有敏感的或異常的數據庫事務應該是所有數據庫的一項基礎功能。如果數據庫審計策略不足,則使用單位將在很多級別上面臨嚴重風險。為了保證數據庫中數據的安全,一般要求數據庫管理系統能夠將所有數據操作記錄下來。8備份數據的安全管理存放備份數據庫的存儲介質的安全管理也是數據安全的重要部分,如果備份數據庫的存儲介質被盜且沒有進行加密保護,也會造成數據暴露或泄密,因此為防止備份數據庫泄露應對數據庫備份進行加密存儲。910文件操作控制操作權限控制身份驗證用戶數據庫應用程序數據庫管理系統操作系統數據存儲數據庫11.1.2安全控制模型用戶要向數據庫應用程序提供其身份(用戶名和密碼),交給數據庫管理系統進行驗證,只有合法的用戶才能進入到下一步的操作。對于合法的用戶,當其要在數據庫中執行某個操作時,數據庫管理系統還要驗證此用戶是否具有執行該操作的權限。如果有操作權限,才執行操作,否則拒絕執行用戶的操作。11本章內容11.1安全管理概述11.2數據庫訪問控制11.3MySQL的安全管理1211.2數據庫訪問控制DBMS通常采用自主存取控制強制存取控制基于角色的訪問控制等方法來解決數據庫安全系統的訪問控制問題。13主體和客體在數據庫訪問控制中,一般使用“主體”和“客體”來表示參與控制操作的實體。主體(Subject):訪問操作中的主動實體,在數據庫環境下一般指用戶。客體(Object):訪問操作中的被動實體,在數據庫環境下一般指數據庫對象,包括表、視圖、存儲過程等。1411.2.1自主訪問控制自主訪問控制是這樣一種訪問控制方式:由數據庫對象的擁有者自主決定是否將自己擁有的對象的部分或全部訪問權限授予其他用戶。也就是說,在自主訪問控制下,用戶可以按照自己的意愿,有選擇地與其他用戶共享他擁有的數據庫對象。15用戶權限的種類數據庫權限:對數據庫對象的創建、刪除、修改以及對數據庫備份等權限。對象權限:對數據庫對象中的數據的操作權限。數據庫權限一般由DBA指定,也可以由具有特權的其他用戶授予。對象權限一般由數據庫對象的所有者授予用戶,也可由DBA指定,或者由具有該對象權限的其他用戶授權。16自主訪問控制的矩陣模型矩陣模型利用矩陣表示系統中主體、客體和每個主體對每個客體所擁有權限之間的關系。任何訪問控制策略最終均可被模型化為訪問矩陣形式:一行表示一個主體的能力列表,一列表示一個客體的訪問控制列表。每個矩陣元素規定了相應的主體對應于相應的客體被準予的訪問許可、實施行為。17訪問控制矩陣18

客體

主體O1O2S1讀讀、寫S2讀、寫-11.2.2強制訪問控制強制訪問控制(MandatoryAccessControl,MAC)是根據客體的敏感標記和主體的訪問標記對客體訪問實行限制的一種方法。主體對客體的訪問規則有:保密性規則完整性規則19保密性規則僅當主體的許可證級別高于或者等于客體的密級時,該主體才能讀取相應的客體。(下讀)僅當主體的許可證級別低于或者等于客體的密級時,該主體才能寫相應的客體。(上寫)20完整性規則僅當主體的許可證級別低于或者等于客體的密級時,該主體才能讀取相應的客體。(上讀)僅當主體的許可證級別高于或者等于客體的密級時,該主體才能寫相應的客體。(下寫)21本章內容11.1安全管理概述11.2數據庫訪問控制11.3MySQL的安全管理2211.3MySQL的安全管理MySQL實現了一個復雜的訪問控制和權限系統,允許創建全面的訪問規則來處理客戶端操作并有效防止未經授權的客戶端訪問數據庫系統。在MySQL中可以創建不同的用戶,并授予不同的權限,以保證MySQL中數據的安全。23MySQL的安全管理(續)當客戶端連接到服務器時,MySQL訪問控制有兩個階段:階段1:MySQL服務器根據用戶身份標識(主機名+用戶名組成的賬號名稱)在MySQL的訪問權限控制表中查詢相關信息,以確定需要接受或拒絕該用戶的連接。階段2:用戶連接成功之后,MySQL服務器繼續檢查用戶的訪問請求,確定是否有足夠的權限來執行。24MySQL8提高的安全控制MySQL8提供了角色功能,可以通過對用戶賦予角色的方式對用戶授權。MySQL的安全控制主要包括:用戶管理權限管理角色管理等內容在進行這些管理之前,首先要建立登錄賬戶,權限的管理是以登錄賬戶為基礎的。2511.3.1登錄管理登錄MySQL服務器有兩種方式:命令行方式:一般用在服務器上安裝的MySQL不提供圖形界面,需要通過命令行方式登錄。圖形界面方式:MySQL8提供了MySQLWorkbench工具,使用該工具可以用圖形化的方式登錄到數據庫服務器。26命令行方式登錄

mysql–h主機名|主機ip–u用戶名-p密碼[-P端口號][數據庫名]-h:后面接主機名或者主機IP。-u:后面接用戶名。-p:會提示輸入密碼。-P:可選項。后面接MySQL服務的端口,通過該參數連接到指定的端口。MySQL服務的默認端口是3306,不使用該參數時自動連接到3306端口。27圖形界面方式登錄2811.3.2用戶管理MySQL用戶主要包括兩種:超級管理員:root用戶,具有MySQL提供的所有權限。普通用戶:權限取決于該用戶被授予的權限。實際開發中很少直接使用root用戶,因為權限過高,操作不當會給數據帶來很大的風險。一般是在數據庫管理系統安裝后第一次登錄系統時使用root賬號,然后由root用戶根據需要創建不同權限的用戶。29(1)創建用戶創建用戶語句為語法格式:CREATEUSER<用戶>[IDENTIFIEDBY'密碼'][,用戶名[IDENTIFIEDBY'密碼']];<用戶>:指定創建用戶的賬號,格式為:'username'@'hostname'。user_name:用戶名,host_name:主機名。如果想讓該用戶可以從遠程主機登錄MySQL,則'hostname'可以使用通配符“%”。30示例例11-2創建用戶名為testuser1,只在本機(localhost)登錄,密碼為“123456”的用戶。CREATEUSERtestuser1@localhostIDENTIFIEDBY'123456';例11-3創建用戶名為testuser2,只能在192.168.0.5主機登錄,密碼為“123456”的用戶。CREATEUSER'testuser2'@'192.168.0.5'IDENTIFIEDBY'123456';31示例(續)例11-4創建用戶名為testuser3,可以在所有主機登錄,密碼為“123456”的用戶。CREATEUSER'testuser3'@'%'IDENTIFIEDBY'123456';或CREATEUSER'testuser3'IDENTIFIEDBY'123456';32(2)刪除用戶刪除用戶用DROPUSER語句,基本語法形式為:DROPUSER<用戶>[,<用戶>,…];例11-5刪除testuser1@localhost用戶。

DROPUSERtestuser1@localhost;33(3)設置當前用戶密碼使用ALTERUSER語句:ALTERUSERUSER()IDENTIFIEDBY'新密碼';注:USER()函數用于獲取當前的登錄用戶。使用SET語句:SETPASSWORD='新密碼';3411.3.3權限管理權限管理主要包括兩個操作:授予權限和收回權限。授予權限的基本原則:只授予能滿足用戶需要的最小權限,防止用戶有意破壞數據庫。

創建用戶時限制用戶的登錄主機,一般是限制成指定IP或者內網IP段。定期對用戶及用戶權限進行清理,刪除不必要的用戶或者收回多余的權限。35(1)授予權限授權語句為GRANT,語法格式如下:GRANT權限1[,權限2,…權限n]|ALLPRIVILEGESON[數據庫名.]表名|數據庫名.*TO<用戶>;ALLPRIVILEGES:表示全部操作權限。數據庫名.*:表示數據庫中的全部表。若省略數據庫名,表示對當前數據庫中的用戶進行授權。36授予權限示例例11-6授予本機登錄用戶testuser1對“db_borrows”數據庫中books表的查詢權限。GRANTSELECTONdb_borrows.booksTOtestuser1@localhost;37授予權限示例(續)例11-7限制用戶testuser2用戶只能從192.168.0.5主機登錄,并授予該用戶對“db_borrows”數據庫中的books表具有插入和查詢權限。GRANTINSERT,SELECTONdb_borrows.booksTOtestuser2@192.168.0.5;

38授予權限示例在MySQL中,如果某用戶對某數據庫中的所有表具有相同的權限,比如都具有查詢權限,則可使用簡寫的方法表示所有表,方法為:數據庫名.*。對例11-6,設要授予用戶testuser1對“db_borrows”數據庫中的所有表都有查詢權限:GRANTSELECTONdb_borrows.*TOtestuser1@localhost;39授予權限示例例11-9授予從192.168.0.5主機登錄的testuser2用戶,對“db_borrows”數據庫中的students表具有全部操作權限。GRANTALLPRIVILEGESONdb_borrows.studentsTOtestuser2@192.168.0.5;40(2)收回權限收回權限就是取消已經賦予用戶的某些權限。使用REVOKE語句收回用戶的權限,語法如下:REVOKE權限1[,權限2,…權限n]|ALLRIVILEGESON[數據庫名.]表名|數據庫名.*FROM<用戶>;41收回權限示例例11-10收回通過本機登錄的testuser1用戶“db_borrows”數據庫中books表的查詢權限。REVOKESELECTONdb_borrows.booksFROMtestuser1@localhost;例11-11收回從192.168.0.5主機登錄的testuser2用戶對“db_borrows”數據庫中books表的插入權限。REVOKEINSERTONdb_borrows.booksFROMtestuser2@192.168.0.5;42收回權限示例例11-12收回從192.168.0.5主機登錄的testuser2用戶,對“db_borrows”數據庫中students的全部操作權限。REVOKEALLPRIVILEGESONdb_borrows.studentsFROMtestuser2@192.168.0.5;注意:在賦予了用戶新權限之后,需要使用以下命令刷新權限,使新的權限生效:FLUSHPRIVILEGES;已經登錄的用戶需要重新登錄以獲取新的權限。433.查看權限查看當前用戶權限的語句如下:

SHOWGRANTS;查看某用戶的全部權限的語句為:SHOWGRANTSFOR用戶名@主機地址;4411.3.4角色管理角色是一組權限的組合,使權限管理更加方便。創建好角色后,角色中沒有任何權限,需要向角色中添加權限。然后將角色授予用戶,該用戶就具有了角色中的所有權限。在使用角色的過程中,可以隨時向角色中添加權限,和刪除權限,用戶的權限也隨之改變。如果要收回用戶從角色那里得到的所有權限,只需將角色從用戶收回即可。451.創建角色創建角色使用CREATEROLE語句,其語法格式如下:CREATEROLE'role_name'[@'host_name'][,'role_name'[@'host_name']]...role_name:角色名host_name:主機名,即用戶連接MySQL時所用主機的名字。如果想讓該角色可以從任意遠程主機登錄數據庫服務器,可以使用通配符“%”。如果在創建的過程中,只給出了角色名,而沒指定主機名,則主機名默認為“%”。46創建角色(示例)例11-13創建一個本地登錄的圖書管理員角色,角色名為manager:CREATEROLEmanager@localhost;例11-14創建一個可以從任意主機登錄的圖書管理員角色,角色名為manager2:CREATEROLE'manager2'@'%';或:CREATEROLE'manager2';47(2)給角色賦予權限給角色授權也使用GRANT語句,其語法為:GRANT權限1[,權限2,…權限n]|ALLPRIVILEGESON[數據庫名.]表名|數據庫名.*TO'角色名'[@'主機名']例11-15給圖書管理員manager角色授予“db_borrows”數據庫中books表的查詢權限。GRANTSELECTONdb_borrows.booksTOmanager@localhost;483.給用戶賦予角色角色創建并被授權后,要賦給用戶并處于“激活狀態”才能發揮作用。給用戶賦予角色可使用GRANT語句實現:GRANT角色1[,角色2,…]TO用戶1[,用戶2,…];例11-16給testuser1用戶賦予manager@localhost角色。GRANTmanager@localhostTOtestuser1@localhost;49(3)給用戶賦予角色給用戶賦予角色后,用戶需要激活角色才能真正具有角色的權限。激活用戶的角色的方法有兩種:默認激活顯式激活50默認激活如果角色已被設為用戶的默認角色,則當用戶登錄時,角色將自動被激活。將角色設為用戶的默認角色語法如下:

ALTERUSER<用戶>DEFAULTROLE<角色>;51顯式激活如果角色未

溫馨提示

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

評論

0/150

提交評論