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

Hvordan kan jeg liste ALLE tilskud en bruger har modtaget?

Hvis du ønsker mere end blot direkte tabeltildelinger (f.eks. bevillinger via roller, systemprivilegier som f.eks. at vælge en tabel osv.), er her nogle yderligere forespørgsler:

Systemrettigheder for en bruger:

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;

Direkte tilskud til tabeller/visninger:

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;

Indirekte tilskud til tabeller/visninger:

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;


  1. Sådan får du alle tabellerne med eller uden primær nøglebegrænsning i SQL Server Database - SQL Server / TSQL Tutorial 59

  2. Sådan afkortes tabel i MySQL

  3. Sådan opsætter du fjernforbindelse til PostgreSQL

  4. Fejlfinding:For mange omdirigeringer