ORACLE запрос, чтобы найти все разрешения / доступ для всех пользователей в базе данных - PullRequest
0 голосов
/ 02 октября 2018

Я ищу запрос, в котором перечислены все пользователи, которые имеют доступ к определенной базе данных.Надеюсь, что похож на этот, но для запроса базы данных Oracle. Запрос SQL Server для поиска всех разрешений / доступа для всех пользователей в базе данных

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Чтобы запросить, какой пользователь был предоставлен для system privilege, например DEBUG ANY PROCEDURE, ON COMMIT REFRESH, INSERT ANY TABLE, CREATE ANY JOB, FLASHBACK ANY TABLE ... и т. Д.

select p.* from dba_sys_privs p where p.grantee = upper('<your_user_name>');

Для запроса DML, EXECUTION, DEBUG привилегий для объекта, таких как TABLE, VIEW, PROCEDURE, FUNCTION ... и т. Д.

select p.* from dba_tab_privs p where p.grantee = upper('<your_user_name>');

Для просмотракакой пользователь предоставил объекту права

select p.* from dba_tab_privs p where p.owner = upper('<your_user_name>');

.

0 голосов
/ 02 октября 2018

Администратор базы данных (DBA) для Oracle может просто выполнить запрос для просмотра строк в DBA_SYS_PRIVS, DBA_TAB_PRIVS и DBA_ROLE_PRIVS, чтобы получить информацию о пользовательских привилегиях, связанных с системой , таблиц и ролей соответственно.

Например, администратор БД, желающий просмотреть все привилегии system , предоставленные всем пользователям, выдаст следующеезапрос:

SELECT *
  FROM DBA_SYS_PRIVS;

Чтобы определить, какие пользователи имеют прямой предоставление доступа к таблице , мы будем использовать представление DBA_TAB_PRIVS:

SELECT *
  FROM DBA_TAB_PRIVS;

Наконец, запрос к представлению DBA_ROLE_PRIVS содержит большую часть той же информации, но применима к ролям , а в столбце GRANTED_ROLE указана рассматриваемая роль:

SELECT *
  FROM DBA_ROLE_PRIVS;

Смотрите весь урок здесь .

...