Привилегии для статистической работы 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 есть проблема, и мне нужно выбрать грант (я посмотрю эту ветку)
Кроме того, поскольку вы запускаете статистику БД, а не подпрограмму, АНАЛИЗИРУЙТЕ ЛЮБОЙ СЛОВАРЬ