2011-04-11 2 views

답변

4

당신이 오라클 디렉토리 오브젝트 (CREATE DIRECTORY ...)에 대해 이야기하는 경우, 당신은 DBA_*에 액세스 할 수없는 경우 있음을

SELECT grantee, table_name directory_name, privilege 
    FROM dba_tab_privs 
WHERE table_name = <<directory name>> 

주 대신 ALL_TAB_PRIVS 또는 USER_TAB_PRIVS을 사용할 수 있습니다.

운영 체제 디렉토리에 대해 이야기하는 경우 운영 체제 디렉토리에 해당하는 Oracle 디렉토리 객체를 만들어야합니다. 그런 다음 UTL_FILE 패키지의 FOPEN 메소드를 사용하여 디렉토리의 파일을 열려고 시도 할 수 있습니다. 성공하면 디렉토리에 대한 권한을가집니다. 그렇지 않으면 예외가 발생합니다.

+0

답장을 보내 주셔서 감사합니다. – SouravM

+0

실제로 오라클 클라이언트가 내 시스템에 설치되어 있고 로컬 시스템에 디렉토리를 작성하여 파일을 쓰거나 읽을 수 있습니다. 오라클에서 가능합니다.보다 구체적으로 SQL 탐색기를 사용하여 Oracle 서버에 연결합니다 (10g) – SouravM

+1

@SouraM - 아니요. 데이터베이스에서 실행되는 PL/SQL은 클라이언트 시스템의 파일에 정상적으로 쓸 수 없습니다. 이는 거대한 보안 구멍이됩니다. 서버에서 클라이언트 시스템의 디렉토리를 마운트하려는 경우, 작동하도록 만들 수 있지만, 이는 예외적 인 설치입니다. 데이터베이스 서버에 파일을 작성하여 클라이언트 시스템으로 전송하거나 데이터베이스를 조회하고 파일을 작성하는 클라이언트 시스템에서 응용 프로그램을 실행하는 것이 훨씬 더 합리적입니다. –

1

선택 * DBA_TAB_PRIVS에서 어디 TABLE_NAME = 'your_directory'

관련 문제