Привилегии для статистической работы Oracle 9i - PullRequest
1 голос
/ 09 апреля 2010

Мы хотим перенести наш автоматический сбор статистики из внешнего скрипта в планировщик заданий 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
...

Часть, которую я не получаю, состоит в том, что пользователь, под которым я отправил задание, имеет права на сбор статистики базы данных - если я запускаю команду вручную, это работает. Мне было любопытно, игнорировал ли Oracle какие-либо привилегии на основе ролей, которые пользователь имел при создании процедур, поэтому я непосредственно предоставил пользователю АНАЛИЗ ЛЮБОГО, но все еще без кубиков.

Существуют ли какие-либо другие разрешения, которые я должен был бы предоставить пользователю непосредственно для выполнения этой работы? Я бы предпочел не создавать отдельную работу для каждой схемы (что работает, если я отправляю работу под владельцем схемы).

1 Ответ

0 голосов
/ 26 апреля 2011

Какая у вас версия 9i. Я вспоминаю, как читал в ветке AskTom о том, что у 9.2.0.1 возникла проблема, и мне нужно было выбрать грант (я посмотрю в теме)

Также, поскольку вы запускаете статистику БД, а не подпрограмму, АНАЛИЗИТЕ ЛЮБОЙ СЛОВАРЬ

...