Oracle
 sql >> база данни >  >> RDS >> Oracle

Как мога да изброя ВСИЧКИ грантове, които е получил потребител?

Ако искате повече от директни таблици (например предоставяне чрез роли, системни привилегии, като избор на която и да е таблица и т.н.), ето някои допълнителни заявки:

Системни привилегии за потребител:

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;

Директно предоставяне на таблици/изгледи:

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;

Косвени разрешения за таблици/изгледи:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как можете да изпълнявате една и съща заявка няколко пъти, като използвате цикъл в PL/SQL?

  2. Изберете count(*) от множество таблици

  3. Инсталирайте Oracle SQL Developer 19.1 на Mac OS с JDK 8

  4. Подреждане на редове по подразбиране за заявка за избор в oracle

  5. Извикване на pl/sql функция в java?