sql >> Databasteknik >  >> RDS >> Oracle

Hur visar man alla privilegier från en användare i Oracle?

Du kan prova dessa vyer nedan.

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

DBA:er och andra avancerade användare kan hitta de privilegier som beviljats ​​andra användare med DBA_ versioner av samma åsikter. De täcks av dokumentationen .

Dessa vyer visar bara de privilegier som beviljats ​​direkt till användaren. Hittar alla privilegierna, inklusive de som beviljas indirekt genom roller, kräver mer komplicerade rekursiva SQL-satser:

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;


  1. Hur ersätter man specifika värden i en Oracle-databaskolumn?

  2. 7645 Null eller tomt fulltextpredikat

  3. Ansluta en 64-bitars applikation till Acomba

  4. Ta bort rader med MySQL LEFT JOIN