Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como mostrar todos os privilégios de um usuário no oracle?


Você pode tentar essas visualizações abaixo.
SELECT * FROM USER_SYS_PRIVS; 
SELECT * FROM USER_TAB_PRIVS;
SELECT * FROM USER_ROLE_PRIVS;

DBAs e outros usuários avançados podem encontrar os privilégios concedidos a outros usuários com o DBA_ versões dessas mesmas visões. Eles são abordados na documentação.

Essas visualizações mostram apenas os privilégios concedidos diretamente ao usuário. Encontrando todos os privilégios, incluindo aqueles concedidos indiretamente por meio de funções, requerem instruções SQL recursivas mais complicadas:
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;