




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
安全性管理的學(xué)習(xí)課件第1頁/共52頁第2頁本章概述
安全性是衡量數(shù)據(jù)庫產(chǎn)品性能的重要指標(biāo)。本章介紹Oracle11g數(shù)據(jù)庫的安全管理機(jī)制,內(nèi)容包括用戶管理,權(quán)限管理,角色管理,數(shù)據(jù)庫審計(jì)等。第2頁/共52頁第3頁
本章的學(xué)習(xí)目標(biāo):●了解用戶、權(quán)限、角色的概念及作用●學(xué)會(huì)創(chuàng)建、修改、刪除用戶●
學(xué)會(huì)將系統(tǒng)權(quán)限和對(duì)象權(quán)限授予用戶,以及回收權(quán)限●
學(xué)會(huì)使用系統(tǒng)預(yù)定義角色,學(xué)會(huì)創(chuàng)建自定義角色,以及角色權(quán)限的授予和回收●
了解數(shù)據(jù)庫審計(jì)的概念及作用第3頁/共52頁第4頁主要內(nèi)容13.1概述13.2用戶管理13.3權(quán)限管理13.4角色管理13.5數(shù)據(jù)庫審計(jì)13.6小結(jié)13.7習(xí)題第4頁/共52頁第5頁
安全性在數(shù)據(jù)庫管理中占據(jù)重要的位置,沒有完善的安全機(jī)制的保護(hù),可能會(huì)導(dǎo)致數(shù)據(jù)的泄露、損壞或丟失,因此安全性一直是數(shù)據(jù)庫產(chǎn)品性能的重要衡量指標(biāo)之一。Oracle數(shù)據(jù)庫的安全管理是從用戶登錄數(shù)據(jù)庫就開始的。數(shù)據(jù)庫訪問的安全性主要包括兩個(gè)方面的含義:一是阻止未授權(quán)用戶訪問數(shù)據(jù)庫;二是每個(gè)數(shù)據(jù)庫用戶都有不同的操作權(quán)限,用戶在數(shù)據(jù)庫中的操作將被限制在其權(quán)限范圍內(nèi)。
在Oracle數(shù)據(jù)庫中,用戶的身份通常被劃分為數(shù)據(jù)庫管理員和開發(fā)人員,其中數(shù)據(jù)庫管理員承擔(dān)管理數(shù)據(jù)庫的責(zé)任,包括安全性管理、調(diào)優(yōu)、備份策略的制定、數(shù)據(jù)庫出現(xiàn)故障時(shí)的數(shù)據(jù)恢復(fù)、保證數(shù)據(jù)庫的可用性等。軟件系統(tǒng)的開發(fā)人員作為數(shù)據(jù)庫管理員之外的一類使用者,承擔(dān)軟件開發(fā)的職責(zé),對(duì)數(shù)據(jù)庫的訪問要求及技能掌握要求比數(shù)據(jù)庫管理員低,他們需要熟練掌握的SQL及PL/SQL的操作技能,能夠快速及高效率地完成對(duì)數(shù)據(jù)庫的操作需求,對(duì)調(diào)優(yōu)和備份恢復(fù)等操作通常不參與。所以,數(shù)據(jù)庫的安全管理通常屬于數(shù)據(jù)庫管理員的職責(zé),DBA可以通過管理用戶、角色以及權(quán)限來控制數(shù)據(jù)庫的安全。但對(duì)于軟件開發(fā)人員來說,掌握一些安全機(jī)制及處理方式也是有必要的。第5頁/共52頁第6頁主要內(nèi)容13.1概述13.2用戶管理13.3權(quán)限管理13.4角色管理13.5數(shù)據(jù)庫審計(jì)13.6小結(jié)13.7習(xí)題第6頁/共52頁第7頁13.2用戶管理
用戶是數(shù)據(jù)庫的使用者和管理者,用戶管理是Oracle數(shù)據(jù)庫安全管理的核心和基礎(chǔ)。每個(gè)連接到數(shù)據(jù)庫的用戶都必須是系統(tǒng)的合法用戶,用戶要想使用Oracle的系統(tǒng)資源(查詢數(shù)據(jù)、創(chuàng)建表等),就必須要擁有相應(yīng)的權(quán)限。Oracle數(shù)據(jù)庫的用戶管理包括創(chuàng)建用戶、修改用戶的安全參數(shù)、刪除用戶和查詢用戶信息等。第7頁/共52頁第8頁13.2.1初始用戶
在創(chuàng)建Oracle數(shù)據(jù)庫時(shí)會(huì)自動(dòng)創(chuàng)建一些用戶,例如SYS、SYSTEM、SCOTT等,除了SYS、SYSTEM這兩個(gè)初始合法的管理員,其余用戶在創(chuàng)建后處于鎖定狀態(tài),需要在安裝時(shí)或者安裝后對(duì)其解鎖并重新設(shè)定口令。這些初始用戶有其自身的職責(zé)和特點(diǎn),軟件項(xiàng)目一般不建議使用這些初始用戶。即針對(duì)不同的項(xiàng)目,應(yīng)該由管理員分配不同的用戶,在開發(fā)過程中,SCOTT用戶可以用來測(cè)試數(shù)據(jù)庫的可用性。
lSYS:是數(shù)據(jù)庫中具有最高權(quán)限的數(shù)據(jù)庫管理員,可以啟動(dòng)、修改和關(guān)閉數(shù)據(jù)庫,擁有數(shù)據(jù)字典。
lSYSTEM:是輔助數(shù)據(jù)庫管理員,不能啟動(dòng)和關(guān)閉數(shù)據(jù)庫,可以進(jìn)行一些其他的管理工作,例如創(chuàng)建用戶、刪除用戶等。
lSCOTT:數(shù)據(jù)庫的測(cè)試用戶,默認(rèn)口令為tiger。在該用戶下已經(jīng)創(chuàng)建了一些數(shù)據(jù)表,用于用戶學(xué)習(xí)及測(cè)試網(wǎng)絡(luò)連接,包括:EMP表、DEPT表等。第8頁/共52頁第9頁13.2.2相關(guān)屬性和用戶相關(guān)的屬性包括以下幾種。(1)用戶身份認(rèn)證方式在用戶連接數(shù)據(jù)庫時(shí),必須經(jīng)過身份認(rèn)證。Oracle數(shù)據(jù)庫用戶有3種身份認(rèn)證。數(shù)據(jù)庫身份認(rèn)證:這種方式即用戶名/口令方式,用戶口令以加密方式保存在數(shù)據(jù)庫內(nèi)部,用戶連接數(shù)據(jù)庫時(shí)必須輸入用戶名和口令,通過數(shù)據(jù)庫認(rèn)證后才能登錄數(shù)據(jù)庫。這是默認(rèn)的認(rèn)證方式。外部身份認(rèn)證:用戶賬戶由Oracle數(shù)據(jù)庫管理,但口令管理和身份驗(yàn)證由外部服務(wù)完成,外部服務(wù)可以是操作系統(tǒng)或網(wǎng)絡(luò)服務(wù)。當(dāng)用戶試圖建立與數(shù)據(jù)庫的連接時(shí),數(shù)據(jù)庫不會(huì)要求用戶輸入用戶名和口令,而從外部服務(wù)中獲取當(dāng)前用戶的登錄信息。這種方式比較適合在局域網(wǎng)環(huán)境下,連接簡單,不需要提供用戶名和口令,但是需要在創(chuàng)建用戶時(shí)做一些相應(yīng)的配置。第9頁/共52頁第10頁全局身份認(rèn)證:當(dāng)用戶試圖建立與數(shù)據(jù)庫的連接時(shí),Oracle使用網(wǎng)絡(luò)中的安全管理服務(wù)器(OracleEnterpriseSecurityManager)對(duì)用戶進(jìn)行身份認(rèn)證。和外部身份認(rèn)證相同,用戶賬戶由數(shù)據(jù)庫管理,但Oracle不保存口令,當(dāng)用戶登錄時(shí),需要通過網(wǎng)絡(luò)服務(wù)驗(yàn)證。Oracle的安全管理服務(wù)器可以提供全局范圍內(nèi)管理數(shù)據(jù)庫用戶的功能。(2)表空間配額表空間配額限制用戶在永久表空間中可用的存儲(chǔ)空間大小,默認(rèn)情況下,新用戶在任何表空間中都沒有任何配額。用戶在臨時(shí)表空間中不需要配額。
(3)默認(rèn)表空間用戶在創(chuàng)建數(shù)據(jù)庫對(duì)象時(shí),如果沒有顯示指明該對(duì)象在哪個(gè)空間,那么系統(tǒng)會(huì)將該對(duì)象自動(dòng)存儲(chǔ)在用戶的默認(rèn)表空間中,即SYSTEM表空間。一般不建議將用戶的對(duì)象建立在SYSTEM表空間中,所以默認(rèn)表空間應(yīng)指定。第10頁/共52頁第11頁(4)臨時(shí)表空間
如果用戶執(zhí)行一些操作例如排序、匯總和表間連接等,系統(tǒng)會(huì)首先使用內(nèi)存中的排序區(qū)SORT_AREA_SIZE,如果這塊排序區(qū)大小不夠,則將使用用戶的臨時(shí)表空間。一般使用系統(tǒng)默認(rèn)臨時(shí)表空間TEMP作為用戶的默認(rèn)臨時(shí)表空間。
(5)賬戶狀態(tài)
在創(chuàng)建用戶時(shí),可以設(shè)定用戶的初始狀態(tài),包括用戶口令是否過期、用戶賬戶是否鎖定等。已鎖定的用戶不能訪問數(shù)據(jù)庫,必須由管理員進(jìn)行解鎖后才允許訪問。數(shù)據(jù)庫管理員可以隨時(shí)鎖定賬戶或解除鎖定。
(6)資源配置
每個(gè)用戶都有一個(gè)資源配置,如果創(chuàng)建用戶時(shí)沒有指定,Oracle會(huì)為用戶指定默認(rèn)的資源配置。資源配置的作用是對(duì)數(shù)據(jù)庫系統(tǒng)資源的使用加以限制,這些資源包括:口令是否過期,口令輸入錯(cuò)誤幾次后鎖定該用戶,CPU時(shí)間,輸入/輸出(I/O)以及用戶打開的會(huì)話數(shù)目等。第11頁/共52頁第12頁13.2.3創(chuàng)建用戶創(chuàng)建數(shù)據(jù)庫用戶的語法如下:CREATEUSERuserIDENTIFIED{BYpasswore|EXTERNALLY}[DEFAULTTABLESPACEtablespace][TEMPORARYTABLESPACEtablespace][QUOTA{integer[K|M]|UNLIMITED}ONtablespace[QUOTA{integer[K|M]|UNLIMITED}ONtablespace]…][PASSWORDEXPIRE][ACCOUNT{LOCK|UNLOCK}][PROFILE{profile|DEFAULT}]第12頁/共52頁第13頁參數(shù)說明:user:要?jiǎng)?chuàng)建的用戶名;BYpassword:用戶通過數(shù)據(jù)庫驗(yàn)證方式登錄,登錄時(shí)需要提供的口令;EXTERNALLY:用戶需要通過操作系統(tǒng)驗(yàn)證;DEFAULT或TEMPORARYTABLESPACE:為用戶指定默認(rèn)或臨時(shí)表空間;QUOTA:定義在表空間中允許用戶使用的最大空間,可將限額定義為整數(shù)字節(jié)或千字節(jié)/兆字節(jié)。其中關(guān)鍵字UNLIMITED用戶指定用戶可以使用表空間中全部可用空間;PASSWORDEXPIRE:強(qiáng)制用戶在使用SQL*Plus登錄到數(shù)據(jù)庫時(shí)重置口令(該選項(xiàng)僅在用戶通過數(shù)據(jù)庫進(jìn)行驗(yàn)證時(shí)有效);ACCOUNTLOCK|UNLOCK:可用于顯示鎖定或解除鎖定用戶賬戶(UNLOCK為缺省設(shè)置);PROFILE:指定用戶的資源配置。第13頁/共52頁第14頁【例13-1】創(chuàng)建用戶rose,口令為zzuli,默認(rèn)表空間為USERS,在該表空間的配額為50MB??诹钤O(shè)置為過期狀態(tài),即首次連接數(shù)據(jù)庫時(shí)需要修改口令。(如果在SQLPlus中創(chuàng)建用戶成功,最后會(huì)顯示個(gè)用戶已創(chuàng)建。之類的,最好寫在例題下面,表示這是運(yùn)行成功的代碼,你實(shí)驗(yàn)一下,看看創(chuàng)建完結(jié)果是什么,寫到下面。后面的例題都是這樣的吧)SQL>CREATEUSERroseIDENTIFIEDBYzzuli2DEFAULTTABLESPACEUSERS3QUOTA50MONUSERS4PASSWORDEXPIRE;用戶已創(chuàng)建。第14頁/共52頁第15頁13.2.4修改用戶
用戶創(chuàng)建后,可以更改用戶的屬性,如口令、默認(rèn)表空間、臨時(shí)表空間、表空間配額、概要文件和用戶狀態(tài)等。但不允許修改用戶的名稱,除非將其刪除。修改數(shù)據(jù)庫用戶使用ALTERUSER語句來實(shí)現(xiàn),ALTERUSER語句的語法格式為:ALTERUSERuser_name[IDENTIFIED][BYPASSWORD|EXTERNALLY|GOLBALLYAS‘external_name’][DEFAULTTABLESPACEtablespace_name][TEMPORARYTABLESPACEtemp_tempspace_name][QUOTAnK|M|UNLIMITEDONtablespace_name][PROFILEprofile_name][DEFAULTROLErole_list|ALL[EXCEPTrole_list]|NONE][PASSWORDEXPIRE][ACCOUNTLOCK|UNLOCK];第15頁/共52頁第16頁對(duì)其中的參數(shù)說明如下。lrole_list:角色列表lALL:表示所有角色lEXCEPTrole_list:表示除了role_list列表中角色以外的其他角色。lNONE:表示沒有默認(rèn)角色。
【例13-2】修改用戶atea的默認(rèn)表空間為USERS,在該表空間的配額為100MB,在USERS表空間的配額為30MB。命令如下:SQL>ALTERUSERatea2DEFAULTTABLESPACEUSERS3QUOTA30MONUSERS;第16頁/共52頁第17頁13.2.5刪除用戶
當(dāng)一個(gè)用戶不再使用時(shí),可以將其刪除。刪除用戶的語法:
DROPUSERuser_name[CASCADE]執(zhí)行該語句的用戶必須具有DROPUSER的系統(tǒng)權(quán)限。刪除用戶時(shí)需要注意如下幾點(diǎn):(1)如果用戶方案中包括任何對(duì)象,在刪除用戶時(shí),必須加上CASCADE短語,Oracle數(shù)據(jù)庫會(huì)先刪除該用戶的所有對(duì)象,然后再刪除該用戶。(2)如果用戶當(dāng)前正與Oracle服務(wù)器連接,則不能刪除?!纠?3-3】刪除用戶atea。
SQL>DROPUSERatea;--如果atea用戶的方案中沒有對(duì)象 SQL>DROPUSERateaCASCADE;--如果atea用戶的方案中有對(duì)象第17頁/共52頁第18頁13.2.6查詢用戶信息
如果要獲取用戶信息,可以通過查詢數(shù)據(jù)字典視圖或動(dòng)態(tài)性能視圖來實(shí)現(xiàn)。
ALL_USERS:包含數(shù)據(jù)庫所有用戶的用戶名、用戶ID和用戶創(chuàng)建時(shí)間。
DBA_USERS:包含數(shù)據(jù)庫所有用戶的詳細(xì)信息。
USER_USERS:包含當(dāng)前用戶的詳細(xì)信息。
DBA_TS_QUOTAS:包含所有用戶的表空間配額信息。
USER_TS_QUOTAS:包含當(dāng)前用戶的表空間配額信息。
V$SESSION:包含用戶會(huì)話信息。
V$OPEN_CURSOR:包含用戶執(zhí)行的SQL語句信息。
【例13-4】查找所有用戶的默認(rèn)表空間。(查找的結(jié)果應(yīng)該截圖,顯示在下面)
SQL>SELECTuser_name,default_tablespace 2FROMdba_users;第18頁/共52頁第19頁主要內(nèi)容13.1概述13.2用戶管理13.3權(quán)限管理13.4角色管理13.5數(shù)據(jù)庫審計(jì)13.6小結(jié)13.7習(xí)題第19頁/共52頁第20頁
在用戶創(chuàng)建完成后,僅僅表示該用戶在Oracle系統(tǒng)中進(jìn)行了注冊(cè)而已,這樣的用戶既不能連接到數(shù)據(jù)庫,更談不上進(jìn)行查詢、建表等操作。要使該用戶能夠連接到Oracle系統(tǒng)并能使用Oracle的資源,如查詢表的數(shù)據(jù),創(chuàng)建自己的表結(jié)構(gòu)等,必須由具有DBA角色的用戶對(duì)該用戶進(jìn)行授權(quán)。第20頁/共52頁第21頁13.3.1權(quán)限概述
權(quán)限是指執(zhí)行特定類型的SQL語句或訪問另一個(gè)用戶的對(duì)象的權(quán)利,例如:連接到數(shù)據(jù)庫,創(chuàng)建表,查詢其他用戶的表,調(diào)用其他用戶的存儲(chǔ)過程等。Oracle數(shù)據(jù)庫使用權(quán)限來控制用戶對(duì)數(shù)據(jù)的訪問和用戶所能執(zhí)行的操作。用戶在數(shù)據(jù)庫中可以執(zhí)行什么樣的操作,以及可以對(duì)哪些對(duì)象進(jìn)行操作,完全取決于該用戶所擁有的權(quán)限。
根據(jù)系統(tǒng)管理方式的不同,在Oracle數(shù)據(jù)庫中將權(quán)限分為兩大類,系統(tǒng)權(quán)限和對(duì)象權(quán)限。
系統(tǒng)權(quán)限指數(shù)據(jù)庫級(jí)別執(zhí)行某些操作的權(quán)限,即用戶執(zhí)行某一特定的數(shù)據(jù)庫操作或某類數(shù)據(jù)庫操作等的權(quán)限,例如創(chuàng)建表空間,創(chuàng)建會(huì)話等。第21頁/共52頁第22頁
對(duì)象權(quán)限是指對(duì)數(shù)據(jù)庫中的特定對(duì)象(例如表、視圖、序列、過程、函數(shù)或程序包)的訪問控制,以及用戶可以在這些數(shù)據(jù)庫對(duì)象上執(zhí)行哪些操作。例如插入表記錄,增加約束條件等。
無論系統(tǒng)權(quán)限還是對(duì)象權(quán)限,在Oracle數(shù)據(jù)庫中,將權(quán)限授予用戶的方式有直接授權(quán)和間接授權(quán)兩種。所謂直接授權(quán)就是利用GRANT命令直接為用戶授權(quán),間接授權(quán)就是先將權(quán)限授予角色,再將角色授予用戶。另外,已經(jīng)獲得某種權(quán)限的用戶可以將他們的權(quán)限或其中一部分權(quán)限再授予其他用戶。第22頁/共52頁第23頁13.3.2系統(tǒng)權(quán)限管理
在Orcale11g中含有200多種系統(tǒng)權(quán)限,每種系統(tǒng)權(quán)限都為用戶提供了執(zhí)行某一種或某一類數(shù)據(jù)庫操作的能力,可以將系統(tǒng)權(quán)限授予用戶和角色。由于系統(tǒng)權(quán)限可能影響到整個(gè)數(shù)據(jù)庫,所有授予系統(tǒng)權(quán)限給用戶時(shí)需要慎重。1.授予系統(tǒng)權(quán)限
系統(tǒng)管理員給用戶授權(quán)時(shí),應(yīng)該考慮到不同用戶的身份。例如數(shù)據(jù)庫管理員用戶應(yīng)該具有創(chuàng)建用戶、修改用戶權(quán)限、創(chuàng)建表空間以及可以對(duì)數(shù)據(jù)庫任何模式中的對(duì)象進(jìn)行管理的權(quán)限,而數(shù)據(jù)庫開發(fā)人員應(yīng)該具有在自己的方案中創(chuàng)建表、視圖、過程等的權(quán)限。另外一些普通用戶應(yīng)該只賦予CREATESESSION的權(quán)限。第23頁/共52頁第24頁授予系統(tǒng)權(quán)限的語法:GRANT{system_privilege|role}[,{system_privilege|role}]…TO{user|role|PUBLIC}[,{user|role|PUBLIC}]…[WITHADMINOPTION]參數(shù)說明:lsystem_privilege:要授予的系統(tǒng)權(quán)限luser:被授予權(quán)限的用戶lrole:被授予的角色名lPUBLIC:將系統(tǒng)權(quán)限授予所有用戶lWITHADMINOPTION:允許被授予者進(jìn)一步為其他用戶或角色授予權(quán)限或角色。當(dāng)授權(quán)時(shí)帶有這個(gè)子句時(shí),用戶才可以將獲得的系統(tǒng)權(quán)限再授予其他用戶,即系統(tǒng)權(quán)限的傳遞性。第24頁/共52頁第25頁【例13-5】數(shù)據(jù)庫管理員授予CREATESESSION權(quán)限給用戶atea。SQL>GRANTCREATESESSIONTOatea;2.系統(tǒng)權(quán)限收回
一般用戶被授予過高的權(quán)限可能會(huì)給Oracle系統(tǒng)帶來安全隱患。作為Oracle系統(tǒng)管理員,應(yīng)該會(huì)查詢當(dāng)前Oracle系統(tǒng)中各個(gè)用戶的權(quán)限,并且能夠使用REVOKE命令撤銷用戶的某些不必要的系統(tǒng)權(quán)限??梢允褂肦EVOKE語句撤銷系統(tǒng)權(quán)限。REVOKE{system_privilege|role}[,{system_privilege|role}]…FROM{user|role|PUBLIC}[,{user|role|PUBLIC}]…REVOKE語句中的參數(shù)和GRANT語句中相同。第25頁/共52頁第26頁
【例13-6】收回用戶atea的CREATESESSION權(quán)限SQL>REVOKECREATESESSIONFROMatea;
需要說明的是,如果數(shù)據(jù)庫管理員使用了GRANT語句給用戶A授予系統(tǒng)權(quán)限時(shí)帶有WITHADMINOPTION選項(xiàng),則該用戶A有權(quán)將系統(tǒng)權(quán)限再次授予其他的用戶B。在這種情況下,如果數(shù)據(jù)庫管理員使用REVOKE命令撤銷A用戶的系統(tǒng)權(quán)限時(shí),用戶B的系統(tǒng)授權(quán)仍然有效。13.3.3對(duì)象權(quán)限管理對(duì)象權(quán)限是一種對(duì)于特定對(duì)象(表、視圖、序列、過程、函數(shù)或程序包等)執(zhí)行特定操作的一種權(quán)限。數(shù)據(jù)庫用戶擁有對(duì)自己的對(duì)象的所有對(duì)象權(quán)限,所以對(duì)象權(quán)限的管理實(shí)際上即是對(duì)象所有者對(duì)其他用戶操作該對(duì)象的權(quán)限管理。第26頁/共52頁第27頁1.授予對(duì)象權(quán)限授予對(duì)象權(quán)限的語法:GRANT{object_privilege[(column_list)][,object_privilege[(column_list)]]…|ALL[PRIVILEGES]}ON[schema.]objectTO{user|role|PUBLIC}[,{user|role|PUBLIC}]…[WITHGRANTOPTION]其中參數(shù)說明如下:lobject_privilege:表示要授予的對(duì)象權(quán)限;lcolumn_list:指定表或視圖列;lALL:將所有權(quán)限授予那些已被授予WITHGRANTOPTION的對(duì)象;lONobject:object表示將要被授予權(quán)限的目標(biāo)對(duì)象;lRole:角色名;lUser:被授予的用戶名;lWITHGRANTOPTION:表示被授予者可再將對(duì)象權(quán)限授予其他用戶。第27頁/共52頁第28頁【例13-7】將SELECT、INSERT、DELETE授權(quán)給atea用戶。SQL>GRANTSELECT,INSERT,DELETEONempTOatea;2.對(duì)象權(quán)限回收
要從用戶或者角色中撤銷對(duì)象權(quán)限,仍然要使用REVOKE命令來完成。要撤銷對(duì)象權(quán)限,撤銷者必須是將被撤銷的對(duì)象權(quán)限的原始授予者。撤銷對(duì)象權(quán)限的語法:REVOKE{object_privilege[,object_privilege]…|ALL[PRIVILEGES]}ON[schema.]objectFROM{user|role|PUBLIC}[,{user|role|PUBLIC}]…[CASCADECONSTRAINTS]第28頁/共52頁第29頁其中參數(shù)說明如下:lobject_privilege:指定將撤銷的對(duì)象權(quán)限;lALL:撤銷已授予用戶的所有對(duì)象權(quán)限;lON:標(biāo)識(shí)將撤銷其對(duì)象權(quán)限的對(duì)象;lFROM:標(biāo)識(shí)將撤銷其對(duì)象權(quán)限的用戶或角色;lCASCADECONSTRAINTS:刪除撤銷使用REFERENCES或ALL權(quán)限定義的任何引用完整性約束限制;
【例13-8】從atea用戶撤銷emp對(duì)象的所有權(quán)限。SQL>REVOKEALLONempFROMatea;
需要注意的是,如果數(shù)據(jù)庫管理員使用GRANT命令給用戶A授予對(duì)象權(quán)限時(shí)帶有WITHADMINOPTION選項(xiàng),則該用戶A有權(quán)將權(quán)限再次授予其他的用戶B。在這種情況下,如果數(shù)據(jù)庫管理員使用REVOKE命令撤銷A用戶的對(duì)象權(quán)限時(shí),用戶B的對(duì)象權(quán)限也被撤銷。需要注意,在進(jìn)行系統(tǒng)權(quán)限回收和進(jìn)行對(duì)象權(quán)限回收時(shí),效果是不一樣的。第29頁/共52頁第30頁13.3.4權(quán)限查詢
用戶被授予的系統(tǒng)權(quán)限或者對(duì)象權(quán)限都被記錄在Oracle的數(shù)據(jù)字典中,了解某個(gè)用戶被授予哪些系統(tǒng)權(quán)限和對(duì)象權(quán)限是確保應(yīng)用系統(tǒng)安全的重要工作。如表13-1所示為Oracle11g用于存放用戶、系統(tǒng)權(quán)限和對(duì)象權(quán)限有關(guān)的數(shù)據(jù)字典?!纠?3-9】查詢所有的對(duì)象權(quán)限。(查找的結(jié)果應(yīng)該截圖粘貼在下面)SQL>SELECT*FROMdba_tab_privs;第30頁/共52頁第31頁主要內(nèi)容13.1概述13.2用戶管理13.3權(quán)限管理13.4角色管理13.5數(shù)據(jù)庫審計(jì)13.6小結(jié)13.7習(xí)題第31頁/共52頁第32頁13.4角色管理
Oracle中的權(quán)限分類很多,設(shè)置十分復(fù)雜,就系統(tǒng)權(quán)限而言,在Oracle11g中就超過了200種,為數(shù)據(jù)庫管理員正確有效地管理數(shù)據(jù)庫權(quán)限帶來了困難,而角色就是簡化權(quán)限管理的一種數(shù)據(jù)庫對(duì)象。13.4.1角色概述角色是權(quán)限管理的一種工具,是一系列權(quán)限的集合,角色可以被授予任何用戶,也可以從用戶中收回。使用角色可以簡化權(quán)限的管理,可以僅用一條語句就能從用戶那里授予或者回收許多權(quán)限,而不必對(duì)用戶一一授權(quán)。使用角色還可以實(shí)現(xiàn)權(quán)限的動(dòng)態(tài)管理,比如隨著應(yīng)用的變化可以增加或者減少角色的權(quán)限,這樣通過改變角色權(quán)限,就改變了多個(gè)用戶的權(quán)限。第32頁/共52頁第33頁
角色、用戶及權(quán)限是一組有密切關(guān)系的對(duì)象,既然角色是一組權(quán)限的集合,那么他被授予某個(gè)用戶時(shí)才能有意義,可以如圖13-1所示幫助我們理解角色、用戶及權(quán)限的關(guān)系。圖13-1用戶、角色和權(quán)限的關(guān)系第33頁/共52頁第34頁
在復(fù)雜的大型應(yīng)用系統(tǒng),要求對(duì)應(yīng)用系統(tǒng)功能進(jìn)行分類,從而形成角色的雛形,再使用CREATEROLE語句將它們創(chuàng)建為角色;最后根據(jù)用戶工作的分工,將不同的角色(包括系統(tǒng)預(yù)定義的角色)授予各類用戶。如果應(yīng)用系統(tǒng)的規(guī)模很小,用戶數(shù)也不多,則可以直接將應(yīng)用的權(quán)限授予用戶,即使是這樣,用戶也必須對(duì)Oracle系統(tǒng)的預(yù)定義角色有所了解。
角色所對(duì)應(yīng)的權(quán)限集合中可以包含系統(tǒng)權(quán)限和對(duì)象權(quán)限。角色是可以授予另外一個(gè)角色的,需要避免將角色授予它本身,也不能循環(huán)授予。13.4.2創(chuàng)建角色
如果系統(tǒng)預(yù)定義的角色不符合用戶的需要,數(shù)據(jù)庫管理員還可以創(chuàng)建更多的角色。創(chuàng)建用戶自定義角色使用CREATEROLE語句來實(shí)現(xiàn)。第34頁/共52頁第35頁創(chuàng)建角色語句的語法格式如下:CREATEROLErole_name[NOTIDENTIFIED][IDENTIFIEDBYpassword];對(duì)其中的參數(shù)說明如下:lrole_name:用于指定自定義角色名稱,該名稱不能與任何用戶名或其他角色相同。lNOTIDENTIFIED:用戶指定該角色由數(shù)據(jù)庫授權(quán),使該角色生效時(shí)不需要口令。lIDENTIFIEDBYpassword:用于設(shè)置角色生效時(shí)的認(rèn)證口令?!纠?3-10】創(chuàng)建不驗(yàn)證的角色doctor_clerkSQL>CREATEROLEdoctor_clerk;【例13-11】創(chuàng)建使用口令驗(yàn)證的角色SQL>CREATEROLEunit_clerkIDENTIFIEDBYcaption;【例13-12】創(chuàng)建外部驗(yàn)證的角色SQL>CREATEROLEunit_managerIDENTIFIEDEXTERNALLY;第35頁/共52頁第36頁13.4.3角色授權(quán)
當(dāng)角色被建立后,沒有任何權(quán)限,只有對(duì)其授予權(quán)限,才有使用的意義。因此,在創(chuàng)建角色后,通常還需要立即為它授予權(quán)限??梢酝ㄟ^給用戶授權(quán)的GRANT語句給角色授權(quán),并將角色賦予相應(yīng)的數(shù)據(jù)庫用戶。角色權(quán)限的授予與回收和用戶權(quán)限的授予與回收類似,語法也與其相同。
【例13-13】為teller角色授予CREATESESSION和CREATEDATABASELINK權(quán)限
SQL>GRANTCREATESESSION,CREATEDATABASELINKtoteller;對(duì)角色授權(quán)后,就可以將角色授予某個(gè)用戶。
【例13-14】將teller角色授予用戶wang
SQL>GRANTtellerTOwang;第36頁/共52頁第37頁13.4.4角色的生效/失效
當(dāng)某角色生效時(shí),屬于角色的用戶可以執(zhí)行該角色所具有的所有權(quán)限操作,而當(dāng)某角色失效時(shí),擁有這個(gè)角色的用戶將不能執(zhí)行該角色的任何權(quán)限操作。因此,通過設(shè)置角色的生效或失效,可以動(dòng)態(tài)改變用戶的權(quán)限。設(shè)置角色生效或失效使用SETROLE語句,語法格式為:SETROLE{role[IDENTIFIEDBYpassword][,role[IDENTIFIEDBYpassword]]…|ALL[EXCEPTrole[,role]…]|NONE}第37頁/共52頁第38頁參數(shù)說明如下:lrole:是角色的名稱;lIDENTIFIEDBYpassword:提供角色生效時(shí)所需的口令;lALL:除了EXCEPT子句中列出的角色外,授予當(dāng)前用戶的全部角色生效;lEXCEPTrole:這些角色不生效;lNONE:當(dāng)前會(huì)話的全部角色失效(只有直接授予用戶的權(quán)限是可用的)。
角色的生效針對(duì)的是會(huì)話,在下一個(gè)會(huì)話中,用戶的活動(dòng)角色將默認(rèn)為默認(rèn)角色。
如果角色設(shè)置了口令,則SETROLE命令中必須包含口令才能使角色生效。分配給用戶的默認(rèn)角色不需要口令,這些角色同沒有口令的角色一樣在登錄時(shí)生效。第38頁/共52頁第39頁【例13-15】在當(dāng)前會(huì)話中使角色doctor_clerk生效。SQL>SETROLEdoctor_clerk;
【例13-16】在當(dāng)前會(huì)話中使除了unit_manager之外的所有角色生效。SQL>SETROLEALLEXCEPTunit_manager;
【例13-17】設(shè)置當(dāng)前用戶所有角色失效。SQL>SETROLENONE;13.4.5修改角色
修改角色時(shí),只能修改角色生效或失效時(shí)的認(rèn)證方式,也就是說,是否必須經(jīng)過Oracle確認(rèn)才允許對(duì)角色進(jìn)行修改。而且,當(dāng)前用戶的角色必須通過ADMIN選項(xiàng)進(jìn)行授予,或者當(dāng)前用戶必須具有ALTERANYROLE系統(tǒng)權(quán)限。修改角色的語法:ALTERROLErole{NOTIDENTIFIED|IDENTIFIED{BYpassword|USINGpackage|EXTERNALLY|GLOBALLY}};第39頁/共52頁第40頁參數(shù)說明如下:lrole:角色名稱;lNOTIDENTIFIED:表明該角色生效時(shí),不需要進(jìn)行驗(yàn)證;lIDENTIFIED:表明該角色生效時(shí),需要進(jìn)行驗(yàn)證;lBYpassword:提供角色生效時(shí)所使用的口令;lEXTERNALLY:表明該角色生效之前,用戶必須由外部服務(wù)(例如操作系統(tǒng)或網(wǎng)絡(luò)服務(wù))授權(quán);lGLOBALLY:表明通過SETROLE語句使角色生效之前或登錄時(shí),必須由企業(yè)目錄服務(wù)授權(quán)用戶使用該角色。第40頁/共52頁第41頁【例13-18】修改角色unit_clerk由外部驗(yàn)證。
SQL>ALTERROLEunit_clerkIDENTIFIEDEXTERNALLY;
【例13-19】修改角色unit_manager不驗(yàn)證。SQL>ALTERROLEunit_managerNOTIDENTIFIED;
【例13-20】修改角色doctor_clerk驗(yàn)證密碼。SQL>ALTERROLEdoctor_clerkIDENTIFIEDBYORDER;13.4.6刪除角色
如果不再需要某個(gè)角色或者某個(gè)角色的設(shè)置不太合理時(shí),就可以使用DROPROLE來刪除角色,使用該角色的用戶的權(quán)限同時(shí)也被回收。刪除用戶一般由DBA操作。第41頁/共52頁第42頁刪除角色的語法如下:DROPROLErole;參數(shù)說明如下:lrole:角色名稱;【例13-21】刪除角色unit_clerk。SQL>DROPROLEunit_clerk;13.4.7查詢角色信息
可以通過查詢數(shù)據(jù)字典或動(dòng)態(tài)性能視圖獲得數(shù)據(jù)庫角色的相關(guān)信息。lDBA_ROLES:數(shù)據(jù)庫中的所有角色及其描述;lDBA_ROLES_PRIVS:授予用戶和角色的角色信息;lDBA_SYS_PRIVS:授予用戶和角色的系統(tǒng)權(quán)限;lUSER_ROLE_PRIVS:為當(dāng)前用戶授予的角色信息;lROLE_ROLE_PRIVS:授予角色的角色信息;第42頁/共52頁第43頁
lROLE_SYS_PRIVS:授予角色的系統(tǒng)權(quán)限信息;lROLE_TAB_PRIVS:授予角色的對(duì)象權(quán)限信息;lSESSION_PRIVS:當(dāng)前會(huì)話所具有的系統(tǒng)權(quán)限信息;lSESSION_ROLES:用戶當(dāng)前授權(quán)的角色信息。【例13-22】查詢用戶martha的角色及默認(rèn)角色。(應(yīng)該有截圖)SQL>SELECT*FROMdba_roles_privs2WHEREgrantee=‘MARTHA’;【例13-23】查詢DBA角色所具有的系統(tǒng)權(quán)限信息。(應(yīng)該有截圖)SQL>SELECT*FROMROLE_SYS_PRIVS2WHEREROLE=‘DBA’;第43頁/共52頁第44頁主要內(nèi)容13.1概述13.2用戶管理13.3權(quán)限管理13.4角色管理13.5數(shù)據(jù)庫審計(jì)13.6小結(jié)13.7習(xí)題第44頁/共52頁第45頁13.5數(shù)據(jù)庫審計(jì)
審計(jì)是監(jiān)視和記錄用戶對(duì)數(shù)據(jù)庫所進(jìn)行的操作,以供DBA進(jìn)行統(tǒng)計(jì)和分析。對(duì)于安全要求較高的應(yīng)用系統(tǒng)來說,數(shù)據(jù)庫管理員可以啟用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療大數(shù)據(jù)與公共衛(wèi)生管理
- 2025年資產(chǎn)評(píng)估師職業(yè)資格考試真題卷:資產(chǎn)評(píng)估師職業(yè)資格考試歷年真題匯編與解析
- 高級(jí)審計(jì)師面試技術(shù)試題及答案
- 2025年初中地理信息技術(shù)應(yīng)用學(xué)業(yè)水平考試模擬試題及答案集
- 寒暑假實(shí)習(xí)總結(jié)與反思試題及答案
- 理論實(shí)踐一級(jí)建造師考試試題及答案
- 醫(yī)療領(lǐng)域精準(zhǔn)營養(yǎng)學(xué)的創(chuàng)新突破
- 醫(yī)院管理與醫(yī)療人才保留策略研究
- 2025年建造師熱點(diǎn)知識(shí)點(diǎn)試題及答案
- 中級(jí)審計(jì)師考試有效試題與答案
- 2025年北京市東城區(qū)高三二模地理試卷(含答案)
- 土地荒漠化試題及答案
- 初中地理《埃及》教學(xué)設(shè)計(jì)-2024-2025學(xué)年湘教版地理七年級(jí)下冊(cè)
- 內(nèi)蒙古百校聯(lián)盟2025屆高考英語押題試卷含答案
- 2025年北京市通州區(qū)九年級(jí)初三一模道德與法治試卷(含答案)
- 數(shù)據(jù)資產(chǎn)的確認(rèn)與計(jì)量問題研究
- 浙江省北斗星盟2025屆高三下學(xué)期適應(yīng)性考試(三模)物理試題(含答案)
- 七年級(jí)地理下冊(cè) 7.1 日本教學(xué)設(shè)計(jì) 湘教版
- 2024-2025學(xué)年人教新版八年級(jí)下冊(cè)數(shù)學(xué)期中復(fù)習(xí)試卷(含詳解)
- 法律行業(yè)法律風(fēng)險(xiǎn)評(píng)估與合規(guī)性方案
- 2024-2024年上海市高考英語試題及答案
評(píng)論
0/150
提交評(píng)論