Как запросить разрешения для каталога Oracle? - PullRequest
12 голосов
/ 17 июня 2011

У меня есть каталог в all_directories, но мне нужно выяснить, какие разрешения связаны с ним, т.е. что ему предоставлено?

Ответы [ 4 ]

28 голосов
/ 17 июня 2011

Это должно дать вам роли, пользователей и разрешения, предоставленные для каталога:

SELECT * 
  FROM all_tab_privs 
 WHERE table_name = 'your_directory';  --> needs to be upper case

И да, это в представлении all_TAB_privs ;-) Лучшим именем для этого представления будет что-то вроде "ALL_OBJECT_PRIVS", поскольку оно также включает объекты PL / SQL и их разрешения на выполнение.

7 голосов
/ 03 октября 2012

Вы можете увидеть все привилегии для всех каталогов со следующим

SELECT *
from all_tab_privs
where table_name in
  (select directory_name 
   from dba_directories);

Ниже приведены инструкции sql для предоставления привилегий, если вам нужно сделать резервную копию того, что вы сделали или что-то в этом роде

select 'Grant '||privilege||' on directory '||table_schema||'.'||table_name||' to '||grantee 
from all_tab_privs 
where table_name in (select directory_name from dba_directories);
2 голосов
/ 17 июня 2011

Не был уверен, имеете ли вы в виду, какие пользователи Oracle могут читать \ писать с каталогом или как соотносятся разрешения между объектом каталога Oracle и соответствующим каталогом операционной системы.

Поскольку DCookie охватила сторону Oracle, следующее взято из документации Oracle, найденной здесь .

Созданы привилегии, предоставленные для каталоганезависимо от разрешений, определенных для каталога операционной системы, и эти два могут или не могут точно соответствовать.Например, возникает ошибка, если для примера пользователя hr предоставлена ​​привилегия READ для объекта каталога, но соответствующий каталог операционной системы не имеет разрешения READ, определенного для процессов базы данных Oracle.

0 голосов
/ 07 июня 2013

В Oracle 11g R2 (по крайней мере, с 11.2.02) есть представление с именем datapump_dir_objs.

SELECT * FROM datapump_dir_objs;

Представление показывает NAME объекта каталога, PATH, а такжеREAD и WRITE разрешения для текущего подключенного пользователя.Тем не менее, он не показывает объекты каталога, к которым у текущего пользователя нет прав на чтение или запись.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...