当我尝试查询时,
SELECT owner, directory_name, directory_path FROM all_directories;
OWNER DIRECTORY_NAME DIRECTORY_PATH
------------------------------ ------------------------------ ----------------
SYS MY_DIR_NAME E:\.....
SYS OTHER_DIR_NAME1 E:\.....
SYS OTHER_DIR_NAME2 E:\.....
说,MY_DIR_NAME
是我在我的架构中使用的那个,并列在我的下面
架构层次结构(Connections->my_schema_name->Directories->MY_DIR_NAME
)。我的问题是如何知道哪个用于我的架构,
不在Directories
文件夹中搜索相同内容。其次,我如何向directory
下的other_schema_name
授予权限
在my_schema_name
中使用。
答案 0 :(得分:2)
不幸的是,all_directories
(及其更强大的表兄,dba_directories
)显示OWNER
,这可能令人困惑,因为所有目录对象都归SYS
所有。
当您以架构和查询all_directories
身份登录时,您确实看到架构具有某些权限的目录对象(例如READ,WRITE)。
您可以通过以下方式授予权限:
GRANT READ, WRITE ON DIRECTORY MY_DIR_NAME TO other_schema_name;
答案 1 :(得分:1)
您可以使用以下查询来查找具有READ
,WIRTE
特权的目录。
SELECT grantor, grantee, table_schema, table_name, privilege
FROM all_tab_privs
WHERE grantee= '<SCHEMA_NAME>'
AND privilege IN ('READ', 'WRITE');
尝试以下查询以授予READ
&amp;对目录的WRITE
权限。
GRANT read, write ON directory <directory_name> TO <schama_name>;
答案 2 :(得分:1)
目录是不属于任何特定用户的数据库对象。这是其中一个原因,您没有看到USER_DIRECTORIES
,类似于您对其他数据库对象的其他 USER _ 视图。
对于目录,您有ALL_DIRECTORIES
和DBA_DIRECTORIES
。第一个,列出了您有权访问的目录。
您只需使用GRANT
将目录的权限授予另一个架构