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

下載本文檔

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

文檔簡介

第8章

數(shù)據(jù)庫系統(tǒng)安全本章要點◆?SQLServer安全控制機制?!?SQLServer登錄賬號、角色、用戶和訪問權(quán)限的管理。◆MySQL安全控制機制。◆MySQL登錄賬號、角色、用戶和訪問權(quán)限的管理。2一、概述31、數(shù)據(jù)庫系統(tǒng)的安全控制模型對數(shù)據(jù)庫管理系統(tǒng)正常運行而進行的維護權(quán)限對數(shù)據(jù)庫中的對象和數(shù)據(jù)的操作權(quán)限對數(shù)據(jù)庫對象的權(quán)限對數(shù)據(jù)庫數(shù)據(jù)的操作權(quán)用戶按其操作權(quán)限的大小可分為數(shù)據(jù)庫系統(tǒng)管理員數(shù)據(jù)庫對象擁有者普通用戶4一、概述2、

數(shù)據(jù)庫權(quán)限和用戶分類建立在認(rèn)證和訪問許可機制上的身份驗證訪問權(quán)驗證操作權(quán)驗證SQLServer登錄賬戶的來源有兩種:Windows授權(quán)用戶:來自于Windows的用戶或組;SQL授權(quán)用戶:來自于非Windows的用戶,我們也將這種用戶稱為SQL用戶。2025/6/817:115一、概述3、SQLServer的安全機制(1)Windows身份驗證模式

2025/6/817:116一、概述3、SQLServer的安全機制Windows身份驗證模式允許用戶通過Windows家族的用戶進行連接。只需選擇Windows身份驗證模式,而無需再提供登錄賬號和密碼,系統(tǒng)會從用戶登錄到Windows時提供的用戶名和密碼中查找當(dāng)前用戶的登錄信息,以判斷其是否是SQLServer的合法用戶。2025/6/817:117一、概述3、SQLServer的安全機制在該認(rèn)證模式下,用戶在連接SQLServer時必須提供登錄名和登錄密碼,這些登錄信息存儲在系統(tǒng)表syslogins中,與操作系統(tǒng)的登錄賬號無關(guān)。(2)SQLServer身份驗證模式2025/6/817:118一、概述3、SQLServer的安全機制在混合認(rèn)證模式下,Windows認(rèn)證和SQLServer認(rèn)證這兩種認(rèn)證模式都是可用的。在使用客戶應(yīng)用程序連接SQLServer服務(wù)器時,如果沒有傳遞登錄名和密碼,SQLServer將自動認(rèn)定用戶要使用Windows身份驗證模式,并且在這種模式下對用戶進行認(rèn)證。如果傳遞了登錄名和密碼,則SQLServer認(rèn)為用戶要使用SQLServer身份驗證模式,并將所傳來的登錄信息與存儲在系統(tǒng)表中的數(shù)據(jù)進行比較。如果匹配,就允許用戶連接到服務(wù)器,否則拒絕連接。(3)混合驗證模式設(shè)置身份驗證模式2025/6/817:119一、概述4、MySQL的安全機制MySQL中主要包含root用戶和普通用戶。root用戶擁有一切權(quán)限,普通用戶只能擁有部分權(quán)限。在MySQL的系統(tǒng)數(shù)據(jù)庫mysql中存儲著權(quán)限表,最主要有mysql.user、mysql.db、table_priv、columns_priv、procs_priv表。user表記錄了允許連接到服務(wù)器的賬號信息,里面的權(quán)限是全局級的。db表存儲了用戶對某個數(shù)據(jù)庫的操作權(quán)限,決定用戶能從哪個主機存取哪個數(shù)據(jù)庫。tables_priv表用來對表設(shè)置操作權(quán)限,columns_priv表用來對表的某一列設(shè)置權(quán)限。procs_priv表用來對存儲過程和存儲函數(shù)設(shè)置操作權(quán)限。user表中的部分?jǐn)?shù)據(jù)tables_priv表中的部分?jǐn)?shù)據(jù)2025/6/817:1110一、概述4、MySQL的安全機制用戶通過登錄驗證后,MySQL將對用戶提交的每項數(shù)據(jù)庫操作進行權(quán)限檢查,判斷用戶是否具有足夠的權(quán)限執(zhí)行相應(yīng)操作。2025/6/817:1111二、用戶管理1、SQLServer登錄名管理在SQLServer中,必須要有登錄名才能連接到數(shù)據(jù)庫服務(wù)器。sa為超級管理員登錄名。系統(tǒng)登錄賬號新建對話框“常規(guī)”頁2025/6/817:1112二、用戶管理2、SQLServer用戶管理在SQLServer中,數(shù)據(jù)庫用戶與登錄名是兩個不同的概念。一個合法的登錄名只表明該登錄名通過了Windows認(rèn)證或SQLServer認(rèn)證,但不能表明其可以對數(shù)據(jù)庫數(shù)據(jù)和數(shù)據(jù)對象進行某種或某些操作,所以一個登錄名總是與一個或多個數(shù)據(jù)庫用戶相對應(yīng),這樣才可以訪問數(shù)據(jù)庫。例如,登錄賬號sa自動與每一個數(shù)據(jù)庫用戶dbo相關(guān)聯(lián)。在SQLServer中創(chuàng)建數(shù)據(jù)庫用戶2025/6/817:1113二、用戶管理3、MySQL用戶管理在MySQL中,不需要像SQLServer一樣單獨創(chuàng)建一個登錄名,用戶名即登錄名??梢酝ㄟ^可視化界面對用戶進行管理。在MySQL中創(chuàng)建數(shù)據(jù)庫用戶(1)創(chuàng)建用戶2025/6/817:1114二、用戶管理3、MySQL用戶管理MySQL和SQLServer等關(guān)系型數(shù)據(jù)庫都提供命令方式創(chuàng)建用戶,格式大同小異,以下是在MySQL中創(chuàng)建用戶的語法格式:CREATEUSER[IFNOTEXISTS]'用戶名'[@'主機地址或標(biāo)識'][IDENTIFIED[WITHAUTH_PLUGIN]BY'用戶口令'|RANDOMPASSWORD][WITHresource_option[resource_option]...][password_option];說明如下:(1)IFNOTEXISTS為可選參數(shù),表示如果用戶名不存在,則創(chuàng)建用戶,否則不創(chuàng)建用戶。(2)使用CREATEUSER語句可一次性創(chuàng)建多個用戶,不同用戶的配置信息使用逗號分隔。(3)創(chuàng)建用戶時,可指定用戶訪問數(shù)據(jù)庫時允許的主機信息,如主機標(biāo)識或名稱、主機地址或特殊符號,’%’表示任意位置。(4)IDENTIFY子句使用WITHAUTH_PLUGIN指定口令加密策略。通過BY關(guān)鍵字指明口令明文或隨機口令RANDOMPASSWORD。(5)可選子句[WITHresource_option[resource_option]...]使用resource_option配置用戶對數(shù)據(jù)庫資源使用約束。(6)可選子句[password_option]設(shè)定口令策略。(7)CREATEUSER語句還提供了其他參數(shù),如用戶鎖、用戶連接安全策略等信息。(1)創(chuàng)建用戶2025/6/817:1115二、用戶管理3、MySQL用戶管理【例8-1】創(chuàng)建一個只允許在MySQL所在服務(wù)器上登錄的賬戶student,密碼為student123,其他配置信息保持默認(rèn)。CREATEUSERIFNOTEXISTS'student'@'localhost'IDENTIFIEDBY'student123';【例8-2】創(chuàng)建一個允許在任意機器上登錄的賬戶user1,密碼為Evt@123,其他配置信息保持默認(rèn)。CREATEUSER'user1'@'%'IDENTIFIEDBY'Evt@123';(1)創(chuàng)建用戶2025/6/817:1116二、用戶管理3、MySQL用戶管理【例8-3】創(chuàng)建一個只允許在192.168.1.100機器上登錄的賬戶user2,密碼為Small@123,其他配置信息保持默認(rèn)。CREATEUSER'user2'@'192.168.1.100'IDENTIFIEDBY'Small@123';創(chuàng)建用戶也可以直接在MySQL數(shù)據(jù)庫的user表中添加數(shù)據(jù),添加成功后使用如下指令使用戶生效:FLUSHPRIVILEGES;(1)創(chuàng)建用戶2025/6/817:1117二、用戶管理3、MySQL用戶管理可以使用RENAMEUSER語句重命名用戶賬號,語法格式如下:RENAMEUSER'原用戶信息'TO'新用戶信息'[,'原用戶信息'TO'新用戶信息']...【例8-4】

將已有用戶stud重命名為student,將主機信息從localhost修改為%。RENAMEUSER'stud'@'localhost'to'student'@'%';(2)重命名用戶2025/6/817:1118二、用戶管理3、MySQL用戶管理可以使用ALTERUSER語句修改用戶口令,其語法格式如下:ALTERUSER'用戶名'@'主機信息'IDENTIFIEDBY'新密碼';【例8-5】將主機信息為localhost、用戶名為zw3的用戶口令修改為AX02t7964。ALTERUSER'zw3'@'localhost'IDENTIFIEDBY'AX02t7964';(3)修改用戶口令2025/6/817:1119二、用戶管理3、MySQL用戶管理可以使用DROPUSER語句刪除用戶,其語法格式如下:DROPUSER'用戶名'@'主機信息'[,'用戶名'@'主機信息']【例8-6】刪除主機信息為localhost用戶名為student的用戶DROPUSER'zw3'@'localhost';也可以在系統(tǒng)表user中刪除用戶。【例8-7】刪除主機信息為localhost、用戶名為student的用戶。DELELEFROMmysql.user

WHEREUser='student'andHost='localhost';直接從user表中刪除數(shù)據(jù)后應(yīng)使用“FLUSHPRIVILEGES”語句使操作生效。(4)刪除用戶2025/6/817:1120三、管理權(quán)限當(dāng)用戶成為數(shù)據(jù)庫中的合法用戶之后,除了具有一些系統(tǒng)表的查詢權(quán)之外,并不對數(shù)據(jù)庫中的對象具有任何操作權(quán)。因此,下一步就需要為數(shù)據(jù)庫中的用戶授予適當(dāng)?shù)牟僮鳈?quán)。1.對象權(quán)限對象權(quán)限是指用戶對數(shù)據(jù)庫中的表、視圖、存儲過程等對象的操作權(quán),相當(dāng)于數(shù)據(jù)庫操作語言(DML)的語句權(quán)限,例如是否允許查詢、增加、刪除和修改數(shù)據(jù)等。具體包括:(1)對于表和視圖,可以使用SELECT、INSERT、UPDATE、DELETE、REFERENCES等權(quán)限。(2)對于存儲過程,可以使用EXECUTE權(quán)限、CONTROL和查看等權(quán)限。(3)對于標(biāo)量函數(shù),主要有執(zhí)行、引用、控制等權(quán)限。(4)對于表值型函數(shù),有插入、更新、刪除、查詢和引用等權(quán)限。2.語句權(quán)限語句權(quán)限相當(dāng)于數(shù)據(jù)定義語言(DDL)的語句權(quán)限,這種權(quán)限專指是否允許執(zhí)行語句CREATETABLE、CREATEPROCEDURE、CREATEVIEW等與創(chuàng)建數(shù)據(jù)庫對象有關(guān)的操作。1、

權(quán)限管理簡介2025/6/817:1121權(quán)限的管理包含如下三方面內(nèi)容:(1)授予權(quán)限(GRANT):允許用戶或角色具有某種操作權(quán)。(2)撤銷權(quán)限(REVOKE):不允許用戶或角色具有某種操作權(quán),或者收回曾經(jīng)授予的權(quán)限。(3)拒絕訪問(DENY):拒絕某用戶或角色具有某種操作權(quán),即使用戶或角色由于繼承而獲得這種操作權(quán),也不允許執(zhí)行相應(yīng)的操作。三、管理權(quán)限1、

權(quán)限管理簡介2025/6/817:1122權(quán)限的管理包含如下三方面內(nèi)容:(1)授予權(quán)限(GRANT):允許用戶或角色具有某種操作權(quán)。(2)撤銷權(quán)限(REVOKE):不允許用戶或角色具有某種操作權(quán),或者收回曾經(jīng)授予的權(quán)限。(3)拒絕訪問(DENY):拒絕某用戶或角色具有某種操作權(quán),即使用戶或角色由于繼承而獲得這種操作權(quán),也不允許執(zhí)行相應(yīng)的操作。三、管理權(quán)限1、

權(quán)限管理簡介2025/6/817:1123SQLServer可使用可視化工具和SQL命令管理數(shù)據(jù)庫用戶權(quán)限。三、管理權(quán)限2、

SQLServer權(quán)限管理安全對象分配權(quán)限2025/6/817:1124MySQL、SQLServer等數(shù)據(jù)庫都可以使用GRANT命令授予用戶或角色權(quán)限,其語法格式大同小異,MySQL的GRANT命令的基本語法如下:GRANT權(quán)限名稱[(字段列表)][,權(quán)限名稱[(字段列表)]]...ON授權(quán)層次及對象TO'用戶名'@'主機信息'[,'用戶名'@'主機信息']...[WITHGRANTOPTION];相關(guān)說明如下:①可以一次性將多個權(quán)限賦予用戶,不同權(quán)限名稱使用逗號分隔。②ON子句用于指明授權(quán)級別及對象,常見形式包括:*.*:服務(wù)器級別權(quán)限(全局權(quán)限),執(zhí)行成功后修改mysql.user表中記錄。db_name.*:數(shù)據(jù)庫級別權(quán)限,執(zhí)行成功后修改mysql.db表中記錄。db_name.table_name:或列級別權(quán)限,授予表級別權(quán)限將修改mysql.tables_priv表中記錄,授予列級別權(quán)限將修改mysql.columns_priv表中記錄。db_name.routine_name:存儲過程級別權(quán)限,執(zhí)行成功后修改mysql.routines_priv表中記錄。③TO子句用于指明授予的用戶或角色,可以將權(quán)限授予多個用戶。④WITHGRANTOPTION指示被授權(quán)者在獲得指定權(quán)限的同時還可以將指定權(quán)限授予其他主體。三、管理權(quán)限3、MySQL權(quán)限管理(1)授予權(quán)限2025/6/817:1125【例8-8】

將選修表的查詢權(quán)限授予用戶zhangsan。命令如下:GRANTSELECTONscTOzhangsan【例8-9】

將學(xué)生表的查詢、更新、刪除權(quán)限授予用戶zhangsan。命令如下:GRANTSELECT,UPDATE,DELETEONstudentTOzhangsan【例8-10】

將學(xué)生表的查詢權(quán)限授予用戶zhangsan,并且允許zhangsan把此權(quán)限授予其他用戶。命令如下:GRANTSELECTONstudentTOzhangsanWITHGRANTOPTION三、管理權(quán)限3、MySQL權(quán)限管理(1)授予權(quán)限2025/6/817:1126【例8-11】為user1用戶賦予數(shù)據(jù)庫服務(wù)器的所有使用權(quán)限(ALL),并允許權(quán)限由user1授予其他用戶。命令如下:GRANTALLON*.*to'user1'@'%'WITHGRANTOPTION【例8-12】為user1用戶賦予stu數(shù)據(jù)庫上對象的查找、創(chuàng)建數(shù)據(jù)表和插入數(shù)據(jù)權(quán)限(SELECT、CREATE、INSERT),并不允許權(quán)限由user1授予其他用戶。GRANTSELECT,CREATE,INSERTONstu.*to'user1'@'%'【例8-13】為user1用戶賦予toyuniverse數(shù)據(jù)庫上玩具表toys的查找、插入、更新和刪除數(shù)據(jù)權(quán)限(SELECT、INSERT、UPDATE、DELETE),并不允許權(quán)限由user1授予其他用戶。GRANTSELECT,INSERT,UPDATE,DELETEONtoyuniverse.toysTO'user1'@'%'三、管理權(quán)限3、MySQL權(quán)限管理(1)授予權(quán)限2025/6/817:1127【例8-14】為user2用戶賦予toyuniverse數(shù)據(jù)庫中訂單表orders上cOrderNo字段和dOrderDate字段的查找數(shù)據(jù)權(quán)限(SELECT),并不允許權(quán)限由user2授予其他用戶。GRANTSELECT(dOrderDate,dOrderDate)ONtoyuniverse.ordersTO'user2'@'192.168.1.100';【例8-15】為user3用戶賦予在toyuniverse數(shù)據(jù)庫中創(chuàng)建表和創(chuàng)建視圖的權(quán)。GRANTCREATE,CREATEviewONtoyuniverse.*touser3三、管理權(quán)限3、MySQL權(quán)限管理(1)授予權(quán)限2025/6/817:1128使用GRANT語句的其他注意事項:①MySQL8不允許為不存在用戶授權(quán),所以不能使用GRANT語句達到授權(quán)同時創(chuàng)建用戶的目的,必須先創(chuàng)建用戶,然后才能授權(quán);②對于字段級別權(quán)限,由于只能對字段進行查詢、插入和更新操作,所以字段級別權(quán)限只支持SELECT、INSERT和UPDATE權(quán)限;③使用GRANT語句授予不同級別的權(quán)限,將在相應(yīng)的權(quán)限表格中,創(chuàng)建或修改相應(yīng)記錄。三、管理權(quán)限3、MySQL權(quán)限管理(1)授予權(quán)限2025/6/817:1129如果要查看用戶的權(quán)限,可以使用SHOWGRANTS語句,格式如下:SHOWGRANTSFOR'用戶名'@'主機信息';【例8-16】查看user1用戶的權(quán)限授予情況。SHOWGRANTSFOR'user1'@'%';如果要查看當(dāng)前用戶的權(quán)限授予情況,可以使用以下語句:SHOWGRANTSFORCURRENT_USER;三、管理權(quán)限3、MySQL權(quán)限管理(2)查看權(quán)限2025/6/817:1130REVOKE命令用于撤銷以前授予的權(quán)限,并不禁止用戶、角色通過別的方式獲得的權(quán)限。REVOKE命令的語法如下:REVOKE權(quán)限名稱[(字段列表)][,權(quán)限名稱[(字段列表)]]...ON回收權(quán)限的層次及對象FROM'用戶名'@'主機信息'[,'用戶名'@'主機信息']...;【例8-17】回收user1用戶對stu數(shù)據(jù)庫中對象的DELETE權(quán)限和SELECT權(quán)限。命令如下:REVOKESELECT,DELETE

ONstu.*FROM'user1'@'%';三、管理權(quán)限3、MySQL權(quán)限管理(3)回收權(quán)限2025/6/817:1131角色(Role)是對權(quán)限集中管理的一種機制,是權(quán)限的集合。通常根據(jù)特定需要,將一系列權(quán)限集中在一起構(gòu)成角色。三、管理權(quán)限4、

角色表1的查詢權(quán)表2的刪除權(quán)表2的刪除權(quán)表3的查詢權(quán)表4的插入權(quán)用戶1用戶2用戶3用戶4角色1角色2可以將用戶添加到角色中,使其成為角色中的成員,從而具有角色的權(quán)限。一個用戶可以分配多個角色,也允許一個角色分配給多個用戶。2025/6/817:1132創(chuàng)建角色的語法格式如下:CREATEROLE'角色名稱'【例8-18】創(chuàng)建一個學(xué)生角色teacher。CREATEROLEteacher三、管理權(quán)限4、

角色(1)創(chuàng)建角色2025/6/817:1133可使用Grant語句將權(quán)限賦予角色?!纠?-19】為教師角色teacher授予服務(wù)器級別全局權(quán)限。GRANTALLPREVILEGEON*.*TOteacher;【例8-20】為學(xué)生角色stu授予sc表的查找SELECT、插入數(shù)據(jù)INSERT、更新數(shù)據(jù)UPDATE和刪除數(shù)據(jù)DELETE權(quán)限。GRANTSELECT,INSERT,UPDATE,DELETEONscTOstu;三、管理權(quán)限4、

角色(2)為角色授權(quán)2025/6/817:1134可使用GRANT語句為用戶分配

溫馨提示

  • 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

提交評論