sql >> Database >  >> RDS >> Oracle

Hoe alle privileges van een gebruiker in Oracle te tonen?

Je kunt deze onderstaande weergaven proberen.

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

DBA's en andere hoofdgebruikers kunnen de privileges vinden die aan andere gebruikers zijn verleend met de DBA_ versies van dezelfde opvattingen. Ze worden behandeld in de documentatie.

Die weergaven tonen alleen de privileges die rechtstreeks zijn verleend aan de gebruiker. alles vinden de privileges, inclusief de rechten die indirect via rollen worden verleend, vereisen meer gecompliceerde recursieve SQL-instructies:

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. Deelnemen aan MAX datumrecord in groep

  2. Inzicht in Dirty Read-probleem met SQL Server

  3. Maak een tijdelijke tabel in SQLite

  4. Hoe de datum in SQL te vergelijken