2010-04-08 2 views
1

외부 스크립트의 자동 통계 수집을 Oracle 9i의 작업 스케줄러로 이동하려고합니다. 그것은 매우 간단한 작업, 그리고 코드는 기본적으로 다음과 같습니다Oracle 9i 통계 작업에 대한 권한

DBMS_JOB.SUBMIT( 
    JOB => <output variable>, 
    WHAT => 'DBMS_STATS.GATHER_DATABASE_STATS(
     cascade => TRUE, options => ''GATHER AUTO'');', 
    NEXT_DATE => <start date>, 
    INTERVAL => 'SYSDATE + 7'); 

작업이 성공적으로 실행 생성됩니다,하지만 오류와 함께 실패 :

ORA-12012: error on auto execute of job 25 
ORA-20000: Insufficient privileges to analyze an object in Database 
ORA-06512: at "SYS.DBMS_STATS", line 11015 
... 

내가하지 않는 부분은 작업을 제출 한 사용자가 해당 데이터베이스 통계를 수집 할 수있는 권한을 가지고 있는지 확인하십시오. 수동으로 명령을 실행하면 올바르게 작동합니다. 오라클이 프로 시저를 만드는 것과 같은 역할 기반 권한을 무시했다면 사용자가 직접 ANALYZE AN ANY,하지만 주사위를주지 말아야한다는 것이 궁금했습니다.

이 작업을 수행 할 수 있도록 사용자에게 직접 부여해야하는 다른 권한이 있습니까? 각 스키마에 대해 별도의 작업을 수행하지 않아도됩니다 (스키마 소유자가 작업을 제출하면 작동합니다).

+0

어떤 사용자를 분석 서브 루틴하지 DB 통계를 실행하고 있기 때문에 또한

을 (내가 스레드를 볼 것이다) 이거 야? 그 직업을 위해 특별히 만든 것? – APC

+0

작업을 위해 특별히 제작 된 것은 아니지만이 사용자입니다. 사용자는 모든 스키마에서 다양한 작업을 수행해야하므로 모든 것을 수행 할 수있는 시스템 권한을 부여하는 사용자 지정 역할이 있습니다. 그것이 오라클이 역할 기반 권한을 무시하고 있다고 생각한 이유입니다. 그렇지 않으면 작업이 불충분 한 액세스로 인해 문제가 없어야하기 때문입니다. – Yoten

답변

0

어떤 버전의 9i를 사용하고 있습니까? 나는 문제가 발생 9.2.0.1에 대해 AskTom 스레드에서 읽고 보조금이 선택해야 할 필요가 기억합니다 당신은 어떤 DICTIONARY에게

관련 문제