安全性管理概述PPT課件_第1頁
安全性管理概述PPT課件_第2頁
安全性管理概述PPT課件_第3頁
安全性管理概述PPT課件_第4頁
安全性管理概述PPT課件_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、安全性管理概述安全性管理概述第第1頁頁第第2頁頁本章概述本章概述 安全性是衡量數(shù)據(jù)庫產(chǎn)品性能的重要指標(biāo)。本章介紹安全性是衡量數(shù)據(jù)庫產(chǎn)品性能的重要指標(biāo)。本章介紹Oracle 11g數(shù)據(jù)庫的安全管理機(jī)制,內(nèi)容包括用戶管理,權(quán)限數(shù)據(jù)庫的安全管理機(jī)制,內(nèi)容包括用戶管理,權(quán)限管理,角色管理,數(shù)據(jù)庫審計等管理,角色管理,數(shù)據(jù)庫審計等。第第3頁頁 本章的學(xué)習(xí)目標(biāo):本章的學(xué)習(xí)目標(biāo): 了解用戶、權(quán)限、角色的概念及作用了解用戶、權(quán)限、角色的概念及作用 學(xué)會創(chuàng)建、修改、刪除用戶學(xué)會創(chuàng)建、修改、刪除用戶 學(xué)會將系統(tǒng)權(quán)限和對象權(quán)限授予用戶,以及回收權(quán)限學(xué)會將系統(tǒng)權(quán)限和對象權(quán)限授予用戶,以及回收權(quán)限 學(xué)會使用系統(tǒng)預(yù)定義角

2、色,學(xué)會創(chuàng)建自定義角色,以及學(xué)會使用系統(tǒng)預(yù)定義角色,學(xué)會創(chuàng)建自定義角色,以及角色權(quán)限的授予和回收角色權(quán)限的授予和回收 了解數(shù)據(jù)庫審計的概念及作用了解數(shù)據(jù)庫審計的概念及作用第第4頁頁主要內(nèi)容主要內(nèi)容13.1 概述概述13.2 用戶管理用戶管理13.3 權(quán)限管理權(quán)限管理13.4 角色管理角色管理13.5數(shù)據(jù)庫審計數(shù)據(jù)庫審計13.6小結(jié)小結(jié)13.7習(xí)題習(xí)題第第5頁頁 安全性在數(shù)據(jù)庫管理中占據(jù)重要的位置,沒有完善的安全安全性在數(shù)據(jù)庫管理中占據(jù)重要的位置,沒有完善的安全機(jī)制的保護(hù),可能會導(dǎo)致數(shù)據(jù)的泄露、損壞或丟失,因此安全機(jī)制的保護(hù),可能會導(dǎo)致數(shù)據(jù)的泄露、損壞或丟失,因此安全性一直是數(shù)據(jù)庫產(chǎn)品性能的重要

3、衡量指標(biāo)之一。性一直是數(shù)據(jù)庫產(chǎn)品性能的重要衡量指標(biāo)之一。Oracle數(shù)據(jù)庫數(shù)據(jù)庫的安全管理是從用戶登錄數(shù)據(jù)庫就開始的。數(shù)據(jù)庫訪問的安全的安全管理是從用戶登錄數(shù)據(jù)庫就開始的。數(shù)據(jù)庫訪問的安全性主要包括兩個方面的含義:一是阻止未授權(quán)用戶訪問數(shù)據(jù)庫;性主要包括兩個方面的含義:一是阻止未授權(quán)用戶訪問數(shù)據(jù)庫;二是每個數(shù)據(jù)庫用戶都有不同的操作權(quán)限,用戶在數(shù)據(jù)庫中的二是每個數(shù)據(jù)庫用戶都有不同的操作權(quán)限,用戶在數(shù)據(jù)庫中的操作將被限制在其權(quán)限范圍內(nèi)。操作將被限制在其權(quán)限范圍內(nèi)。 在在Oracle數(shù)據(jù)庫中,用戶的身份通常被劃分為數(shù)據(jù)庫管理員和開發(fā)人數(shù)據(jù)庫中,用戶的身份通常被劃分為數(shù)據(jù)庫管理員和開發(fā)人員,其中數(shù)據(jù)庫

4、管理員承擔(dān)管理數(shù)據(jù)庫的責(zé)任,包括安全性管理、調(diào)優(yōu)、員,其中數(shù)據(jù)庫管理員承擔(dān)管理數(shù)據(jù)庫的責(zé)任,包括安全性管理、調(diào)優(yōu)、備份策略的制定、數(shù)據(jù)庫出現(xiàn)故障時的數(shù)據(jù)恢復(fù)、保證數(shù)據(jù)庫的可用性等。備份策略的制定、數(shù)據(jù)庫出現(xiàn)故障時的數(shù)據(jù)恢復(fù)、保證數(shù)據(jù)庫的可用性等。軟件系統(tǒng)的開發(fā)人員作為數(shù)據(jù)庫管理員之外的一類使用者,承擔(dān)軟件開發(fā)軟件系統(tǒng)的開發(fā)人員作為數(shù)據(jù)庫管理員之外的一類使用者,承擔(dān)軟件開發(fā)的職責(zé),對數(shù)據(jù)庫的訪問要求及技能掌握要求比數(shù)據(jù)庫管理員低,他們需的職責(zé),對數(shù)據(jù)庫的訪問要求及技能掌握要求比數(shù)據(jù)庫管理員低,他們需要熟練掌握的要熟練掌握的SQL及及PL/SQL的操作技能,能夠快速及高效率地完成對數(shù)的操作技能,能

5、夠快速及高效率地完成對數(shù)據(jù)庫的操作需求,對調(diào)優(yōu)和備份恢復(fù)等操作通常不參與。所以,數(shù)據(jù)庫的據(jù)庫的操作需求,對調(diào)優(yōu)和備份恢復(fù)等操作通常不參與。所以,數(shù)據(jù)庫的安全管理通常屬于數(shù)據(jù)庫管理員的職責(zé),安全管理通常屬于數(shù)據(jù)庫管理員的職責(zé),DBA可以通過管理用戶、角色可以通過管理用戶、角色以及權(quán)限來控制數(shù)據(jù)庫的安全。但對于軟件開發(fā)人員來說,掌握一些安全以及權(quán)限來控制數(shù)據(jù)庫的安全。但對于軟件開發(fā)人員來說,掌握一些安全機(jī)制及處理方式也是有必要的。機(jī)制及處理方式也是有必要的。第第6頁頁主要內(nèi)容主要內(nèi)容13.1 概述概述13.2 用戶管理用戶管理13.3 權(quán)限管理權(quán)限管理13.4 角色管理角色管理13.5數(shù)據(jù)庫審計數(shù)

6、據(jù)庫審計13.6小結(jié)小結(jié)13.7習(xí)題習(xí)題13.2 用戶管理用戶管理第第7頁頁 用戶是數(shù)據(jù)庫的使用者和管理者,用戶管理是用戶是數(shù)據(jù)庫的使用者和管理者,用戶管理是Oracle數(shù)據(jù)庫數(shù)據(jù)庫安全管理的核心和基礎(chǔ)。每個連接到數(shù)據(jù)庫的用戶都必須是系統(tǒng)安全管理的核心和基礎(chǔ)。每個連接到數(shù)據(jù)庫的用戶都必須是系統(tǒng)的合法用戶,用戶要想使用的合法用戶,用戶要想使用Oracle的系統(tǒng)資源(查詢數(shù)據(jù)、創(chuàng)建的系統(tǒng)資源(查詢數(shù)據(jù)、創(chuàng)建表等),就必須要擁有相應(yīng)的權(quán)限。表等),就必須要擁有相應(yīng)的權(quán)限。Oracle數(shù)據(jù)庫的用戶管理包括創(chuàng)建用戶、修改用戶的安全參數(shù)、數(shù)據(jù)庫的用戶管理包括創(chuàng)建用戶、修改用戶的安全參數(shù)、刪除用戶和查詢用戶

7、信息等。刪除用戶和查詢用戶信息等。第第8頁頁13.2.1 初始用戶初始用戶 在創(chuàng)建在創(chuàng)建Oracle數(shù)據(jù)庫時會自動創(chuàng)建一些用戶,例如數(shù)據(jù)庫時會自動創(chuàng)建一些用戶,例如SYS、SYSTEM、SCOTT等,除了等,除了SYS、SYSTEM這兩個初始合法這兩個初始合法的管理員,其余用戶在創(chuàng)建后處于鎖定狀態(tài),需要在安裝時的管理員,其余用戶在創(chuàng)建后處于鎖定狀態(tài),需要在安裝時或者安裝后對其解鎖并重新設(shè)定口令。這些初始用戶有其自或者安裝后對其解鎖并重新設(shè)定口令。這些初始用戶有其自身的職責(zé)和特點,軟件項目一般不建議使用這些初始用戶。身的職責(zé)和特點,軟件項目一般不建議使用這些初始用戶。即針對不同的項目,應(yīng)該由管理

8、員分配不同的用戶,在開發(fā)即針對不同的項目,應(yīng)該由管理員分配不同的用戶,在開發(fā)過程中,過程中,SCOTT用戶可以用來測試數(shù)據(jù)庫的可用性。用戶可以用來測試數(shù)據(jù)庫的可用性。 l SYS:是數(shù)據(jù)庫中具有最高權(quán)限的數(shù)據(jù)庫管理員,可以:是數(shù)據(jù)庫中具有最高權(quán)限的數(shù)據(jù)庫管理員,可以啟動、修改和關(guān)閉數(shù)據(jù)庫,擁有數(shù)據(jù)字典。啟動、修改和關(guān)閉數(shù)據(jù)庫,擁有數(shù)據(jù)字典。 l SYSTEM:是輔助數(shù)據(jù)庫管理員,不能啟動和關(guān)閉數(shù)據(jù):是輔助數(shù)據(jù)庫管理員,不能啟動和關(guān)閉數(shù)據(jù)庫,可以進(jìn)行一些其他的管理工作,例如創(chuàng)建用戶、刪除用庫,可以進(jìn)行一些其他的管理工作,例如創(chuàng)建用戶、刪除用戶等。戶等。 l SCOTT:數(shù)據(jù)庫的測試用戶,默認(rèn)口令

9、為:數(shù)據(jù)庫的測試用戶,默認(rèn)口令為tiger。在該用。在該用戶下已經(jīng)創(chuàng)建了一些數(shù)據(jù)表,用于用戶學(xué)習(xí)及測試網(wǎng)絡(luò)連接,戶下已經(jīng)創(chuàng)建了一些數(shù)據(jù)表,用于用戶學(xué)習(xí)及測試網(wǎng)絡(luò)連接,包括:包括:EMP表、表、DEPT表等。表等。13.2.2 相關(guān)屬性相關(guān)屬性和用戶相關(guān)的屬性包括以下幾種。和用戶相關(guān)的屬性包括以下幾種。(1)用戶身份認(rèn)證方式)用戶身份認(rèn)證方式在用戶連接數(shù)據(jù)庫時,必須經(jīng)過身份認(rèn)證。在用戶連接數(shù)據(jù)庫時,必須經(jīng)過身份認(rèn)證。Oracle數(shù)據(jù)庫用數(shù)據(jù)庫用戶有戶有3種身份認(rèn)證。種身份認(rèn)證。u數(shù)據(jù)庫身份認(rèn)證:這種方式即用戶名數(shù)據(jù)庫身份認(rèn)證:這種方式即用戶名/口令方式,用戶口口令方式,用戶口令以加密方式保存在數(shù)

10、據(jù)庫內(nèi)部,用戶連接數(shù)據(jù)庫時必須令以加密方式保存在數(shù)據(jù)庫內(nèi)部,用戶連接數(shù)據(jù)庫時必須輸入用戶名和口令,通過數(shù)據(jù)庫認(rèn)證后才能登錄數(shù)據(jù)庫。輸入用戶名和口令,通過數(shù)據(jù)庫認(rèn)證后才能登錄數(shù)據(jù)庫。這是默認(rèn)的認(rèn)證方式。這是默認(rèn)的認(rèn)證方式。u外部身份認(rèn)證:用戶賬戶由外部身份認(rèn)證:用戶賬戶由Oracle數(shù)據(jù)庫管理,但口令管數(shù)據(jù)庫管理,但口令管理和身份驗證由外部服務(wù)完成,外部服務(wù)可以是操作系統(tǒng)理和身份驗證由外部服務(wù)完成,外部服務(wù)可以是操作系統(tǒng)或網(wǎng)絡(luò)服務(wù)。當(dāng)用戶試圖建立與數(shù)據(jù)庫的連接時,數(shù)據(jù)庫或網(wǎng)絡(luò)服務(wù)。當(dāng)用戶試圖建立與數(shù)據(jù)庫的連接時,數(shù)據(jù)庫不會要求用戶輸入用戶名和口令,而從外部服務(wù)中獲取當(dāng)不會要求用戶輸入用戶名和口令

11、,而從外部服務(wù)中獲取當(dāng)前用戶的登錄信息。這種方式比較適合在局域網(wǎng)環(huán)境下,前用戶的登錄信息。這種方式比較適合在局域網(wǎng)環(huán)境下,連接簡單,不需要提供用戶名和口令,但是需要在創(chuàng)建用連接簡單,不需要提供用戶名和口令,但是需要在創(chuàng)建用戶時做一些相應(yīng)的配置。戶時做一些相應(yīng)的配置。第第9頁頁第第10頁頁u全局身份認(rèn)證:當(dāng)用戶試圖建立與數(shù)據(jù)庫的連接時,全局身份認(rèn)證:當(dāng)用戶試圖建立與數(shù)據(jù)庫的連接時,Oracle使用網(wǎng)絡(luò)中的安全管理服務(wù)器(使用網(wǎng)絡(luò)中的安全管理服務(wù)器(Oracle Enterprise Security Manager)對用戶進(jìn)行身份認(rèn)證。和外部身份認(rèn)證相同,用)對用戶進(jìn)行身份認(rèn)證。和外部身份認(rèn)證相

12、同,用戶賬戶由數(shù)據(jù)庫管理,但戶賬戶由數(shù)據(jù)庫管理,但Oracle不保存口令,當(dāng)用戶登錄時,不保存口令,當(dāng)用戶登錄時,需要通過網(wǎng)絡(luò)服務(wù)驗證。需要通過網(wǎng)絡(luò)服務(wù)驗證。Oracle的安全管理服務(wù)器可以提供的安全管理服務(wù)器可以提供全局范圍內(nèi)管理數(shù)據(jù)庫用戶的功能。全局范圍內(nèi)管理數(shù)據(jù)庫用戶的功能。(2)表空間配額)表空間配額表空間配額限制用戶在永久表空間中可用的存儲空間大小,表空間配額限制用戶在永久表空間中可用的存儲空間大小,默認(rèn)情況下,新用戶在任何表空間中都沒有任何配額。用戶默認(rèn)情況下,新用戶在任何表空間中都沒有任何配額。用戶在臨時表空間中不需要配額。在臨時表空間中不需要配額。 (3)默認(rèn)表空間)默認(rèn)表空間

13、用戶在創(chuàng)建數(shù)據(jù)庫對象時,如果沒有顯示指明該對象在哪用戶在創(chuàng)建數(shù)據(jù)庫對象時,如果沒有顯示指明該對象在哪個空間,那么系統(tǒng)會將該對象自動存儲在用戶的默認(rèn)表空間個空間,那么系統(tǒng)會將該對象自動存儲在用戶的默認(rèn)表空間中,即中,即SYSTEM表空間。一般不建議將用戶的對象建立在表空間。一般不建議將用戶的對象建立在SYSTEM表空間中,所以默認(rèn)表空間應(yīng)指定。表空間中,所以默認(rèn)表空間應(yīng)指定。第第11頁頁 (4) 臨時表空間臨時表空間 如果用戶執(zhí)行一些操作例如排序、匯總和表間連接等,如果用戶執(zhí)行一些操作例如排序、匯總和表間連接等,系統(tǒng)會首先使用內(nèi)存中的排序區(qū)系統(tǒng)會首先使用內(nèi)存中的排序區(qū)SORT_AREA_SIZE

14、,如果,如果這塊排序區(qū)大小不夠,則將使用用戶的臨時表空間。一般使這塊排序區(qū)大小不夠,則將使用用戶的臨時表空間。一般使用系統(tǒng)默認(rèn)臨時表空間用系統(tǒng)默認(rèn)臨時表空間TEMP作為用戶的默認(rèn)臨時表空間。作為用戶的默認(rèn)臨時表空間。 (5)賬戶狀態(tài))賬戶狀態(tài) 在創(chuàng)建用戶時,可以設(shè)定用戶的初始狀態(tài),包括用戶在創(chuàng)建用戶時,可以設(shè)定用戶的初始狀態(tài),包括用戶口令是否過期、用戶賬戶是否鎖定等。已鎖定的用戶不能訪口令是否過期、用戶賬戶是否鎖定等。已鎖定的用戶不能訪問數(shù)據(jù)庫,必須由管理員進(jìn)行解鎖后才允許訪問。數(shù)據(jù)庫管問數(shù)據(jù)庫,必須由管理員進(jìn)行解鎖后才允許訪問。數(shù)據(jù)庫管理員可以隨時鎖定賬戶或解除鎖定。理員可以隨時鎖定賬戶或解

15、除鎖定。 (6)資源配置)資源配置 每個用戶都有一個資源配置,如果創(chuàng)建用戶時沒有指每個用戶都有一個資源配置,如果創(chuàng)建用戶時沒有指定,定,Oracle會為用戶指定默認(rèn)的資源配置。資源配置的作用會為用戶指定默認(rèn)的資源配置。資源配置的作用是對數(shù)據(jù)庫系統(tǒng)資源的使用加以限制,這些資源包括:口令是對數(shù)據(jù)庫系統(tǒng)資源的使用加以限制,這些資源包括:口令是否過期,口令輸入錯誤幾次后鎖定該用戶,是否過期,口令輸入錯誤幾次后鎖定該用戶,CPU時間,輸時間,輸入入/輸出(輸出(I/O)以及用戶打開的會話數(shù)目等。)以及用戶打開的會話數(shù)目等。第第12頁頁13.2.3 創(chuàng)建用戶創(chuàng)建用戶創(chuàng)建數(shù)據(jù)庫用戶的語法如下:創(chuàng)建數(shù)據(jù)庫用戶

16、的語法如下:CREATE USER userIDENTIFIED BY passwore | EXTERNALLYDEFAULT TABLESPACE tablespace TEMPORARY TABLESPACE tablespaceQUOTA integer K | M | UNLIMITED ON tablespaceQUOTA integer K | M | UNLIMITED ON tablespacePASSWORD EXPIREACCOUNT LOCK | UNLOCKPROFILE profile | DEFAULT參數(shù)說明:參數(shù)說明:user:要創(chuàng)建的用戶名;:要創(chuàng)建的用戶名

17、;BY password:用戶通過數(shù)據(jù)庫驗證方式登錄,登錄時:用戶通過數(shù)據(jù)庫驗證方式登錄,登錄時需要提供的口令;需要提供的口令;EXTERNALLY:用戶需要通過操作系統(tǒng)驗證;:用戶需要通過操作系統(tǒng)驗證;DEFAULT或或TEMPORARY TABLESPACE:為用戶指定:為用戶指定默認(rèn)或臨時表空間;默認(rèn)或臨時表空間;QUOTA:定義在表空間中允許用戶使用的最大空間,可:定義在表空間中允許用戶使用的最大空間,可將限額定義為整數(shù)字節(jié)或千字節(jié)將限額定義為整數(shù)字節(jié)或千字節(jié)/兆字節(jié)。其中關(guān)鍵字兆字節(jié)。其中關(guān)鍵字UNLIMITED用戶指定用戶可以使用表空間中全部可用空用戶指定用戶可以使用表空間中全部可

18、用空間;間;PASSWORD EXPIRE:強(qiáng)制用戶在使用:強(qiáng)制用戶在使用SQL*Plus登錄登錄到數(shù)據(jù)庫時重置口令(該選項僅在用戶通過數(shù)據(jù)庫進(jìn)行驗到數(shù)據(jù)庫時重置口令(該選項僅在用戶通過數(shù)據(jù)庫進(jìn)行驗證時有效);證時有效);ACCOUNT LOCK | UNLOCK:可用于顯示鎖定或解除鎖:可用于顯示鎖定或解除鎖定用戶賬戶(定用戶賬戶(UNLOCK為缺省設(shè)置);為缺省設(shè)置);PROFILE:指定用戶的資源配置。:指定用戶的資源配置。第第13頁頁第第14頁頁【例例13-1】創(chuàng)建用戶創(chuàng)建用戶rose,口令為,口令為zzuli,默認(rèn)表空間為,默認(rèn)表空間為USERS,在該表空間的配額為,在該表空間的配額

19、為50MB??诹钤O(shè)置為過期狀態(tài),??诹钤O(shè)置為過期狀態(tài),即首次連接數(shù)據(jù)庫時需要修改口令。即首次連接數(shù)據(jù)庫時需要修改口令。(如果在如果在SQL Plus中創(chuàng)中創(chuàng)建用戶成功,最后會顯示個建用戶成功,最后會顯示個 用戶已創(chuàng)建。用戶已創(chuàng)建。 之類的,最好寫之類的,最好寫在例題下面,表示這是運行成功的代碼,你實驗一下,看看在例題下面,表示這是運行成功的代碼,你實驗一下,看看創(chuàng)建完結(jié)果是什么,寫到下面。后面的例題都是這樣的吧創(chuàng)建完結(jié)果是什么,寫到下面。后面的例題都是這樣的吧)SQLCREATE USER rose IDENTIFIED BY zzuli2 DEFAULT TABLESPACE USERS3

20、QUOTA 50M ON USERS4 PASSWORD EXPIRE;用戶已創(chuàng)建。用戶已創(chuàng)建。13.2.4 修改用戶修改用戶第第15頁頁 用戶創(chuàng)建后,可以更改用戶的屬性,如口令、默認(rèn)表空間、用戶創(chuàng)建后,可以更改用戶的屬性,如口令、默認(rèn)表空間、臨時表空間、表空間配額、概要文件和用戶狀態(tài)等。但不允許臨時表空間、表空間配額、概要文件和用戶狀態(tài)等。但不允許修改用戶的名稱,除非將其刪除。修改用戶的名稱,除非將其刪除。修改數(shù)據(jù)庫用戶使用修改數(shù)據(jù)庫用戶使用ALTER USER語句來實現(xiàn),語句來實現(xiàn),ALTER USER語句的語法格式為:語句的語法格式為:ALTER USER user_name IDENT

21、IFIEDBY PASSWORD | EXTERNALLY | GOLBALLY AS external_nameDEFAULT TABLESPACE tablespace_nameTEMPORARY TABLESPACE temp_tempspace_nameQUOTA n K | M | UNLIMITED ON tablespace_namePROFILE profile_nameDEFAULT ROLE role_list | ALL EXCEPT role_list | NONEPASSWORD EXPIREACCOUNT LOCK | UNLOCK;第第16頁頁對其中的參數(shù)說明如下

22、。對其中的參數(shù)說明如下。l role_list:角色列表:角色列表l ALL:表示所有角色:表示所有角色l EXCEPT role_list:表示除了:表示除了role_list列表中角色以外的列表中角色以外的其他角色。其他角色。l NONE:表示沒有默認(rèn)角色。:表示沒有默認(rèn)角色。 【例【例13-2】 修改用戶修改用戶atea的默認(rèn)表空間為的默認(rèn)表空間為USERS,在,在該表空間的配額為該表空間的配額為100MB,在,在USERS表空間的配額為表空間的配額為30MB。命令如下:。命令如下:SQLALTER USER atea2 DEFAULT TABLESPACE USERS3 QUOTA 3

23、0M ON USERS;13.2.5 刪除用戶刪除用戶 當(dāng)一個用戶不再使用時,可以將其刪除。刪除用戶的語法:當(dāng)一個用戶不再使用時,可以將其刪除。刪除用戶的語法:DROP USER user_name CASCADE執(zhí)行該語句的用戶必須具有執(zhí)行該語句的用戶必須具有DROP USER的系統(tǒng)權(quán)限。刪除的系統(tǒng)權(quán)限。刪除用戶時需要注意如下幾點:用戶時需要注意如下幾點:(1)如果用戶方案中包括任何對象,在刪除用戶時,必須)如果用戶方案中包括任何對象,在刪除用戶時,必須加上加上CASCADE短語,短語,Oracle數(shù)據(jù)庫會先刪除該用戶的所數(shù)據(jù)庫會先刪除該用戶的所有對象,然后再刪除該用戶。有對象,然后再刪除該

24、用戶。(2)如果用戶當(dāng)前正與)如果用戶當(dāng)前正與Oracle服務(wù)器連接,則不能刪除。服務(wù)器連接,則不能刪除?!纠纠?3-3】刪除用戶】刪除用戶atea。SQLDROP USER atea; -如果如果atea用戶的方案用戶的方案中沒有對象中沒有對象 SQLDROP USER atea CASCADE; -如果如果atea用戶用戶的方案中有對象的方案中有對象第第17頁頁13.2.6 查詢用戶信息查詢用戶信息 如果要獲取用戶信息,可以通過查詢數(shù)據(jù)字典視圖或如果要獲取用戶信息,可以通過查詢數(shù)據(jù)字典視圖或動態(tài)性能視圖來實現(xiàn)。動態(tài)性能視圖來實現(xiàn)。 ALL_USERS:包含數(shù)據(jù)庫所有用戶的用戶名、用戶:包

25、含數(shù)據(jù)庫所有用戶的用戶名、用戶ID和用和用戶創(chuàng)建時間。戶創(chuàng)建時間。 DBA_USERS:包含數(shù)據(jù)庫所有用戶的詳細(xì)信息。:包含數(shù)據(jù)庫所有用戶的詳細(xì)信息。 USER_USERS:包含當(dāng)前用戶的詳細(xì)信息。:包含當(dāng)前用戶的詳細(xì)信息。 DBA_TS_QUOTAS:包含所有用戶的表空間配額信息。:包含所有用戶的表空間配額信息。 USER_TS_QUOTAS:包含當(dāng)前用戶的表空間配額信息。:包含當(dāng)前用戶的表空間配額信息。 V$SESSION:包含用戶會話信息。:包含用戶會話信息。 V$OPEN_CURSOR:包含用戶執(zhí)行的:包含用戶執(zhí)行的SQL語句信息。語句信息。 【例【例13-4】查找所有用戶的默認(rèn)表空間

26、。(查找的結(jié)果】查找所有用戶的默認(rèn)表空間。(查找的結(jié)果應(yīng)該截圖,顯示在下面)應(yīng)該截圖,顯示在下面)SQLSELECT user_name, default_tablespace 2 FROM dba_users;第第18頁頁第第19頁頁主要內(nèi)容主要內(nèi)容13.1 概述概述13.2 用戶管理用戶管理13.3 權(quán)限管理權(quán)限管理13.4 角色管理角色管理13.5 數(shù)據(jù)庫審計數(shù)據(jù)庫審計13.6 小結(jié)小結(jié)13.7 習(xí)題習(xí)題 在用戶創(chuàng)建完成后,僅僅表示該用戶在在用戶創(chuàng)建完成后,僅僅表示該用戶在Oracle系統(tǒng)中進(jìn)系統(tǒng)中進(jìn)行了注冊而已,這樣的用戶既不能連接到數(shù)據(jù)庫,更談不上行了注冊而已,這樣的用戶既不能連接到

27、數(shù)據(jù)庫,更談不上進(jìn)行查詢、建表等操作。要使該用戶能夠連接到進(jìn)行查詢、建表等操作。要使該用戶能夠連接到Oracle系統(tǒng)系統(tǒng)并能使用并能使用Oracle的資源,如查詢表的數(shù)據(jù),創(chuàng)建自己的表結(jié)的資源,如查詢表的數(shù)據(jù),創(chuàng)建自己的表結(jié)構(gòu)等,必須由具有構(gòu)等,必須由具有DBA角色的用戶對該用戶進(jìn)行授權(quán)。角色的用戶對該用戶進(jìn)行授權(quán)。第第20頁頁13.3.1 權(quán)限概述權(quán)限概述 權(quán)限是指執(zhí)行特定類型的權(quán)限是指執(zhí)行特定類型的SQL語句或訪問另一個用戶的對語句或訪問另一個用戶的對象的權(quán)利,例如:連接到數(shù)據(jù)庫,創(chuàng)建表,查詢其他用戶的象的權(quán)利,例如:連接到數(shù)據(jù)庫,創(chuàng)建表,查詢其他用戶的表,調(diào)用其他用戶的存儲過程等。表,調(diào)

28、用其他用戶的存儲過程等。Oracle數(shù)據(jù)庫使用權(quán)限來控數(shù)據(jù)庫使用權(quán)限來控制用戶對數(shù)據(jù)的訪問和用戶所能執(zhí)行的操作。用戶在數(shù)據(jù)庫制用戶對數(shù)據(jù)的訪問和用戶所能執(zhí)行的操作。用戶在數(shù)據(jù)庫中可以執(zhí)行什么樣的操作,以及可以對哪些對象進(jìn)行操作,中可以執(zhí)行什么樣的操作,以及可以對哪些對象進(jìn)行操作,完全取決于該用戶所擁有的權(quán)限。完全取決于該用戶所擁有的權(quán)限。 根據(jù)系統(tǒng)管理方式的不同,在根據(jù)系統(tǒng)管理方式的不同,在Oracle數(shù)據(jù)庫中將權(quán)限分為數(shù)據(jù)庫中將權(quán)限分為兩大類,系統(tǒng)權(quán)限和對象權(quán)限。兩大類,系統(tǒng)權(quán)限和對象權(quán)限。 系統(tǒng)權(quán)限指數(shù)據(jù)庫級別執(zhí)行某些操作的權(quán)限,即用戶執(zhí)行系統(tǒng)權(quán)限指數(shù)據(jù)庫級別執(zhí)行某些操作的權(quán)限,即用戶執(zhí)行

29、某一特定的數(shù)據(jù)庫操作或某類數(shù)據(jù)庫操作等的權(quán)限,例如創(chuàng)某一特定的數(shù)據(jù)庫操作或某類數(shù)據(jù)庫操作等的權(quán)限,例如創(chuàng)建表空間,創(chuàng)建會話等。建表空間,創(chuàng)建會話等。第第21頁頁第第22頁頁 對象權(quán)限是指對數(shù)據(jù)庫中的特定對象(例如表、視圖、對象權(quán)限是指對數(shù)據(jù)庫中的特定對象(例如表、視圖、序列、過程、函數(shù)或程序包)的訪問控制,以及用戶可以序列、過程、函數(shù)或程序包)的訪問控制,以及用戶可以在這些數(shù)據(jù)庫對象上執(zhí)行哪些操作。例如插入表記錄,增在這些數(shù)據(jù)庫對象上執(zhí)行哪些操作。例如插入表記錄,增加約束條件等。加約束條件等。 無論系統(tǒng)權(quán)限還是對象權(quán)限,在無論系統(tǒng)權(quán)限還是對象權(quán)限,在Oracle數(shù)據(jù)庫中,數(shù)據(jù)庫中,將權(quán)限授予用

30、戶的方式有直接授權(quán)和間接授權(quán)兩種。所謂將權(quán)限授予用戶的方式有直接授權(quán)和間接授權(quán)兩種。所謂直接授權(quán)就是利用直接授權(quán)就是利用GRANT命令直接為用戶授權(quán),間接授命令直接為用戶授權(quán),間接授權(quán)就是先將權(quán)限授予角色,再將角色授予用戶。另外,已權(quán)就是先將權(quán)限授予角色,再將角色授予用戶。另外,已經(jīng)獲得某種權(quán)限的用戶可以將他們的權(quán)限或其中一部分權(quán)經(jīng)獲得某種權(quán)限的用戶可以將他們的權(quán)限或其中一部分權(quán)限再授予其他用戶。限再授予其他用戶。13.3.2 系統(tǒng)權(quán)限管理系統(tǒng)權(quán)限管理第第23頁頁 在在Orcale 11g 中含有中含有200多種系統(tǒng)權(quán)限,每種系統(tǒng)權(quán)多種系統(tǒng)權(quán)限,每種系統(tǒng)權(quán)限都為用戶提供了執(zhí)行某一種或某一類數(shù)據(jù)

31、庫操作的能力,限都為用戶提供了執(zhí)行某一種或某一類數(shù)據(jù)庫操作的能力,可以將系統(tǒng)權(quán)限授予用戶和角色。由于系統(tǒng)權(quán)限可能影響可以將系統(tǒng)權(quán)限授予用戶和角色。由于系統(tǒng)權(quán)限可能影響到整個數(shù)據(jù)庫,所有授予系統(tǒng)權(quán)限給用戶時需要慎重。到整個數(shù)據(jù)庫,所有授予系統(tǒng)權(quán)限給用戶時需要慎重。1授予系統(tǒng)權(quán)限授予系統(tǒng)權(quán)限 系統(tǒng)管理員給用戶授權(quán)時,應(yīng)該考慮到不同用戶的系統(tǒng)管理員給用戶授權(quán)時,應(yīng)該考慮到不同用戶的身份。例如數(shù)據(jù)庫管理員用戶應(yīng)該具有創(chuàng)建用戶、修改用身份。例如數(shù)據(jù)庫管理員用戶應(yīng)該具有創(chuàng)建用戶、修改用戶權(quán)限、創(chuàng)建表空間以及可以對數(shù)據(jù)庫任何模式中的對象戶權(quán)限、創(chuàng)建表空間以及可以對數(shù)據(jù)庫任何模式中的對象進(jìn)行管理的權(quán)限,而數(shù)據(jù)

32、庫開發(fā)人員應(yīng)該具有在自己的方進(jìn)行管理的權(quán)限,而數(shù)據(jù)庫開發(fā)人員應(yīng)該具有在自己的方案中創(chuàng)建表、視圖、過程等的權(quán)限。另外一些普通用戶應(yīng)案中創(chuàng)建表、視圖、過程等的權(quán)限。另外一些普通用戶應(yīng)該只賦予該只賦予CREATE SESSION的權(quán)限。的權(quán)限。第第24頁頁授予系統(tǒng)權(quán)限的語法:授予系統(tǒng)權(quán)限的語法:GRANT system_privilege | role,system_privilege | roleTO user | role | PUBLIC, user | role | PUBLIC WITH ADMIN OPTION參數(shù)說明:參數(shù)說明:l system_privilege:要授予的系統(tǒng)權(quán)限:要

33、授予的系統(tǒng)權(quán)限l user:被授予權(quán)限的用戶:被授予權(quán)限的用戶l role:被授予的角色名:被授予的角色名l PUBLIC:將系統(tǒng)權(quán)限授予所有用戶:將系統(tǒng)權(quán)限授予所有用戶l WITH ADMIN OPTION:允許被授予者進(jìn)一步為其他:允許被授予者進(jìn)一步為其他用戶或角色授予權(quán)限或角色。當(dāng)授權(quán)時帶有這個子句時,用戶或角色授予權(quán)限或角色。當(dāng)授權(quán)時帶有這個子句時,用戶才可以將獲得的系統(tǒng)權(quán)限再授予其他用戶,即系統(tǒng)權(quán)用戶才可以將獲得的系統(tǒng)權(quán)限再授予其他用戶,即系統(tǒng)權(quán)限的傳遞性。限的傳遞性。第第25頁頁【例【例13-5】數(shù)據(jù)庫管理員授予】數(shù)據(jù)庫管理員授予CREATE SESSION權(quán)限給用權(quán)限給用戶戶at

34、ea。SQLGRANT CREATE SESSION TO atea;2.系統(tǒng)權(quán)限收回系統(tǒng)權(quán)限收回 一般用戶被授予過高的權(quán)限可能會給一般用戶被授予過高的權(quán)限可能會給Oracle系統(tǒng)帶來系統(tǒng)帶來安全隱患。作為安全隱患。作為Oracle系統(tǒng)管理員,應(yīng)該會查詢當(dāng)前系統(tǒng)管理員,應(yīng)該會查詢當(dāng)前Oracle系統(tǒng)中各個用戶的權(quán)限,并且能夠使用系統(tǒng)中各個用戶的權(quán)限,并且能夠使用REVOKE命令撤銷用命令撤銷用戶的某些不必要的系統(tǒng)權(quán)限。戶的某些不必要的系統(tǒng)權(quán)限??梢允褂每梢允褂肦EVOKE語句撤銷系統(tǒng)權(quán)限。語句撤銷系統(tǒng)權(quán)限。REVOKE system_privilege | role ,system_privi

35、lege | roleFROM user | role | PUBLIC, user | role | PUBLIC REVOKE語句中的參數(shù)和語句中的參數(shù)和GRANT語句中相同。語句中相同。第第26頁頁 【例【例13-6】收回用戶】收回用戶atea的的CREATE SESSION權(quán)限權(quán)限SQLREVOKE CREATE SESSION FROM atea; 需要說明的是,如果數(shù)據(jù)庫管理員使用了需要說明的是,如果數(shù)據(jù)庫管理員使用了GRANT語句給用戶語句給用戶A授予系統(tǒng)權(quán)限時帶有授予系統(tǒng)權(quán)限時帶有WITH ADMIN OPTION選項,則該用戶選項,則該用戶A有權(quán)將系統(tǒng)權(quán)限再次授予其他有權(quán)將系

36、統(tǒng)權(quán)限再次授予其他的用戶的用戶B。在這種情況下,如果數(shù)據(jù)庫管理員使用。在這種情況下,如果數(shù)據(jù)庫管理員使用REVOKE命令撤銷命令撤銷A用戶的系統(tǒng)權(quán)限時,用戶用戶的系統(tǒng)權(quán)限時,用戶B的系統(tǒng)授的系統(tǒng)授權(quán)仍然有效。權(quán)仍然有效。13.3.3 對象權(quán)限管理對象權(quán)限管理 對象權(quán)限是一種對于特定對象(表、視圖、序列、過對象權(quán)限是一種對于特定對象(表、視圖、序列、過程、函數(shù)或程序包等)執(zhí)行特定操作的一種權(quán)限。數(shù)據(jù)庫程、函數(shù)或程序包等)執(zhí)行特定操作的一種權(quán)限。數(shù)據(jù)庫用戶擁有對自己的對象的所有對象權(quán)限,所以對象權(quán)限的用戶擁有對自己的對象的所有對象權(quán)限,所以對象權(quán)限的管理實際上即是對象所有者對其他用戶操作該對象的權(quán)

37、限管理實際上即是對象所有者對其他用戶操作該對象的權(quán)限管理。管理。第第27頁頁1. 授予對象權(quán)限授予對象權(quán)限授予對象權(quán)限的語法:授予對象權(quán)限的語法:GRANT object_privilege (column_list),object_privilege (column_list)| ALL PRIVILEGESON schema. objectTO user | role | PUBLIC , user | role | PUBLIC WITH GRANT OPTION其中參數(shù)說明如下:其中參數(shù)說明如下:l object_privilege:表示要授予的對象權(quán)限;:表示要授予的對象權(quán)限;l c

38、olumn_list:指定表或視圖列;:指定表或視圖列;l ALL:將所有權(quán)限授予那些已被授予:將所有權(quán)限授予那些已被授予WITH GRANT OPTION的對象;的對象;l ON object:object表示將要被授予權(quán)限的目標(biāo)對象;表示將要被授予權(quán)限的目標(biāo)對象;l Role:角色名;:角色名;l User:被授予的用戶名;:被授予的用戶名;l WITH GRANT OPTION:表示被授予者可再將對象權(quán)限:表示被授予者可再將對象權(quán)限授予其他用戶。授予其他用戶。第第28頁頁【例【例13-7】 將將SELECT、INSERT、DELETE授權(quán)給授權(quán)給atea用戶。用戶。SQLGRANT SE

39、LECT, INSERT,DELETE ON emp TO atea;2. 對象權(quán)限回收對象權(quán)限回收 要從用戶或者角色中撤銷對象權(quán)限,仍然要使用要從用戶或者角色中撤銷對象權(quán)限,仍然要使用REVOKE命令來完成。要撤銷對象權(quán)限,撤銷者必須是將命令來完成。要撤銷對象權(quán)限,撤銷者必須是將被撤銷的對象權(quán)限的原始授予者。撤銷對象權(quán)限的語法:被撤銷的對象權(quán)限的原始授予者。撤銷對象權(quán)限的語法:REVOKE object_privilege, object_privilege| ALL PRIVILEGESON schema. objectFROM user | role | PUBLIC, user | r

40、ole | PUBLIC CASCADE CONSTRAINTS第第29頁頁其中參數(shù)說明如下:其中參數(shù)說明如下:l object_privilege:指定將撤銷的對象權(quán)限;:指定將撤銷的對象權(quán)限;l ALL:撤銷已授予用戶的所有對象權(quán)限;:撤銷已授予用戶的所有對象權(quán)限;l ON:標(biāo)識將撤銷其對象權(quán)限的對象;:標(biāo)識將撤銷其對象權(quán)限的對象;l FROM:標(biāo)識將撤銷其對象權(quán)限的用戶或角色;:標(biāo)識將撤銷其對象權(quán)限的用戶或角色;l CASCADE CONSTRAINTS:刪除撤銷使用:刪除撤銷使用REFERENCES或或ALL權(quán)限定義的任何引用完整性約束限制;權(quán)限定義的任何引用完整性約束限制; 【例【例

41、13-8】從】從atea用戶撤銷用戶撤銷emp對象的所有權(quán)限。對象的所有權(quán)限。SQLREVOKE ALL ON emp FROM atea; 需要注意的是,如果數(shù)據(jù)庫管理員使用需要注意的是,如果數(shù)據(jù)庫管理員使用GRANT命令給命令給用戶用戶A授予對象權(quán)限時帶有授予對象權(quán)限時帶有WITH ADMIN OPTION選項,則選項,則該用戶該用戶A有權(quán)將權(quán)限再次授予其他的用戶有權(quán)將權(quán)限再次授予其他的用戶B。在這種情況下,。在這種情況下,如果數(shù)據(jù)庫管理員使用如果數(shù)據(jù)庫管理員使用REVOKE命令撤銷命令撤銷A用戶的對象權(quán)限用戶的對象權(quán)限時,用戶時,用戶B的對象權(quán)限也被撤銷。需要注意,在進(jìn)行系統(tǒng)權(quán)限的對象權(quán)

42、限也被撤銷。需要注意,在進(jìn)行系統(tǒng)權(quán)限回收和進(jìn)行對象權(quán)限回收時,效果是不一樣的?;厥蘸瓦M(jìn)行對象權(quán)限回收時,效果是不一樣的。13.3.4 權(quán)限查詢權(quán)限查詢第第30頁頁 用戶被授予的系統(tǒng)權(quán)限或者對象權(quán)限都被記錄在用戶被授予的系統(tǒng)權(quán)限或者對象權(quán)限都被記錄在Oracle的數(shù)據(jù)字典中,了解某個用戶被授予哪些系統(tǒng)權(quán)限和對象權(quán)的數(shù)據(jù)字典中,了解某個用戶被授予哪些系統(tǒng)權(quán)限和對象權(quán)限是確保應(yīng)用系統(tǒng)安全的重要工作。如表限是確保應(yīng)用系統(tǒng)安全的重要工作。如表13-1所示為所示為Oracle11g用于存放用戶、系統(tǒng)權(quán)限和對象權(quán)限有關(guān)的數(shù)據(jù)字用于存放用戶、系統(tǒng)權(quán)限和對象權(quán)限有關(guān)的數(shù)據(jù)字典。典。【例例13-9】查詢所有的對象

43、權(quán)限。(查找的結(jié)果應(yīng)該截圖查詢所有的對象權(quán)限。(查找的結(jié)果應(yīng)該截圖粘貼在下面)粘貼在下面)SQLSELECT * FROM dba_tab_privs;第第31頁頁主要內(nèi)容主要內(nèi)容13.1 概述概述13.2 用戶管理用戶管理13.3 權(quán)限管理權(quán)限管理13.4 角色管理角色管理13.5數(shù)據(jù)庫審計數(shù)據(jù)庫審計13.6小結(jié)小結(jié)13.7習(xí)題習(xí)題13.4 角色管理角色管理第第32頁頁 Oracle 中的權(quán)限分類很多,設(shè)置十分復(fù)雜,就系統(tǒng)權(quán)限中的權(quán)限分類很多,設(shè)置十分復(fù)雜,就系統(tǒng)權(quán)限而言,在而言,在Oracle11g中就超過了中就超過了200種,為數(shù)據(jù)庫管理員正確有種,為數(shù)據(jù)庫管理員正確有效地管理數(shù)據(jù)庫權(quán)限

44、帶來了困難,而角色就是簡化權(quán)限管理效地管理數(shù)據(jù)庫權(quán)限帶來了困難,而角色就是簡化權(quán)限管理的一種數(shù)據(jù)庫對象。的一種數(shù)據(jù)庫對象。13.4.1 角色概述角色概述 角色是權(quán)限管理的一種工具,是一系列權(quán)限的集合,角色角色是權(quán)限管理的一種工具,是一系列權(quán)限的集合,角色可以被授予任何用戶,也可以從用戶中收回??梢员皇谟枞魏斡脩?,也可以從用戶中收回。使用角色可以簡化權(quán)限的管理,可以僅用一條語句就能從用使用角色可以簡化權(quán)限的管理,可以僅用一條語句就能從用戶那里授予或者回收許多權(quán)限,而不必對用戶一一授權(quán)。使用戶那里授予或者回收許多權(quán)限,而不必對用戶一一授權(quán)。使用角色還可以實現(xiàn)權(quán)限的動態(tài)管理,比如隨著應(yīng)用的變化可以增

45、角色還可以實現(xiàn)權(quán)限的動態(tài)管理,比如隨著應(yīng)用的變化可以增加或者減少角色的權(quán)限,這樣通過改變角色權(quán)限,就改變了多加或者減少角色的權(quán)限,這樣通過改變角色權(quán)限,就改變了多個用戶的權(quán)限。個用戶的權(quán)限。第第33頁頁 角色、用戶及權(quán)限是一組有密切關(guān)系的對象,既然角角色、用戶及權(quán)限是一組有密切關(guān)系的對象,既然角色是一組權(quán)限的集合,那么他被授予某個用戶時才能有意色是一組權(quán)限的集合,那么他被授予某個用戶時才能有意義,可以如圖義,可以如圖13-1所示幫助我們理解角色、用戶及權(quán)限的所示幫助我們理解角色、用戶及權(quán)限的關(guān)系。關(guān)系。圖圖13-1 用戶、角色和權(quán)限的關(guān)系用戶、角色和權(quán)限的關(guān)系第第34頁頁 在復(fù)雜的大型應(yīng)用系統(tǒng)

46、,要求對應(yīng)用系統(tǒng)功能進(jìn)行分類,在復(fù)雜的大型應(yīng)用系統(tǒng),要求對應(yīng)用系統(tǒng)功能進(jìn)行分類,從而形成角色的雛形,再使用從而形成角色的雛形,再使用CREATE ROLE語句將它們創(chuàng)語句將它們創(chuàng)建為角色;最后根據(jù)用戶工作的分工,將不同的角色(包括建為角色;最后根據(jù)用戶工作的分工,將不同的角色(包括系統(tǒng)預(yù)定義的角色)授予各類用戶。如果應(yīng)用系統(tǒng)的規(guī)模很系統(tǒng)預(yù)定義的角色)授予各類用戶。如果應(yīng)用系統(tǒng)的規(guī)模很小,用戶數(shù)也不多,則可以直接將應(yīng)用的權(quán)限授予用戶,即小,用戶數(shù)也不多,則可以直接將應(yīng)用的權(quán)限授予用戶,即使是這樣,用戶也必須對使是這樣,用戶也必須對Oracle系統(tǒng)的預(yù)定義角色有所了解。系統(tǒng)的預(yù)定義角色有所了解。

47、角色所對應(yīng)的權(quán)限集合中可以包含系統(tǒng)權(quán)限和對象權(quán)角色所對應(yīng)的權(quán)限集合中可以包含系統(tǒng)權(quán)限和對象權(quán)限。角色是可以授予另外一個角色的,需要避免將角色授予限。角色是可以授予另外一個角色的,需要避免將角色授予它本身,也不能循環(huán)授予。它本身,也不能循環(huán)授予。13.4.2 創(chuàng)建角色創(chuàng)建角色 如果系統(tǒng)預(yù)定義的角色不符合用戶的需要,數(shù)據(jù)庫管如果系統(tǒng)預(yù)定義的角色不符合用戶的需要,數(shù)據(jù)庫管理員還可以創(chuàng)建更多的角色。創(chuàng)建用戶自定義角色使用理員還可以創(chuàng)建更多的角色。創(chuàng)建用戶自定義角色使用CREATE ROLE語句來實現(xiàn)。語句來實現(xiàn)。第第35頁頁創(chuàng)建角色語句的語法格式如下:創(chuàng)建角色語句的語法格式如下:CREATE ROLE

48、 role_name NOT IDENTIFIED IDENTIFIED BY password;對其中的參數(shù)說明如下:對其中的參數(shù)說明如下:l role_name:用于指定自定義角色名稱,該名稱不能與任:用于指定自定義角色名稱,該名稱不能與任何用戶名或其他角色相同。何用戶名或其他角色相同。l NOT IDENTIFIED:用戶指定該角色由數(shù)據(jù)庫授權(quán),使:用戶指定該角色由數(shù)據(jù)庫授權(quán),使該角色生效時不需要口令。該角色生效時不需要口令。l IDENTIFIED BY password:用于設(shè)置角色生效時的認(rèn):用于設(shè)置角色生效時的認(rèn)證口令。證口令。【例例13-10】創(chuàng)建不驗證的角色創(chuàng)建不驗證的角色d

49、octor_clerkSQLCREATE ROLE doctor_clerk;【例例13-11】創(chuàng)建使用口令驗證的角色創(chuàng)建使用口令驗證的角色SQLCREATE ROLE unit_clerk IDENTIFIED BY caption;【例例13-12】 創(chuàng)建外部驗證的角色創(chuàng)建外部驗證的角色SQLCREATE ROLE unit_manager IDENTIFIED EXTERNALLY;第第36頁頁13.4.3 角色授權(quán)角色授權(quán) 當(dāng)角色被建立后,沒有任何權(quán)限,只有對其授予權(quán)限,當(dāng)角色被建立后,沒有任何權(quán)限,只有對其授予權(quán)限,才有使用的意義。因此,在創(chuàng)建角色后,通常還需要立即為才有使用的意義。

50、因此,在創(chuàng)建角色后,通常還需要立即為它授予權(quán)限??梢酝ㄟ^給用戶授權(quán)的它授予權(quán)限。可以通過給用戶授權(quán)的GRANT語句給角色授權(quán),語句給角色授權(quán),并將角色賦予相應(yīng)的數(shù)據(jù)庫用戶。并將角色賦予相應(yīng)的數(shù)據(jù)庫用戶。角色權(quán)限的授予與回收和用戶權(quán)限的授予與回收類似,語法角色權(quán)限的授予與回收和用戶權(quán)限的授予與回收類似,語法也與其相同。也與其相同。 【例【例13-13】為】為teller角色授予角色授予CREATE SESSION 和和CREATE DATABASE LINK權(quán)限權(quán)限 SQLGRANT CREATE SESSION, CREATE DATABASE LINK to teller;對角色授權(quán)后,就可

51、以將角色授予某個用戶。對角色授權(quán)后,就可以將角色授予某個用戶。 【例【例13-14】將】將teller角色授予用戶角色授予用戶wang SQLGRANT teller TO wang;第第37頁頁13.4.4 角色的生效角色的生效/失效失效 當(dāng)某角色生效時,屬于角色的用戶可以執(zhí)行該角色所具當(dāng)某角色生效時,屬于角色的用戶可以執(zhí)行該角色所具有的所有權(quán)限操作,而當(dāng)某角色失效時,擁有這個角色的用有的所有權(quán)限操作,而當(dāng)某角色失效時,擁有這個角色的用戶將不能執(zhí)行該角色的任何權(quán)限操作。因此,通過設(shè)置角色戶將不能執(zhí)行該角色的任何權(quán)限操作。因此,通過設(shè)置角色的生效或失效,可以動態(tài)改變用戶的權(quán)限。的生效或失效,可

52、以動態(tài)改變用戶的權(quán)限。設(shè)置角色生效或失效使用設(shè)置角色生效或失效使用SET ROLE語句,語法格式為:語句,語法格式為:SET ROLE role IDENTIFIED BY password, role IDENTIFIED BY password| ALL EXCEPT role , role| NONE第第38頁頁參數(shù)說明如下:參數(shù)說明如下:l role:是角色的名稱;:是角色的名稱;l IDENTIFIED BY password:提供角色生效時所需的口令;:提供角色生效時所需的口令;l ALL:除了:除了EXCEPT子句中列出的角色外,授予當(dāng)前用子句中列出的角色外,授予當(dāng)前用戶的全部角

53、色生效;戶的全部角色生效;l EXCEPT role:這些角色不生效;:這些角色不生效;l NONE:當(dāng)前會話的全部角色失效(只有直接授予用戶的:當(dāng)前會話的全部角色失效(只有直接授予用戶的權(quán)限是可用的)。權(quán)限是可用的)。 角色的生效針對的是會話,在下一個會話中,用戶的角色的生效針對的是會話,在下一個會話中,用戶的活動角色將默認(rèn)為默認(rèn)角色?;顒咏巧珜⒛J(rèn)為默認(rèn)角色。 如果角色設(shè)置了口令,則如果角色設(shè)置了口令,則SET ROLE命令中必須包含命令中必須包含口令才能使角色生效。分配給用戶的默認(rèn)角色不需要口令,口令才能使角色生效。分配給用戶的默認(rèn)角色不需要口令,這些角色同沒有口令的角色一樣在登錄時生效

54、。這些角色同沒有口令的角色一樣在登錄時生效。第第39頁頁【例【例13-15】在當(dāng)前會話中使角色】在當(dāng)前會話中使角色doctor_clerk生效。生效。SQLSET ROLE doctor_clerk; 【例【例13-16】在當(dāng)前會話中使除了】在當(dāng)前會話中使除了unit_manager之外的所之外的所有角色生效。有角色生效。SQLSET ROLE ALL EXCEPT unit_manager; 【例【例13-17】設(shè)置當(dāng)前用戶所有角色失效。】設(shè)置當(dāng)前用戶所有角色失效。SQLSET ROLE NONE;13.4.5 修改角色修改角色 修改角色時,只能修改角色生效或失效時的認(rèn)證方式,修改角色時,只

55、能修改角色生效或失效時的認(rèn)證方式,也就是說,是否必須經(jīng)過也就是說,是否必須經(jīng)過Oracle確認(rèn)才允許對角色進(jìn)行修改。確認(rèn)才允許對角色進(jìn)行修改。而且,當(dāng)前用戶的角色必須通過而且,當(dāng)前用戶的角色必須通過ADMIN選項進(jìn)行授予,或選項進(jìn)行授予,或者當(dāng)前用戶必須具有者當(dāng)前用戶必須具有ALTER ANY ROLE系統(tǒng)權(quán)限。系統(tǒng)權(quán)限。修改角色的語法:修改角色的語法:ALTER ROLE role NOT IDENTIFIED | IDENTIFIEDBY password | USING package | EXTERNALLY | GLOBALLY;第第40頁頁參數(shù)說明如下:參數(shù)說明如下: l role

56、:角色名稱;:角色名稱;l NOT IDENTIFIED:表明該角色生效時,不需要進(jìn)行驗:表明該角色生效時,不需要進(jìn)行驗證;證;l IDENTIFIED:表明該角色生效時,需要進(jìn)行驗證;:表明該角色生效時,需要進(jìn)行驗證;l BY password:提供角色生效時所使用的口令;:提供角色生效時所使用的口令;l EXTERNALLY:表明該角色生效之前,用戶必須由外:表明該角色生效之前,用戶必須由外部服務(wù)(例如操作系統(tǒng)或網(wǎng)絡(luò)服務(wù))授權(quán);部服務(wù)(例如操作系統(tǒng)或網(wǎng)絡(luò)服務(wù))授權(quán);l GLOBALLY:表明通過:表明通過SET ROLE語句使角色生效之語句使角色生效之前或登錄時,必須由企業(yè)目錄服務(wù)授權(quán)用戶使用該角色。前或登錄時,必須由企業(yè)目錄服務(wù)授權(quán)用戶使用該角色。第第41頁頁【例【例13-18】修改角色】修改角色unit_clerk由外部驗證。由外部驗證。 SQLALTER

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論