Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запустить job под юзером без привилегии dba, Запустить job под юзером без привилегии 
V
    Опции темы
annika
Дата 5.7.2006, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 5.7.2006

Репутация: нет
Всего: нет



Сервер Oracle 8i, клиентская часть oracle forms 6i.
На сервере есть job, каждый день в 23.00 запускает на выполнение процедуру, которая апдейтит определенные строки в таблице TABLE. 
Когда я создавала его, я зашла в sql navigator под юзером - владельцем схемы, т.е. у которого привилегии dba по умолчанию, в навигаторе есть job manager, кнопка в тулбаре, в нем создала, все работает.
Теперь начальник хочет, чтобы:
есть тетки, которые работают с данной таблицей (через форму естессно), так вот чтобы они могли принудительно запускать джоб на выполнение, ставить ему свое время выполнения и т.д.
Нашла как сделать, через пакет у sys'а dbms_job, процедура в нем называется change.
Т.е. упрощенно говоряпри нажатии теткой кнопки будет выполняться 
 
Код
begin
  dbms_job.change (номер джоба, время выполнения и т.д);
 end;

Так вот, эту процедуру может запускать на выполнение только юзер с привилегией дба.
Прочитала это в документации, и кроме того я смотрела трассировку, в момент запуска dbms_job.change происходит апдейт таблицы sys.job$, естессно юзер не дба это сделать не сможет.
Пробовала раздать только права на один пакет dbms_job, а никакие привилегии дба не трогать. Нифига не идет, тока когда юзер дба.
Пробовала под этим юзером-теткой сделать вызов новой процедуры в другом пакете, на который они имеют права (уже давно имеют, здесь без косяков), а в этой новой процедуре вызывать dbms_job.change.
Нифига.
Во всех случаях вываливается ошибка вида
ORA-23421: job number 323 is not a job in the job queue
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86
ORA-06512: at "SYS.DBMS_IJOB", line 514
ORA-06512: at "SYS.DBMS_JOB", line 253
ORA-06512: at line 2

Т.е. в очереди джобов такого джоба нет.
Зашла под теткиным юзером USER1 в навигаторе, попробовала открыть джоб менеджер. И правда, в окне отображается так, что ни одного джоба на сервере нет.
Заходишь под юзером дба - видишь в окне при нажатии кнопки джоб менеджера все 7 джобов, висящие в данный момент (созданные по другим поводам).
Раздаешь юзеру USER1 дба, открываешь под ним джоб менеджер, видишь все 7 джобов.
Убираешь у  USER1  дба - очередь из джобов пустая.
Предложила начальнику дать какой-нить одной из теток-юзеров привилегию дба, и пусть только она имеет право запускать джоб  (потому что теткам это вообще-то не нужно как они сами сказали, это начальник хочет чтобы все было максимально красиво),
хотя и понимаю что это неправильно, левому юзеру какому-то раздавать дба.
Начальник сказал - нет уж, так не надо, можно как-то по-другому, только я точно не помню как smile
Ребят, кто-нить может подсказать, как сделать в этом случае?
  

Это сообщение отредактировал(а) annika - 5.7.2006, 15:02
PM MAIL   Вверх
LSD
Дата 5.7.2006, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Создай в схеме того пользователя которым создавала JOB процедуру по запуску с AUTHID DEFINER и дай пользователю теток на нее EXECUTE


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
annika
Дата 6.7.2006, 08:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 5.7.2006

Репутация: нет
Всего: нет



Блин, в схеме того, КОТОРЫМ джоб создавала. А джоб был создан не владельцем схемы...
Все получилось, спасибо. 

Это сообщение отредактировал(а) annika - 6.7.2006, 08:03
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0612 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.