是什么决定了使用 UTL_FILE 的 Oracle 作业的 UMASK?

是什么决定了使用 UTL_FILE 的 Oracle 作业的 UMASK?

PL/SQL 作业foob​​ar622使用以下 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

现在foob​​ar622permission 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。最初此参数用于日志文件。

相关内容