2014-10-19 2 views
0

말에 올바른 사용 권한을 부여, 내가 오라클 디렉토리가와 '스캇'다음UTL_FILE 방법

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

, 나는 쉘 스크립트를 가지고 데이터베이스에서 BLOB 데이터를 변환 UTL_FILE를 사용 ExtractData.sh 말을 사용자에게 부여 위의 디렉토리에 저장된 실제 파일 dataFolder.

그러나 서버의 보안 문제로 인해이 /data/ 디렉토리에는 770 권한 만 주어 지므로 내 스크립트에서 파일을 디렉토리에 쓸 수 없습니다.

그러나 권한을 777으로 변경하면 스크립트가 파일을 성공적으로 씁니다.

허락을 받아서 해결하는 방법 777?

+0

유닉스와 리눅스는 서로 다른 두 가지입니다. 그들을 혼동하지 마십시오. 특히 _shell 스크립트 _에 대해 정말로 묻고있는 경우에 특히 그렇습니다. –

+0

왜 이것이 쉘 스크립트입니까? 모든 기능이 PL/SQL로 표시되므로 아마도 저장 프로 시저를 호출하는 것일 수 있습니다. 왜 그 전화를 데이터베이스에 가져 오지 않을까요? – APC

+0

예, PL/SQL을 호출하고 다른 작업을 수행하는 스크립트 – bigbang

답변

2

디렉토리 소유자를 언급하지 않았습니다.

oracle 또는 osoper 또는 dba 그룹에서 소유 한 디렉토리를 사용하면 777 권한이 필요하지 않습니다. 분명히 디렉토리는 루트 또는 다른 사용자가 소유하고 있으므로 소유자 및 그룹 비트가 도움이되지 않습니다.

chown을 사용하여 소유권을 변경할 수 있습니다.

chown oracle:osoper /data 

그냥 당신이 따라 privs 및을 조정해야합니다 소유권을 변경하는 경우,/데이터에 액세스하는 다른 프로그램을 알고 있는지 확인하십시오.

+0

이 사용자를 oracle : osper로 폴더 그룹 소유자에게 추가 할 수 있습니까? – bigbang

+0

예를 들어, oracle : osper를 그룹에 추가하면 폴더에 대한 액세스 권한이있는 'admins'가됩니다. 이 명령이 맞습니까? usermod -a -G 관리자 오라클 : osoper – bigbang

관련 문제