Привилегии для статистической работы 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
...

Часть, которую я не получаю, состоит в том, что пользователь, под которым я отправил задание, имеет права на сбор статистики базы данных - если я запускаю команду вручную, это работает. Мне было любопытно, игнорирует ли Oracle какие-либо привилегии, основанные на ролях, которые пользователь имел при создании процедур, поэтому я непосредственно предоставил пользователю ANALYZE ANY, но все еще не выпал из игры.

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

1 ответ

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

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

Другие вопросы по тегам