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