一、需要的权限
SQL> grant CAPTURE_ADMIN to hr; Grant succeeded.
复制
二、管理权限分析的步骤
- 创建/定义权限分析策略。
- 启用策略。这将开始记录特权使用情况。
- 禁用策略。停止捕获特权使用。
- 生成权限分析结果。将结果写入数据字典视图。
- 分析结果以确定要撤销的候选权限。撤销之前审核候选人特权的使用一段时间
,以确保该帐户不会不经常合法地使用该特权。
三、特权分析的类型
- 基于角色的权限使用捕获。捕获启用角色的会话的权限。
- 基于上下文的权限使用捕获。捕获具有特定指定条件的会话的权限。
- 基于角色和上下文的权限使用捕获。这具有基于角色和基于上下文的权限使用捕获的功能。
- 数据库范围的权限使用捕获。捕获整个数据库中使用的所有权限,SYS 的权限除外。
四、DBMS_PRIVILEGE_CAPTURE过程
1、分析类型
G_DATABASE 1 NUMBER 分析所有权限使用,但SYS用户使用的权限除外。 G_ROLE 2 NUMBER 分析指定角色的权限使用 G_CONTEXT 3 NUMBER condition为true时,权限使用. G_ROLE_AND_CONTEXT 4 NUMBER condition为true时,分析指定角色权限使用
复制
2、子程序
CREATE_CAPTURE 创建策略 DELETE_RUN 删除记录过程 DISABLE_CAPTURE 停止策略 DROP_CAPTURE 删除策略 ENABLE_CAPTURE 启用记录过程 GENERATE_RESULT 填充数据字典
复制
四、语法
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);--当type为G_CONTEXT或G_ROLE_AND_CONTEXT时填,必须是SYS_CONTEXT函数
复制
DBMS_PRIVILEGE_CAPTURE.DELETE_RUN ( name IN VARCHAR2, --策略名 run_name IN VARCHAR2);--运行的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. --删除策略前先查询,否则会连数据一起删除 SQL> SELECT SYS_PRIV, OBJECT_OWNER, OBJECT_NAME, RUN_NAME FROM DBA_USED_PRIVS where username='HR'; no rows selected
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
您好,您的文章已入选墨力原创作者计划合格奖,10墨值奖励已经到账请查收!
❤️我们还会实时派发您的流量收益。
2年前

评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
776次阅读
2025-04-18 14:18:38
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
654次阅读
2025-04-15 17:24:06
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
580次阅读
2025-04-20 10:07:02
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
540次阅读
2025-04-22 00:13:51
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
525次阅读
2025-04-17 17:02:24
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
501次阅读
2025-04-22 00:20:37
一页概览:Oracle GoldenGate
甲骨文云技术
486次阅读
2025-04-30 12:17:56
火焰图--分析复杂SQL执行计划的利器
听见风的声音
459次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
381次阅读
2025-04-15 14:48:05
OR+DBLINK的关联SQL优化思路
布衣
377次阅读
2025-05-05 19:28:36