PL/SQL 作业foobar622使用以下 Oracle 文件 I/O 命令将文件写入 UNIX/LINUX 服务器:
UTL_FILE.FILE_OPEN
UTL_FILE.PUT_LINE
UTL_FILE.FILE_CLOSE
过去,这些文件具有以下权限:
-rw-r--r-- 1 User_foobar_101 UnixGroup_101 563343 Apr 25 00:22 foobar622_fz.sql
-rw-r--r-- 1 User_foobar_101 UnixGroup_101 563343 Apr 25 00:22 foobar622_fa.sql
-rw-r--r-- 1 User_foobar_101 UnixGroup_101 563343 Apr 25 00:22 foobar622_fb.sql
-rw-r--r-- 1 User_foobar_101 UnixGroup_101 563343 Apr 25 00:22 foobar622_fc.sql
-rw-r--r-- 1 User_foobar_101 UnixGroup_101 563343 Apr 25 00:22 foobar622_fd.sql
现在foobar622permission denied
使用这些权限写入:当我尝试在编辑器中打开文件时,出现错误。
-rw-r----- 1 Unknown+User Unknown+Group 563343 May 22 00:22 foobar622_fa.sql
-rw-r----- 1 Unknown+User Unknown+Group 563347 May 25 00:22 foobar622_fb.sql
-rw-r----- 1 Unknown+User Unknown+Group 563333 May 25 00:22 foobar622_fc.sql
-rw-r----- 1 Unknown+User Unknown+Group 563923 May 25 00:22 foobar622_fd.sql
如何恢复第一个默认权限?这是 Oracle 设置还是 UMASK 设置,还是什么?
答案1
你有这些选择。
将 oracle 用户添加到第三个“共享”操作系统组中,重新启动数据库并在目录上添加 s 位。
chgrp shared /path/utl_directory; chmod g+s /path/utl_directory;
。因此该目录中的文件从父目录继承 gid 并且您的用户将能够读取它们在目录上使用 ACL,无论标准 Posix posix 设置如何,您的用户都可以读取这些文件
使用 Oracle 参数 _trace_files_public,这可能会在 Oracle 进程内部更改 umask。最初此参数用于日志文件。