Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何枚举授予Oracle角色的特权列表?_Oracle_Plsql_Roles - Fatal编程技术网

如何枚举授予Oracle角色的特权列表?

如何枚举授予Oracle角色的特权列表?,oracle,plsql,roles,Oracle,Plsql,Roles,我有一个很早以前创建的本地Oracle角色: create role MyRole; 它被授予从一些表和视图中选择、插入、更新和删除的能力 grant select on sometable to MyRole; grant insert on sometable to MyRole; grant select on someothertable to MyRole; -- etc. 现在如何枚举授予该角色的特权的特定列表?我感兴趣的是发现特定的表以及该角色对每个表拥有的权限。如何恢复此信息

我有一个很早以前创建的本地Oracle角色:

create role MyRole;
它被授予从一些表和视图中选择、插入、更新和删除的能力

grant select on sometable to MyRole;
grant insert on sometable to MyRole;
grant select on someothertable to MyRole;
-- etc.

现在如何枚举授予该角色的特权的特定列表?我感兴趣的是发现特定的表以及该角色对每个表拥有的权限。如何恢复此信息?

您只需从数据字典
角色选项卡\u PRIVS
中搜索即可。你喜欢这样吗

从角色选项卡中选择*其中角色='MyRole'

这很有效:

SELECT DBA_TAB_PRIVS.GRANTEE, TABLE_NAME, PRIVILEGE,DBA_ROLE_PRIVS.GRANTEE
FROM DBA_TAB_PRIVS, DBA_ROLE_PRIVS
WHERE DBA_TAB_PRIVS.GRANTEE = DBA_ROLE_PRIVS.GRANTED_ROLE
AND DBA_TAB_PRIVS.GRANTEE='<ENTER GROUP ROLE HERE>'
AND DBA_ROLE_PRIVS.GRANTEE = '<ENTER ROLE HERE>'
ORDER BY DBA_ROLE_PRIVS.GRANTEE
选择DBA\u选项卡\u PRIVS.GRANTEE、表\u名称、权限、DBA\u角色\u PRIVS.GRANTEE
从DBA_选项卡权限、DBA_角色权限
其中DBA_TAB_PRIVS.GRANTEE=DBA_ROLE_PRIVS.GRANTEE
和DBA_TAB_Priv.受让人=“”
和DBA_角色_私人受让人=“”
DBA_角色_私人受让人的订单