说,我有一个oracle目录并被授予用户'scott'
CREATE OR REPLACE DIRECTORY dataFolder AS '/data/';
GRANT READ, WRITE ON DIRECTORY dataFolder TO scott;
然后,我有一个shell脚本说ExtractData.sh
,它使用UTL_FILE
将BLOB
数据从数据库转换为存储在上面目录dataFolder
中的物理文件。
但是,由于服务器中的安全性问题,此/data/
目录仅被授予770
权限,因此导致我的脚本无法将文件写入目录。
但是,当我将权限更改为777
时,脚本会成功写入文件。
如何通过不授予777
权限来解决这个问题?
答案 0 :(得分:2)
您没有提及目录的所有者。
使用oracle拥有的目录或osoper或dba组中的目录,您不需要777权限。显然,该目录由root或其他用户拥有,因此所有者和组位对您没有帮助。
您可以使用chown
更改所有权。
chown oracle:osoper /data
只需确保您知道访问/数据的其他程序,如果您更改所有权,请务必相应地调整权限。