一、需要的權(quán)限
SQL> grant CAPTURE_ADMIN to hr;
Grant succeeded.
二、管理權(quán)限分析的步驟
- 創(chuàng)建/定義權(quán)限分析策略。
- 啟用策略。這將開始記錄特權(quán)使用情況。
- 禁用策略。停止捕獲特權(quán)使用。
- 生成權(quán)限分析結(jié)果。將結(jié)果寫入數(shù)據(jù)字典視圖。
- 分析結(jié)果以確定要撤銷的候選權(quán)限。撤銷之前審核候選人特權(quán)的使用一段時(shí)間
,以確保該帳戶不會不經(jīng)常合法地使用該特權(quán)。
三、特權(quán)分析的類型
- 基于角色的權(quán)限使用捕獲。捕獲啟用角色的會話的權(quán)限。
- 基于上下文的權(quán)限使用捕獲。捕獲具有特定指定條件的會話的權(quán)限。
- 基于角色和上下文的權(quán)限使用捕獲。這具有基于角色和基于上下文的權(quán)限使用捕獲的功能。
- 數(shù)據(jù)庫范圍的權(quán)限使用捕獲。捕獲整個數(shù)據(jù)庫中使用的所有權(quán)限,SYS 的權(quán)限除外。
四、DBMS_PRIVILEGE_CAPTURE過程
1、分析類型
G_DATABASE 1 NUMBER 分析所有權(quán)限使用,但SYS用戶使用的權(quán)限除外。
G_ROLE 2 NUMBER 分析指定角色的權(quán)限使用
G_CONTEXT 3 NUMBER condition為true時(shí),權(quán)限使用.
G_ROLE_AND_CONTEXT 4 NUMBER condition為true時(shí),分析指定角色權(quán)限使用
2、子程序
CREATE_CAPTURE 創(chuàng)建策略
DELETE_RUN 刪除記錄過程
DISABLE_CAPTURE 停止策略
DROP_CAPTURE 刪除策略
ENABLE_CAPTURE 啟用記錄過程
GENERATE_RESULT 填充數(shù)據(jù)字典
四、語法
DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE (
name IN VARCHAR2, --策略名
description IN VARCHAR2 DEFAULT NULL, --描述
type IN NUMBER DEFAULT G_DATABASE, --類型
roles IN ROLE_NAME_LIST DEFAULT ROLE_NAME_LIST(), --分析什么
condition IN VARCHAR2 DEFAULT NULL);--當(dāng)type為G_CONTEXT或G_ROLE_AND_CONTEXT時(shí)填,必須是SYS_CONTEXT函數(shù)
DBMS_PRIVILEGE_CAPTURE.DELETE_RUN (
name IN VARCHAR2, --策略名
run_name IN VARCHAR2);--運(yùn)行的run_name
DBMS_PRIVILEGE_CAPTURE.DISABLE_CAPTURE (
name IN VARCHAR2);
DBMS_PRIVILEGE_CAPTURE.DROP_CAPTURE (
name IN VARCHAR2);
DBMS_PRIVILEGE_CAPTURE.ENABLE_CAPTURE (
name IN VARCHAR2,
run_name IN VARCHAR2 DEFAULT NULL);
DBMS_PRIVILEGE_CAPTURE.GENERATE_RESULT (
name IN VARCHAR2,
run_name IN VARCHAR2 DEFAULT NULL,
DEPENDENCY IN BOOLEAN DEFAULT NULL);
五、案例
SQL> BEGIN
2 DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE(
3 name => 'all_priv_analysis_pol',
4 description => 'database-wide policy to analyze all privileges',
5 type => DBMS_PRIVILEGE_CAPTURE.G_DATABASE);
6 END;
7 /
PL/SQL procedure successfully completed.
SQL> BEGIN
2 DBMS_PRIVILEGE_CAPTURE.ENABLE_CAPTURE (
3 name => 'all_priv_analysis_pol',
4 run_name => 'all_priv_analysis_pol_run');
5 END;
6 /
PL/SQL procedure successfully completed.
SQL> BEGIN
2 DBMS_PRIVILEGE_CAPTURE.DISABLE_CAPTURE (
3 name =>'all_priv_analysis_pol');
4 END;
5 /
PL/SQL procedure successfully completed.
SQL> BEGIN
2 DBMS_PRIVILEGE_CAPTURE.GENERATE_RESULT (
3 name => 'all_priv_analysis_pol',
4 run_name => 'all_priv_analysis_pol_run');
5 END;
6 /
PL/SQL procedure successfully completed.
SQL> SELECT SYS_PRIV, OBJECT_OWNER, OBJECT_NAME, RUN_NAME FROM DBA_USED_PRIVS where username='HR';
SYS_PRIV OBJECT_OWN OBJECT_NAME RUN_NAME
------------------------------ ---------- -------------------------------------------------- ------------------------------
SYS DBA_OBJECTS ALL_PRIV_ANALYSIS_POL_RUN
UNLIMITED TABLESPACE ALL_PRIV_ANALYSIS_POL_RUN
CREATE TABLE ALL_PRIV_ANALYSIS_POL_RUN
SQL> BEGIN
2 DBMS_PRIVILEGE_CAPTURE.drop_capture (
3 name => 'all_priv_analysis_pol');
4 END;
5 /
PL/SQL procedure successfully completed.
--刪除策略前先查詢,否則會連數(shù)據(jù)一起刪除
SQL> SELECT SYS_PRIV, OBJECT_OWNER, OBJECT_NAME, RUN_NAME FROM DBA_USED_PRIVS where username='HR';
no rows selected
「喜歡這篇文章,您的關(guān)注和贊賞是給作者最好的鼓勵」
關(guān)注作者
【版權(quán)聲明】本文為墨天輪用戶原創(chuàng)內(nèi)容,轉(zhuǎn)載時(shí)必須標(biāo)注文章的來源(墨天輪),文章鏈接,文章作者等基本信息,否則作者和墨天輪有權(quán)追究責(zé)任。如果您發(fā)現(xiàn)墨天輪中有涉嫌抄襲或者侵權(quán)的內(nèi)容,歡迎發(fā)送郵件至:contact@modb.pro進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),墨天輪將立刻刪除相關(guān)內(nèi)容。




