Oracle dbms_job с неверным владельцем - PullRequest
3 голосов
/ 22 июня 2010

Хорошо, база данных на клиентском сайте, в которой есть записи dbms_job, где schema_user недействителен.(Похоже, это результат переноса схемы с другого компьютера с использованием exp / imp.)

Я бы хотел избавиться от этих заданий, но стандартная рабочая процедура говорит, что вы должны подключиться как владелецзадания для dbms_job.remove () it.

Я подумал, что может быть обходной путь, чтобы создать пользователя в этом случае, а затем использовать его для удаления задания.

Мысли?

Редактировать: Или даже альтернативно вносить прямые изменения в таблицу sys.job $ вместо того, чтобы проходить через интерфейс dbms_job?

1 Ответ

4 голосов
/ 22 июня 2010

Существует пакет, принадлежащий SYS, который называется DBMS_IJOB. Это предлагает практически те же функции, что и DBMS_JOB, но позволяет нам манипулировать заданиями, принадлежащими другим пользователям.

Если ваше мошенническое задание имеет номер 23, то эта команда должна его убить:

SQL>  exec dbms_ijob.remove(23)

По умолчанию привилегии для этого пакета не предоставляются другим пользователям, поэтому для его выполнения необходимо подключиться как SYS. И не забудьте совершить изменение!

...