У меня есть каталог в all_directories, но мне нужно выяснить, какие разрешения связаны с ним, то есть то, что было предоставлено на нем?
Как запрашивать разрешения в каталоге Oracle?
Ответ 1
Это должно предоставить вам роли, пользователи и разрешения, предоставленные в каталоге:
SELECT *
FROM all_tab_privs
WHERE table_name = 'your_directory'; --> needs to be upper case
И да, это IS в представлении all_TAB_privs;-) Лучшее имя для этого представления будет чем-то вроде "ALL_OBJECT_PRIVS", поскольку оно также включает в себя объекты PL/SQL и их разрешения на выполнение.
Ответ 2
Вы можете увидеть все привилегии для всех каталогов с помощью следующих
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);
Ответ 3
Не был уверен, что вы имели в виду, какие пользователи Oracle могут читать\писать с помощью каталога или корреляцию разрешений между объектом Oracle Directory и базовым каталогом операционной системы.
Так как DCookie рассмотрел сторону Oracle на заборе, из документации Oracle найдена здесь.
Привилегии, предоставленные для каталога создаются независимо от разрешения, определенные для системный каталог, а два могут может не соответствовать точно. Для Например, ошибка возникает, если образец пользователю hr предоставляется привилегия READ для объект каталога, но соответствующая операционная система в директории нет READ разрешение для базы данных Oracle процессы.
Ответ 4
В Oracle 11g R2 (по крайней мере с 11.2.02) есть представление с именем datapump_dir_objs.
SELECT * FROM datapump_dir_objs;
В представлении показаны NAME
объектов каталога, PATH
, а также READ
и WRITE
разрешения для подключенного в данный момент пользователя. Он не показывает никаких объектов каталога, которые текущий пользователь не имеет права на чтение или запись. Тем не менее.