oracle上課材料第12章安全管理_第1頁
oracle上課材料第12章安全管理_第2頁
oracle上課材料第12章安全管理_第3頁
oracle上課材料第12章安全管理_第4頁
oracle上課材料第12章安全管理_第5頁
已閱讀5頁,還剩116頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第12章安全管理主要內(nèi)容Oracle數(shù)據(jù)庫安全性概述用戶管理權限管理角色管理概要文件管理審計利用OEM進行安全管理本章要求了解Oracle數(shù)據(jù)庫安全機制掌握用戶管理掌握權限管理掌握角色管理了解概要文件的作用及其應用了解審計及其應用12.1數(shù)據(jù)庫安全性概述數(shù)據(jù)庫的安全性主要包括兩個方面的含義:一方面是防止非法用戶對數(shù)據(jù)庫的訪問,未授權的用戶不能登錄數(shù)據(jù)庫;另一方面是每個數(shù)據(jù)庫用戶都有不同的操作權限,只能進行自己權限范圍內(nèi)的操作。Oracle數(shù)據(jù)安全控制機制用戶管理權限管理角色管理表空間設置和配額用戶資源限制數(shù)據(jù)庫審計Oracle數(shù)據(jù)庫的安全可以分為兩類:系統(tǒng)安全性系統(tǒng)安全性是指在系統(tǒng)級控制數(shù)據(jù)庫的存取和使用的機制,包括有效的用戶名與口令的組合、用戶是否被授權可連接數(shù)據(jù)庫、用戶創(chuàng)建數(shù)據(jù)庫對象時可以使用的磁盤空間大小、用戶的資源限制、是否啟動了數(shù)據(jù)庫審計功能,以及用戶可進行哪些系統(tǒng)操作等。數(shù)據(jù)安全性數(shù)據(jù)安全性是指在對象級控制數(shù)據(jù)庫的存取和使用機制,包括用戶可存取的模式對象和在該對象上允許進行的操作等。12.2用戶管理用戶管理概述創(chuàng)建用戶修改用戶刪除用戶查詢用戶信息(1)用戶管理概述Oracle數(shù)據(jù)庫初始用戶SYS:是數(shù)據(jù)庫中具有最高權限的數(shù)據(jù)庫管理員,可以啟動、修改和關閉數(shù)據(jù)庫,擁有數(shù)據(jù)字典;SYSTEM:是一個輔助的數(shù)據(jù)庫管理員,不能啟動和關閉數(shù)據(jù)庫,但可以進行其他一些管理工作,如創(chuàng)建用戶、刪除用戶等。SCOTT:是一個用于測試網(wǎng)絡連接的用戶,其口令為TIGER。PUBLIC:實質上是一個用戶組,數(shù)據(jù)庫中任何一個用戶都屬于該組成員。要為數(shù)據(jù)庫中每個用戶都授予某個權限,只需把權限授予PUBLIC就可以了。用戶屬性用戶身份認證方式默認表空間臨時表空間表空間配額概要文件賬戶狀態(tài)用戶身份認證方式數(shù)據(jù)庫身份認證:數(shù)據(jù)庫用戶口令以加密方式保存在數(shù)據(jù)庫內(nèi)部,當用戶連接數(shù)據(jù)庫時必須輸入用戶名和口令,通過數(shù)據(jù)庫認證后才可以登錄數(shù)據(jù)庫。外部身份認證:當使用外部身份認證時,用戶的賬戶由Oracle數(shù)據(jù)庫管理,但口令管理和身份驗證由外部服務完成。外部服務可以是操作系統(tǒng)或網(wǎng)絡服務。當用戶試圖建立與數(shù)據(jù)庫的連接時,數(shù)據(jù)庫不會要求用戶輸入用戶名和口令,而從外部服務中獲取當前用戶的登錄信息。全局身份認證::當用戶試圖建立與數(shù)據(jù)庫連接時,Oracle使用網(wǎng)絡中的安全管理服務器(OracleEnterpriseSecurityManager)對用戶進行身份認證。Oracle的安全管理服務器可以提供全局范圍內(nèi)管理數(shù)據(jù)庫用戶的功能。

默認表空間當用戶在創(chuàng)建數(shù)據(jù)庫對象時,如果沒有顯式地指明該對象在哪個表空間中存儲,系統(tǒng)會自動將該數(shù)據(jù)庫對象存儲在當前用戶的默認表空間中。如果沒有為用戶指定默認表空間,則系統(tǒng)將數(shù)據(jù)庫的默認表空間作為用戶的默認表空間。臨時表空間當用戶進行排序、匯總和執(zhí)行連接、分組等操作時,系統(tǒng)首先使用內(nèi)存中的排序區(qū)SORT_AREA_SIZE,如果該區(qū)域內(nèi)存不夠,則自動使用用戶的臨時表空間。在Oracle10g中,如果沒有為用戶指定臨時表空間,則系統(tǒng)將數(shù)據(jù)庫的默認臨時表空間作為用戶的臨時表空間。表空間配額表空間配額限制用戶在永久表空間中可以使用的存儲空間的大小,默認情況下,新建用戶在任何表空間中都沒有任何配額。用戶在臨時表空間中不需要配額。概要文件每個用戶都必須有一個概要文件,從會話級和調(diào)用級兩個層次限制用戶對數(shù)據(jù)庫系統(tǒng)資源的使用,同時設置用戶的口令管理策略。如果沒有為用戶指定概要文件,Oracle將為用戶自動指定DEFAULT概要文件。賬戶狀態(tài)在創(chuàng)建用戶的同時,可以設定用戶的初始狀態(tài),包括用戶口令是否過期以及賬戶是否鎖定等。Oracle允許任何時候對帳戶進行鎖定或解鎖。鎖定賬戶后,用戶就不能與Oracle數(shù)據(jù)庫建立連接,必須對賬戶解鎖后才允許用戶訪問數(shù)據(jù)庫。12.2.2.創(chuàng)建用戶基本語法CREATEUSERuser_nameIDENTIFIED[BYpassword|EXTERNALLY|GLOBALLYAS'external_name'][DEFAULTTABLESPACEtablespace_name][TEMPORARYTABLESPACEtemp_tablesapce_name][QUOTAnK|M|UNLIMITEDONtablespace_name][PROFILEprofile_name][PASSWORDEXPIRE][ACCOUNTLOCK|UNLOCK];參數(shù)說明user_name:用于設置新建用戶名,在數(shù)據(jù)庫中用戶名必須是唯一的;IDENTIFIED:用于指明用戶身份認證方式;BYpassword:用于設置用戶的數(shù)據(jù)庫身份認證,其中password為用戶口令;EXTERNALLY:用于設置用戶的外部身份認證;GLOBALLYAS'external_name':用于設置用戶的全局身份認證,其中external_name為Oracle的安全管理服務器相關信息;DEFAULTTABLESPACE:用于設置用戶的默認表空間,如果沒有指定,Oracle將數(shù)據(jù)庫默認表空間作為用戶的默認表空間;TEMPORARYTABLESPACE:用于設置用戶的臨時表空間;QUOTA:用于指定用戶在特定表空間上的配額,即用戶在該表空間中可以分配的最大空間;PROFILE:用于為用戶指定概要文件,默認值為DEFAULT,采用系統(tǒng)默認的概要文件;PASSWORDEXPIRE:用于設置用戶口令的初始狀態(tài)為過期,用戶在首次登錄數(shù)據(jù)庫時必須修改口令;ACCOUNTLOCK:用于設置用戶初始狀態(tài)為鎖定,默認為不鎖定;ACCOUNTUNLOCK:用于設置用戶初始狀態(tài)為不鎖定或解除用戶的鎖定狀態(tài)注意在創(chuàng)建新用戶后,必須為用戶授予適當?shù)臋嘞?,用戶才可以進行相應的數(shù)據(jù)庫操作。例如,授予用戶CREATESESSION權限后,用戶才可以連接到數(shù)據(jù)庫。創(chuàng)建數(shù)據(jù)庫用戶示例創(chuàng)建一個用戶user3,口令為user3,默認表空間為USERS,在該表空間的配額為10MB,初始狀態(tài)為鎖定。CREATEUSERuser3IDENTIFIEDBYuser3DEFAULTTABLESPACEUSERSQUOTA10MONUSERSACCOUNTLOCK;創(chuàng)建一個用戶user4,口令為user4,默認表空間為USERS,在該表空間的配額為10MB??诹钤O置為過期狀態(tài),即首次連接數(shù)據(jù)庫時需要修改口令。概要文件為example_profile(假設該概要文件已經(jīng)創(chuàng)建)。CREATEUSERuser4IDENTIFIEDBYuser4DEFAULTTABLESPACEUSERSQUOTA10MONUSERSPROFILEexample_profilePASSWORDEXPIRE;

基本語法ALTERUSERuser_name[IDENTIFIED][BYpassword|EXTERNALLY|GLOBALLYAS'external_name'][DEFAULTTABLESPACEtablespace_name][TEMPORARYTABLESPACEtemp_tablesapce_name][QUOTAnK|M|UNLIMITEDONtablespace_name][PROFILEprofile_name][DEFAULTROLErole_list|ALL[EXCEPTrole_list]|NONE][PASSWORDEXPIRE][ACCOUNTLOCK|UNLOCK];12.2.3修改用戶參數(shù)說明role_list:角色列表;ALL:表示所有角色;EXCEPTrole_list:表示除了role_list列表中的角色之外的其他角色;NONE:表示沒有默認角色。注意,指定的角色必須是使用GRANT命令直接授予該用戶的角色。修改數(shù)據(jù)庫用戶示例將用戶user3的口令修改為newuser3,同時將該用戶解鎖。ALTERUSERuser3IDENTIFIEDBYnewuser3ACCOUNTUNLOCK;修改用戶user4的默認表空間為ORCLTBS1,在該表空間的配額為20MB,在USERS表空間的配額為10MB。ALTERUSERuser4DEFAULTTABLESPACEORCLTBS1QUOTA20MONORCLTBS1QUOTA10MONUSERS;

用戶的鎖定與解鎖某個用戶暫時離開工作某個用戶永久離開工作DBA創(chuàng)建的特殊用戶帳戶示例ALTERUSERuser3ACCOUNTLOCK;ALTERUSERuser3ACCOUNTUNLOCK;12.2.4刪除用戶基本語法DROPUSERuser_name[CASCADE];步驟先刪除用戶所擁有的對象再刪除用戶將參照該用戶對象的其他數(shù)據(jù)庫對象標志為INVALID12.2.5查詢用戶信息ALL_USERS:包含數(shù)據(jù)庫所有用戶的用戶名、用戶ID和用戶創(chuàng)建時間。DBA_USERS:包含數(shù)據(jù)庫所有用戶的詳細信息。USER_USERS:包含當前用戶的詳細信息。DBA_TS_QUOTAS:包含所有用戶的表空間配額信息。USER_TS_QUOTAS:包含當前用戶的表空間配額信息。V$SESSION:包含用戶會話信息。V$OPEN_CURSOR:包含用戶執(zhí)行的SQL語句信息。查看數(shù)據(jù)庫所有用戶名及其默認表空間。SELECTSERNAME,DEFAULT_TABLESPACEFROMDBA_USERS;查看數(shù)據(jù)庫中各用戶的登錄時間、會話號。SELECTSID,SERIAL#,LOGON_TIME,USERNAMEFROMV$SESSION;12.3權限管理權限管理概述系統(tǒng)權限管理對象權限管理查詢權限信息12.3.1權限管理概述概念所謂權限就是執(zhí)行特定類型SQL命令或訪問其他用戶的對象的權利。用戶在數(shù)據(jù)庫中可以執(zhí)行什么樣的操作,以及可以對哪些對象進行操作,完全取決于該用戶所擁有的權限。分類系統(tǒng)權限:系統(tǒng)權限是指在數(shù)據(jù)庫級別執(zhí)行某種操作的權限,或針對某一類對象執(zhí)行某種操作的權限。例如,CREATESESSION權限、CREATEANYTABLE權限。對象權限:對象權限是指對某個特定的數(shù)據(jù)庫對象執(zhí)行某種操作的權限。例如,對特定表的插入、刪除、修改、查詢的權限。授權方法直接授權:利用GRANT命令直接為用戶授權。間接授權:先將權限授予角色,然后再將角色授予用戶。12.3.2系統(tǒng)權限管理系統(tǒng)權限分類系統(tǒng)權限的授權系統(tǒng)權限的回收(1)系統(tǒng)權限分類一類是對數(shù)據(jù)庫某一類對象的操作能力,通常帶有ANY關鍵字。例如,CREATEANYINDEX,ALTERANYINDEX,DROPANYINDEX。另一類系統(tǒng)權限是數(shù)據(jù)庫級別的某種操作能力。例如,CREATESESSION。(2)系統(tǒng)權限的授權語法為GRANTsys_priv_listTOuser_list|role_list|PUBLIC[WITHADMINOPTION];參數(shù)說明:sys_priv_list:表示系統(tǒng)權限列表,以逗號分隔;user_list:表示用戶列表,以逗號分隔;role_list:表示角色列表,以逗號分隔;PUBLIC:表示對系統(tǒng)中所有用戶授權;WITHADMINOPTION:表示允許系統(tǒng)權限接收者再把此權限授予其他用戶。系統(tǒng)權限授予時需要注意的幾點:只有DBA才應當擁有ALTERDATABASE系統(tǒng)權限。應用程序開發(fā)者一般需要擁有CREATETABLE、CREATEVIEW和CREATEINDEX等系統(tǒng)權限。普通用戶一般只具有CREATESESSION系統(tǒng)權限。只有授權時帶有WITHADMINOPTION子句時,用戶才可以將獲得的系統(tǒng)權限再授予其他用戶,即系統(tǒng)權限的傳遞性。為PUBLIC用戶組授予CREATESESSION系統(tǒng)權限。GRANTCREATESESSIONTOPUBLIC;為用戶user1授予CREATESESSION,CREATETABLE,CREATEINDEX系統(tǒng)權限。GRANTCREATESESSION,CREATETABLE,CREATEVIEWTOuser1;為用戶user2授予CREATESESSION,CREATETABLE,CREATEINDEX系統(tǒng)權限。user2獲得權限后,為用戶user3授予CREATETABLE權限。GRANTCREATESESSION,CREATETABLE,CREATEVIEWTOuser2WITHADMINOPTION;CONNECTuser2/user2@ORCLGRANTCREATETABLETOuser3;語法為REVOKEsys_priv_listFROMuser_list|role_list|PUBLIC;;注意事項多個管理員授予用戶同一個系統(tǒng)權限后,其中一個管理員回收其授予該用戶的系統(tǒng)權限時,該用戶將不再擁有相應的系統(tǒng)權限。為了回收用戶系統(tǒng)權限的傳遞性(授權時使用了WITHADMINOPTION子句),必須先回收其系統(tǒng)權限,然后再授予其相應的系統(tǒng)權限。如果一個用戶獲得的系統(tǒng)權限具有傳遞性,并且給其他用戶授權,那么該用戶系統(tǒng)權限被回收后,其他用戶的系統(tǒng)權限并不受影響。(3)系統(tǒng)權限的回收

12.3對象權限管理對象權限分類對象權限的授權對象權限的回收(1)對象權限分類在Oracle數(shù)據(jù)庫中共有9種類型的對象權限,不同類型的模式對象有不同的對象權限,而有的對象并沒有對象權限,只能通過系統(tǒng)權限進行控制,如簇、索引、觸發(fā)器、數(shù)據(jù)庫鏈接等。對象權限適合對象對象權限功能說明SELECT表、視圖、序列查詢數(shù)據(jù)操作UPDATE表、視圖更新數(shù)據(jù)操作DELETE表、視圖刪除數(shù)據(jù)操作INSERT表、視圖插入數(shù)據(jù)操作REFERENCES表在其他表中創(chuàng)建外鍵時可以引用該表EXECUTE存儲過程、函數(shù)、包執(zhí)行PL/SQL存儲過程、函數(shù)和包READ目錄讀取目錄ALTER表、序列修改表或序列結構INDEX表為表創(chuàng)建索引ALL具有對象權限的所有模式對象某個對象所有對象權限操作集合(2)對象權限的授權

語法GRANTobj_priv_list|ALLON[schema.]objectTOuser_list|role_list[WITHGRANTOPTION];參數(shù)說明obj_priv_list:表示對象權限列表,以逗號分隔;[schema.]object:表示指定的模式對象,默認為當前模式中的對象;user_list:表示用戶列表,以逗號分隔;role_list:表示角色列表,以逗號分隔;WITHGRANTOPTION:表示允許對象權限接收者把此對象權限授予其他用戶。將scott模式下的emp表的SELECT,UPDATE,INSERT權限授予user1用戶。GRANTSELECT,INSERT,UPDATEONscott.empTOuser1;將scott模式下的emp表的SELECT,UPDATE,INSERT權限授予user2用戶。user2用戶再將emp表的SELECT,UPDATE權限授予user3用戶。GRANTSELECT,INSERT,UPDATEONscott.empTOuser2WITHGRANTOPTION;CONNECTuser2/user2@ORCLGRANTSELECT,UPDATEONscott.empTOuser3;語法REVOKEobj_priv_list|ALLON[schema.]objectFROMuser_list|role_list;注意事項多個管理員授予用戶同一個對象權限后,其中一個管理員回收其授予該用戶的對象權限時,該用戶不再擁有相應的對象權限。為了回收用戶對象權限的傳遞性(授權時使用了WITHGRANTOPTION子句),必須先回收其對象權限,然后再授予其相應的對象權限。如果一個用戶獲得的對象權限具有傳遞性(授權時使用了WITHGRANTOPTION子句),并且給其他用戶授權,那么該用戶的對象權限被回收后,其他用戶的對象權限也被回收。(3)對象權限的回收

WITHADMINOPTION當甲用戶授權給乙用戶,且激活該選項,則被授權的乙用戶具有管理該權限的能力:或者能把得到的權限再授給其他用戶丙,或者能回收授出去的權限。當甲用戶收回乙用戶的權限后,乙用戶曾經(jīng)授給丙用戶的權限仍然存在與WITHGRANTOPTION比較當甲用戶授權給乙用戶,且激活該選項,則被授權的乙用戶具有管理該權限的能力:或者能把得到的權限再授給其他用戶丙,或者能回收授出去的權限。當甲用戶收回乙用戶的權限后,乙用戶曾經(jīng)授給丙用戶的權限也被回收。

WITHADMINOPTIONDBAGRANTREVOKEJeffEmiJeffEmiDBAGRANTREVOKEWITHGRANTOPTIONBobJeffEmiEmiJeffBob12.3.4查詢權限信息DBA_TAB_PRIVS:包含數(shù)據(jù)庫所有對象的授權信息ALL_TAB_PRIVS:包含數(shù)據(jù)庫所有用戶和PUBLIC用戶組的對象授權信息USER_TAB_PRIVS:包含當前用戶對象的授權信息DBA_COL_PRIVS:包含所有字段已授予的對象權限ALL_COL_PRIVS:包含所有字段已授予的對象權限信息USER_COL_PRIVS:包含當前用戶所有字段已授予的對象權限信息。DBA_SYS_PRIVS:包含授予用戶或角色的系統(tǒng)權限信息USER_SYS_PRIVS:包含授予當前用戶的系統(tǒng)權限信。12.4角色管理Oracle數(shù)據(jù)庫角色概述預定義角色自定義角色利用角色進行權限管理查詢角色信息12.4.1Oracle數(shù)據(jù)庫角色概述角色的概念所謂角色就是一系列相關權限的集合12.4.2預定義角色預定義角色概述預定義角色是指在Oracle數(shù)據(jù)庫創(chuàng)建時由系統(tǒng)自動創(chuàng)建的一些常用的角色,這些角色已經(jīng)由系統(tǒng)授予了相應的權限。DBA可以直接利用預定義的角色為用戶授權,也可以修改預定義角色的權限。Oracle數(shù)據(jù)庫中有30多個預定義角色??梢酝ㄟ^數(shù)據(jù)字典視圖DBA_ROLES查詢當前數(shù)據(jù)庫中所有的預定義角色,通過DBA_SYS_PRIVS查詢各個預定義角色所具有的系統(tǒng)權限。角色角色具有的部分權限CONNECTCREATEDATABASE_LINK,CREATESESSION,ALTERSESSION,CREATETABLE,CREATECLUSTER,CREATESEQUENCE,CREATESYNONYM,CREATEVIEWRESOURCECREATECLUSTER,CREATEOPERATOR,CREATETRIGGER,CREATETYPE,CREATESEQUENCE,CREATEINDEXTYPE,CREATEPROCEDURE,CREATETABLEDBAADMINISTERDATABSETRIGGER,ADMINISTERRESOURCEMANAGE,CREATE…,CREATEANY…,ALTER…,ALTERANY…,DROP…,DROPANY…,EXECUTE…,EXECUTEANY…EXP_FULL_DATABASEADMINISTERRESOURCEMANAGE,BACKUPANYTABLE,EXECUTEANYPROCEDURE,SELECTANYTABLE,EXECUTEANYTYPEIMP_FULL_DATABASEADMINISTERDATABSETRIGGER,ADMINISTERRESOURCEMANAGE,CREATEANY…,ALTERANY…,DROP…,DROPANY…,EXECUTEANY…12.4.3自定義角色創(chuàng)建角色角色權限的授予與回收修改角色角色的生效與失效刪除角色(1)創(chuàng)建角色

語法為CREATEROLErole_name[NOTIDENTIFIED][IDENTIFIEDBYpassword];參數(shù)說明role_name:用于指定自定義角色名稱,該名稱不能與任何用戶名或其他角色相同;NOTIDENTIFIED:用于指定該角色由數(shù)據(jù)庫授權,使該角色生效時不需要口令;IDENTIFIEDBYpassword:用于設置角色生效時的認證口令。例如,創(chuàng)建不同類型的角色。CREATEROLEhigh_manager_role;CREATEROLEmiddle_manager_roleIDENTIFIEDBYmiddlerole;CREATEROLElow_manager_roleIDENTIFIEDBYlowrole;(2)角色權限的授予與回收

說明給角色授予適當?shù)南到y(tǒng)權限、對象權限或已有角色。在數(shù)據(jù)庫運行過程中,可以為角色增加權限,也可以回收其權限。給角色授權時應該注意,一個角色可以被授予另一個角色,但不能授予其本身,不能產(chǎn)生循環(huán)授權。示例GRANTCONNECT,CREATETABLE,CREATEVIEWTOlow_manager_role;GRANTCONNECT,CREATETABLE,CREATEVIEWTOmiddle_manager_role;GRANTCONNECT,RESOURCE,DBATOhigh_manager_role;GRANTSELECT,UPDATE,INSERT,DELETEONscott.empTOhigh_manager_role;REVOKECONNECTFROMlow_manager_role;REVOKECREATETABLE,CREATEVIEWFROMmiddle_manager_role;REVOKEUPDATE,DELETE,INSERTONscott.empFROMhigh_manager_role;(3)修改角色概念修改角色是指修改角色生效或失效時的認證方式,也就是說,是否必須經(jīng)過Oracle確認才允許對角色進行修改。修改角色的語法ALTERROLErole_name[NOTIDENTIFIED]|[IDENTIFIEDBYpassword];示例ALTERROLEhigh_manager_roleIDENTIFIEDBYhighrole;ALTERROLEmiddle_manager_roleNOTIDENTIFIED;(4)角色的生效與失效

概念所謂角色的失效是指角色暫時不可用。當一個角色生效或失效時,用戶從角色中獲得的權限也生效或失效。因此,通過設置角色的生效或失效,可以動態(tài)改變用戶的權限。在進行角色生效或失效設置時,需要輸入角色的認證口令,避免非法設置。語法SETROLE[role_name[IDENTIFIEDBYpassword]]|[ALL[EXCEPTrole_name]]|[NONE];參數(shù)說明role_name:表示進行生效或失效設置的角色名稱;IDENTIFIEDBYpassword:用于設置角色生效或失效時的認證口令;ALL:表示使當前用戶所有角色生效;EXCEPTrole_name:表示除了特定角色外,其余所有角色生效;NONE:表示使當前用戶所有角色失效。示例SETROLENONE;SETROLEhigh_manager_roleIDENTIFIEDBYhighrole;SETROLEmiddle_manager_role,low_manager_lowIDENTIFIEDBYlowrole;SETROLEALLEXCEPTlow_manager_role,middle_manager_role;(5)刪除角色語法結構DROPROLErole_name;說明如果某個角色不再需要,則可以使用DROPROLE語句刪除角色。角色被刪除后,用戶通過該角色獲得的權限被回收。12.4.4利用角色進行權限管理給用戶或角色授予角色從用戶或角色回收角色用戶角色的激活或屏蔽(1)給用戶或角色授予角色語法GRANTrole_listTOuser_list|role_list;例如,將CONNECT,high_manager_role角色授予用戶user1,將RESOURCE,CONNECT角色授予角色middle_manager_role。GRANTCONNECT,high_manager_roleTOuser1;GRANTRESOURCE,CONNECTTOmiddle_manager_role;(2)從用戶或角色回收角色語法為REVOKErole_listFROMuser_list|role_list;例如,回收角色middle_manager_role的RESOURCE,CONNECT角色。SQL>REVOKERESOURCE,CONNECTFROMmiddle_manager_role;(3)用戶角色的激活或屏蔽語法為ALTERUSERuser_nameDEFAULTROLE[role_name]|[ALL[EXCEPTrole_name]]|[NONE];示例ALTERUSERuser1DEFAULTROLENONE;ALTERUSERuser1DEFAULTROLECONNECT,DBA;ALTERUSERuser1DEFAULTROLEALL;ALTERUSERuser1DEFAULTROLEALLEXCEPTDBA;12.4.5查詢角色信息DBA_ROLES:包含數(shù)據(jù)庫中所有角色及其描述;DBA_ROLE_PRIVS:包含為數(shù)據(jù)庫中所有用戶和角色授予的角色信息;USER_ROLE_PRIVS:包含為當前用戶授予的角色信息;ROLE_ROLE_PRIVS:為角色授予的角色信息;ROLE_SYS_PRIVS:為角色授予的系統(tǒng)權限信息;ROLE_TAB_PRIVS:為角色授予的對象權限信息;SESSION_PRIVS:當前會話所具有的系統(tǒng)權限信息;SESSION_ROLES:當前會話所具有的角色信息。。查詢角色CONNECT所具有的系統(tǒng)權限信息。SELECT*FROMROLE_SYS_PRIVSWHEREROLE='CONNECT';查詢DBA角色被授予的角色信息。SELECT*FROMROLE_ROLE_PRIVSWHEREROLE='DBA';12.5概要文件管理概要文件概述概要文件中參數(shù)介紹概要文件的管理12.5.1概要文件概述概要文件的作用資源限制級別和類型啟用或停用資源限制(1)概要文件的作用概要文件(PROFILE)是數(shù)據(jù)庫和系統(tǒng)資源限制的集合,是Oracle數(shù)據(jù)庫安全策略的重要組成部分。利用概要文件,可以限制用戶對數(shù)據(jù)庫和系統(tǒng)資源的使用,同時還可以對用戶口令進行管理。。在Oracle數(shù)據(jù)庫創(chuàng)建的同時,系統(tǒng)會創(chuàng)建一個名為DEFAULT的默認概要文件。如果沒有為用戶顯式地指定一個概要文件,系統(tǒng)默認將DEFAULT概要文件作為用戶的概要文件。(2)資源限制級別和類型

資源限制級別會話級資源限制:對用戶在一個會話過程中所能使用的資源進行限制。調(diào)用級資源限制:對一條SQL語句在執(zhí)行過程中所能使用的資源進行限制。資源限制類型

CPU使用時間;邏輯讀;每個用戶的并發(fā)會話數(shù);用戶連接數(shù)據(jù)庫的空閑時間;用戶連接數(shù)據(jù)庫的時間;私有SQL區(qū)和PL/SQL區(qū)的使用。(3)啟用或停用資源限制

在數(shù)據(jù)庫啟動前啟用或停用資源限制將數(shù)據(jù)庫初始化參數(shù)文件中的參數(shù)RESOURCE_LIMIT的值設置為TRUE或FALSE(默認),來啟用或停用系統(tǒng)資源限制。在數(shù)據(jù)庫啟動后啟用或停用資源限制使用ALTERSYSTEM語句修改RESOURCE_LIMIT的參數(shù)值為TRUE或FALSE,來啟動或關閉系統(tǒng)資源限制。ALTERSYSTEMSETRESOURCE_LIMIT=TRUE;12.5.2概要文件中參數(shù)資源限制參數(shù)口令管理參數(shù)(1)資源限制參數(shù)CPU_PER_SESSION:限制用戶在一次會話期間可以占用的CPU時間總量,單位為百分之一秒。當達到該時間限制后,用戶就不能在會話中執(zhí)行任何操作了,必須斷開連接,然后重新建立連接。CPU_PER_CALL:限制每個調(diào)用可以占用的CPU時間總量,單位為百分之一秒。當一個SQL語句執(zhí)行時間達到該限制后,該語句以錯誤信息結束。CONNECT_TIME:限制每個會話可持續(xù)的最大時間值,單位為分鐘。當數(shù)據(jù)庫連接持續(xù)時間超出該設置時,連接被斷開。IDLE_TIME:限制每個會話處于連續(xù)空閑狀態(tài)的最大時間值,單位為分鐘。當會話空閑時間超過該設置時,連接被斷開。SESSIONS_PER_USER:限制一個用戶打開數(shù)據(jù)庫會話的最大數(shù)量。LOGICAL_READS_PER_SESSION:允許一個會話讀取數(shù)據(jù)塊的最大數(shù)量,包括從內(nèi)存中讀取的數(shù)據(jù)塊和從磁盤中讀取的數(shù)據(jù)塊的總和。LOGICAL_READS_PER_CALL:允許一個調(diào)用讀取的數(shù)據(jù)塊的最大數(shù)量,包括從內(nèi)存中讀取的數(shù)據(jù)塊和從磁盤中讀取的數(shù)據(jù)塊的總和。PRIVATE_SGA:在共享服務器操作模式中,執(zhí)行SQL語句或PL/SQL程序時,Oracle將在SGA中創(chuàng)建私有SQL區(qū)。該參數(shù)限制在SGA中一個會話可分配私有SQL區(qū)的最大值。COMPOSITE_LIMIT:稱為“綜合資源限制”,是一個用戶會話可以消耗的資源總限額。該參數(shù)由CPU_PER_SESSION,LOGICAL_READS_PER_SESSION,PRIVATE_SGA,CONNECT_TIME幾個參數(shù)綜合決定。(2)口令管理參數(shù)FAILED_LOGIN_ATTEMPTS:限制用戶在登錄Oracle數(shù)據(jù)庫時允許失敗的次數(shù)。一個用戶嘗試登錄數(shù)據(jù)庫的次數(shù)達到該值時,該用戶的賬戶將被鎖定,只有解鎖后才可以繼續(xù)使用。PASSWORD_LOCK_TIME:設定當用戶登錄失敗后,用戶賬戶被鎖定的時間長度。PASSWORD_LIFE_TIME:設置用戶口令的有效天數(shù)。達到限制的天數(shù)后,該口令將過期,需要設置新口令。PASSWORD_GRACE_TIME:用于設定提示口令過期的天數(shù)。在這幾天中,用戶將接收到一個關于口令過期需要修改口令的警告。當達到規(guī)定的天數(shù)后,原口令過期。PASSWORD_REUSE_TIME:指定一個用戶口令被修改后,必須經(jīng)過多少天后才可以重新使用該口令。PASSWORD_REUSE_MAX:指定一個口令被重新使用前,必須經(jīng)過多少次修改。PASSWORD_VERIFY_FUNCTION:設置口令復雜性校驗函數(shù)。該函數(shù)會對口令進行校驗,以判斷口令是否符合最低復雜程度或其他校驗規(guī)則。12.5.3概要文件管理創(chuàng)建概要文件將概要文件分配給用戶修改概要文件刪除概要文件查詢概要文件(1)創(chuàng)建概要文件

語法為CREATEPROFILEprofile_nameLIMITresource_parameters|password_parameters;參數(shù)說明如下。profile_name:用于指定要創(chuàng)建的概要文件名稱;resource_parameter:用于設置資源限制參數(shù),形式為resource_parameter_nameinteger|UNLIMITED|DEFALUTpassword_parameters:用于設置口令參數(shù),形式為password_parameter_nameinteger|UNLIMITED|DEFALUT創(chuàng)建一個名為res_profile的概要文件,要求每個用戶最多可以創(chuàng)建4個并發(fā)會話;每個會話持續(xù)時間最長為60分鐘;如果會話在連續(xù)20分鐘內(nèi)空閑,則結束會話;每個會話的私有SQL區(qū)為100KB;每個SQL語句占用CPU時間總量不超過10秒。CREATEPROFILEres_profileLIMITSESSIONS_PER_USER4CONNECT_TIME60IDLE_TIME20PRIVATE_SGA100KCPU_PER_CALL100;創(chuàng)建一個名為pwd_profile的概要文件,如果用戶連續(xù)4次登錄失敗,則鎖定該賬戶,10天后該賬戶自動解鎖。CREATEPROFILEpwd_profileLIMITFAILED_LOGIN_ATTEMPTS4PASSWORD_LOCK_TIME10;(2)將概要文件分配給用戶

可以在創(chuàng)建用戶時為用戶指定概要文件CREATEUSERuser5IDENTIFIEDBYuser5PROFILEres_profile;也可以在修改用戶時為用戶指定概要文件。ALTERUSERuser5PROFILEpwd_profile;(3)修改概要文件

語法為ALTERPROFILEprofile_nameLIMITresource_parameters|password_parameters;注意對概要文件的修改只有在用戶開始一個新的會話時才會生效。修改pwd_profile概要文件,將用戶口令有效期設置為10天。ALTERPROFILEpwd_profileLIMITPASSWORD_LIFE_TIME10;(4)刪除概要文件

語法DROPPROFILEprofile_name[CASCADE];注意如果要刪除的概要文件已經(jīng)指定給用戶,則必須在DROPPROFILE語句中使用CASCADE子句。如果為用戶指定的概要文件被刪除,則系統(tǒng)自動將DEFAULT概要文件指定給該用戶。刪除概要文件pwd_profile。DROPPROFILEpwd_profileCASCADE;(5)查詢概要文件USER_PASSWORD_LIMITS:包含通過概要文件為用戶設置的口令策略信息。USER_RESOURCE_LIMITS:包含通過概要文件為用戶設置的資源限制參數(shù)。DBA_PROFILES:包含所有概要文件的基本信息。12.6審計審計概述語句審計權限審計對象審計精細審計12.6.1審計概述審計的概念審計分類審計的啟動(1)審計的概念

審計是監(jiān)視和記錄用戶對數(shù)據(jù)庫所進行的操作,以供DBA進行統(tǒng)計和分析。利用審計可以完成下列任務:調(diào)查數(shù)據(jù)庫中的可疑活動。監(jiān)視和收集特定數(shù)據(jù)庫活動的數(shù)據(jù)。一條審計記錄中包含用戶名、會話標識、終端標識、所訪問的模式對象名稱、執(zhí)行的操作、操作的完整語句代碼、日期和時間戳、所使用的系統(tǒng)權限等。(2)審計分類

語句審計(StatementAuditing):對特定的SQL語句進行審計,不指定具體對象。權限審計(PrivilegeAuditing):對特定的系統(tǒng)權限使用情況進行審計。對象審計(ObjectAuditing):對特定的模式對象上執(zhí)行的特定語句進行審計。精細審計(Fine-GrainedAuditing,F(xiàn)GA):對基于內(nèi)容的各種SQL語句進行審計,可以使用布爾表達式對列級別上的內(nèi)容進行審計。根據(jù)用戶執(zhí)行的語句是否成功,審計分為:成功執(zhí)行語句的審計不成功執(zhí)行語句的審計無論語句是否執(zhí)行成功都進行審計根據(jù)對同一個語句審計次數(shù)的不同,審計分為:會話級審計:對某一個用戶或所有用戶的同一個語句只審計一次,形成一條審計記錄;存取方式審計:對某一個用戶或所有用戶的同一個語句每執(zhí)行一次便審計一次,即同一條語句形成多個審計記錄。(3)審計的啟動通過修改靜態(tài)參數(shù)AUDIT_TRAIL值來啟動或關閉數(shù)據(jù)庫的審計功能。AUDIT_TRAIL參數(shù)可以取值:為DB,OS,NONE,TRUE,F(xiàn)ALSE,DB_EXTENDED,XML或EXTENDED。DB表示啟動審計功能,審計信息寫入SYS.AUD$數(shù)據(jù)字典中;OS表示啟動審計功能,審計信息寫入操作系統(tǒng)文件中;默認為NONE,表示不啟動審計功能;TRUE功能與DB選項一樣;FALSE表示不啟動審計功能,但Oracle會監(jiān)視特定活動并寫入操作系統(tǒng)文件,如例程的啟動、關閉以及DBA連接數(shù)據(jù)庫等。通過SQL*Plus環(huán)境啟動數(shù)據(jù)庫的審計功能。ALTERSYSTEMSETaudit_trail='DB'SCOPE=SPFILE;SHUTDOWNIMMEDIATESTARTUP通過OEM數(shù)據(jù)庫控制臺啟動數(shù)據(jù)庫的審計功能。12.6.2語句審計概念語句審計是指對特定類型的SQL語句進行審計,與具體的對象沒有關系。可以審計某個用戶或所有用戶的SQL語句;可以是會話級審計或存取方式審計;可以對成功執(zhí)行的SQL語句、沒有成功執(zhí)行的SQL語句或無論是否成功執(zhí)行的SQL語句進行審計。語句審計的基本語法為AUDITsql_statement|sql_statement_option[BYuser1,user2…][BYSESSION|ACCESS][WHENEVER[NOT]SUCCESSFUL]參數(shù)說明sql_statement:被審計的SQL語句sql_statement_option:被審計的SQL語句選項BYuser:指定審計的用戶,如果沒有指定,則審計所有用戶;BYSESSION:語句級審計,同一個SQL語句只審計一次(默認);BYACCESS:存取方式審計,同一個SQL語句執(zhí)行幾次審計幾次;WHENEVERSUCCESSFUL:只審計成功的SQL語句;WHENEVERNOTSUCCESSFUL:只審計不成功的SQL語句。示例AUDITTABLEBYscottBYACCESS;SQL>AUDITVIEWBYscottBYSESSION;SQL>AUDITALTERTABLEBYscott,sfdBYSESSIONWHENEVERSUCCESSFUL;SQL>AUDITSESSIONBYsfd;

SQL>CONNscott/tigerSQL>CREATETABLEtest_audit(snoNUMBER,snameCHAR(20));SQL>ALTERTABLEtest_auditADD(sexCHAR(2));SQL>CONN/ASSYSDBASQL>SELECT*FROMaud$;如果要了解當前數(shù)據(jù)庫對哪些用戶進行了語句審計,以及審計設置信息,可以通過查詢數(shù)據(jù)字典視圖DBA_STMT_AUDIT_OPTS獲得。SELECTuser_name,audit_option,successFROMdba_stmt_audit_opts;

取消對某個語句的審計,只需將AUDIT命令改為NOAUDIT命令就可以了。12.6.3權限審計概念權限審計是指對特定系統(tǒng)權限的使用情況進行審計。語法AUDITsystem_privilege[BYuser1,user2…][BYSESSION|ACCESS][WHENEVER[NOT]SUCCESSFUL]示例AUDITCREATEANYTABLE,CREATEANYVIEWBYscott,sfd;AUDITALTERANYTABLEBYsfdBYSESSIONWHENEVERSUCCESSFUL;如果要了解當前數(shù)據(jù)庫對哪些用戶的系統(tǒng)權限進行了審計以及審計設置信息,可以通過查詢數(shù)據(jù)字典DBA_PRIV_AUDIT_OPTS獲得。SELECTuser_name,privilege,successFROMdba_priv_audit_opts;取消對某個系統(tǒng)權限的審計,只需將AUDIT命令改為NOAUDIT命令就可以了。12.6.4對象審計概念對象審計是指對特定模式對象執(zhí)行的特點操作進行審計,與用戶沒有關系。語法為AUDITobject_privilegeONschema.object_name[BYuser1,user2…][BYSESSION|ACCESS][WHENEVER[NOT]SUCCESSFUL]參數(shù)說明object_privilege:特定的對象權限schema.object_name:特定模式對象。

對scott模式下的emp表、dept表進行審計。AUDITSELECT,UPDATEONscott.empBYACCESS;AUDITINSERT,DELETEONscott.deptBYSESSIONWHENEVERNOTSUCCESSFUL;如果要了解當前數(shù)據(jù)庫對哪些模式對象進行了審計以及審計設置信息,可以通過查詢數(shù)據(jù)字典視圖DBA_OBJ_AUDIT_OPTS獲得。SELECTowner,object_type,ins,upd,sel,delFROMdba_obj_audit_opts;如果要取消對某個模式對象的審計,只需將AUDIT命令改為NOAUDIT命令就可以了。12.6.5精細審計概念精細審計是Oracle10g的新特性,可以對表或視圖上執(zhí)行的SELECT,INSERT,UPDATE,DELETE操作創(chuàng)建審計策略。通過DBMA_

溫馨提示

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

評論

0/150

提交評論