Security

Oracle 使用者贈款

  • July 21, 2009

如何獲取特定 Oracle 使用者的所有安全權限列表?

使用者的系統權限:

SELECT PRIVILEGE
 FROM sys.dba_sys_privs
WHERE grantee = <theUser>
UNION
SELECT PRIVILEGE 
 FROM dba_role_privs rp JOIN role_sys_privs rsp ON (rp.granted_role = rsp.role)
WHERE rp.grantee = <theUser>
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 = <theUser>
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 = <theUser>
ORDER BY owner, table_name;

引用自:https://serverfault.com/questions/43790