Oracle
 sql >> Database >  >> RDS >> Oracle

Come mostrare tutti i privilegi di un utente in Oracle?

Puoi provare queste visualizzazioni di seguito.

SELECT * FROM USER_SYS_PRIVS; 
SELECT * FROM USER_TAB_PRIVS;
SELECT * FROM USER_ROLE_PRIVS;

I DBA e altri utenti esperti possono trovare i privilegi concessi ad altri utenti con il DBA_ versioni di questi stessi punti di vista. Sono trattati nella documentazione .

Tali visualizzazioni mostrano solo i privilegi concessi direttamente all'utente. Trovare tutto i privilegi, inclusi quelli concessi indirettamente tramite ruoli, richiedono istruzioni SQL ricorsive più complicate:

select * from dba_role_privs connect by prior granted_role = grantee start with grantee = '&USER' order by 1,2,3;
select * from dba_sys_privs  where grantee = '&USER' or grantee in (select granted_role from dba_role_privs connect by prior granted_role = grantee start with grantee = '&USER') order by 1,2,3;
select * from dba_tab_privs  where grantee = '&USER' or grantee in (select granted_role from dba_role_privs connect by prior granted_role = grantee start with grantee = '&USER') order by 1,2,3,4;