我如何列出一个用户获得的所有授权?
我如何列出一个用户获得的所有授权?
我需要查看Oracle数据库上的所有授权。
我使用了TOAD功能来比较模式,但它不显示临时表授权等等,所以我的问题是:
我如何列出Oracle数据库上的所有授权?
admin 更改状态以发布 2023年5月21日
如果你需要更多的授权(例如,通过角色授权,系统权限(如选择任何表),等等),以下是一些额外的查询:
用户的系统权限:
SELECT PRIVILEGE FROM sys.dba_sys_privs WHERE grantee =UNION SELECT PRIVILEGE FROM dba_role_privs rp JOIN role_sys_privs rsp ON (rp.granted_role = rsp.role) WHERE rp.grantee = ORDER BY 1;
直接授权给表 / 视图:
SELECT owner, table_name, select_priv, insert_priv, delete_priv, update_priv, references_priv, alter_priv, index_priv FROM table_privileges WHERE grantee =ORDER BY owner, table_name;
间接授权给表 / 视图:
SELECT DISTINCT owner, table_name, PRIVILEGE FROM dba_role_privs rp JOIN role_tab_privs rtp ON (rp.granted_role = rtp.role) WHERE rp.grantee =ORDER BY owner, table_name;