授予UTL_FILE方法正确的权限

时间:2014-10-19 06:42:44

标签: oracle file-permissions utl-file

说,我有一个oracle目录并被授予用户'scott'

CREATE OR REPLACE DIRECTORY dataFolder AS '/data/';
GRANT READ, WRITE ON DIRECTORY dataFolder TO scott;    

然后,我有一个shell脚本说ExtractData.sh,它使用UTL_FILEBLOB数据从数据库转换为存储在上面目录dataFolder中的物理文件。

但是,由于服务器中的安全性问题,此/data/目录仅被授予770权限,因此导致我的脚本无法将文件写入目录。

但是,当我将权限更改为777时,脚本会成功写入文件。

如何通过不授予777权限来解决这个问题?

1 个答案:

答案 0 :(得分:2)

您没有提及目录的所有者。

使用oracle拥有的目录或osoper或dba组中的目录,您不需要777权限。显然,该目录由root或其他用户拥有,因此所有者和组位对您没有帮助。

您可以使用chown更改所有权。

chown oracle:osoper /data

只需确保您知道访问/数据的其他程序,如果您更改所有权,请务必相应地调整权限。