PL/SQL操作foobar622UNIX/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
今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ユーザーを3番目の「共有」オペレーティングシステムグループに追加し、データベースを再起動してからディレクトリにsビットを追加します。
chgrp shared /path/utl_directory; chmod g+s /path/utl_directory;
。したがって、そのディレクトリ内のファイルは親ディレクトリのgidを継承し、ユーザーはそのファイルを読み取ることができます。ディレクトリでACLを使用すると、ユーザーは標準のPosix posix設定に関係なくファイルを読み取ることができます。
Oracleプロセス内でumaskを変更できるOracleパラメータ_trace_files_publicを使用します。最初に、このパラメータはログファイルに使用されます。