0

たとえば、Oracleディレクトリがあり、ユーザー「scott」に付与されているとします

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

次に、データベースから上記のディレクトリに保存されている物理ファイルにデータを変換するためExtractData.shに使用するシェルスクリプトを作成しました。UTL_FILEBLOBdataFolder

ただし、サーバーのセキュリティ上の懸念により、この/data/ディレクトリには許可のみが与えられ770ているため、スクリプトがファイルをディレクトリに書き込むことができません。

しかし、パーミッションを に変更すると777、スクリプトは正常にファイルを書き込みます。

777許可を与えないことでこれを解決するにはどうすればよいですか?

4

1 に答える 1

2

ディレクトリの所有者に言及しませんでした。

Oracle または osoper または dba グループが所有するディレクトリを使用すると、777 のアクセス許可は必要ありません。どうやらディレクトリはルートまたは他のユーザーが所有しているため、所有者とグループのビットは役に立ちません。

chown所有権の変更に使用できます。

chown oracle:osoper /data

/data にアクセスしている他のプログラムに注意してください。所有権を変更する場合は、それに応じて特権を調整してください。

于 2014-10-19T06:53:24.033 に答える