Просмотр всех грантов в Oracle

baltun

Администратор
Сообщения
10.731
Реакции
2.542
Баллы
2.003
Просмотр всех объектных привилегий:
SQL:
select * from dba_tab_privs where grantee=<user_or_role>

Просмотр всех привилегий на столбцы:
SQL:
select * from dba_col_privs where grantee=<user_or_role>

Просмотр всех системных привилегий:
SQL:
select * from dba_sys_privs where grantee=<user_or_role>

Просмотр системных привилегий, назначенных пользователям или ролям:
SQL:
select * from dba_role_privs where grantee=<user_or_role>

Просмотр ролей, назначенных ролям или пользователям:
SQL:
select * from role_role_privs where gantee=<user_or_role>

Просмотр системных привилегий, назначенных ролям:
SQL:
select * from role_sys_privs where gantee=<user_or_role>

Просмотр привилегий на таблицы, предоставленные ролям:
SQL:
select * from role_tab_privs where gantee=<user_or_role>

Системные привилегии для пользователя:
SQL:
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;

Прямые субсидии tables/views:
SQL:
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;

Косвенные субсидии tables/views:
SQL:
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;

Есть еще одна точка зрения, которая перечисляет все гранты гораздо более простым способом:
SQL:
select * from DBA_TAB_PRIVS where grantee = 'your user';
 
Назад
Верх Низ