oracle проблема с привилегиями dbms_scheduler - PullRequest
0 голосов
/ 19 апреля 2020

В моей БД я установил 2 схемы, schemaA и schemaB. В schemaA я создаю задание (jobA) и процедуру (procA) для установки аргументов и включения задания. Я проверяю поток в schemaA, и он работает правильно. В schemaB мне нужно вызвать schemaA.procA для запуска задания. Я предоставляю schemaB привилегии, необходимые для выполнения schemaA.procA, но возникает ошибка ORA-27486: недостаточно привилегий . Отладка procA Я нахожу исключение в начале инструкций dbms_scheduler (DBMS_SCHEDULER.PURGE_LOG (job_name => jobName);).

EDIT : Добавить информацию в соответствии с запросом в комментарии

VERSION : Oracle База данных 12 c Enterprise Edition, выпуск 12.2.0.1.0 - 64-разрядная версия

GRANT : system @ mydatabase

grant CREATE ANY JOB, CREATE EXTERNAL JOB , CREATE JOB to schemaA;

ПРОЦЕДУРА : schemaA @ mydatabase

procedure procA ...
...    
DBMS_SCHEDULER.PURGE_LOG(...);
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(...);
DBMS_SCHEDULER.SET_ATTRIBUTE(...);
DBMS_SCHEDULER.ENABLE(...);
...
end procA;

GRANT : schemaA @ mydatabase

grant execute on procA to schemaB

В procA есть другие операции, которые корректно выполняются до PURGE_LOG, которые вызывают исключение

1 Ответ

0 голосов
/ 24 апреля 2020

Инспекция других пользователей Я обнаружил, что мне не хватает одной системной привилегии:

MANAGE SCHEDULER

Предоставляя ее из sys, procA успешно запускается как из schemaA, так и из SchemaB

...