如何枚举授予Oracle角色的特权列表?
我有一个很早以前创建的本地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. 现在如何枚举授予该角色的特权的特定列表?我感兴趣的是发现特定的表以及该角色对每个表拥有的权限。如何恢复此信息
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_角色_私人受让人的订单