UTL_FILEを使用してOracle操作のUMASKを決定するにはどうすればよいですか?

UTL_FILEを使用してOracle操作のUMASKを決定するにはどうすればよいですか?

PL/SQL操作foob​​ar622UNIX/LINUX サーバーにファイルを書き込むには、次の Oracle ファイル I/O コマンドを使用します。

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ユーザーを3番目の「共有」オペレーティングシステムグループに追加し、データベースを再起動してからディレクトリにsビットを追加します。chgrp shared /path/utl_directory; chmod g+s /path/utl_directory;。したがって、そのディレクトリ内のファイルは親ディレクトリのgidを継承し、ユーザーはそのファイルを読み取ることができます。

  • ディレクトリでACLを使用すると、ユーザーは標準のPosix posix設定に関係なくファイルを読み取ることができます。

  • Oracleプロセス内でumaskを変更できるOracleパラメータ_trace_files_publicを使用します。最初に、このパラメータはログファイルに使用されます。

関連情報