Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Третьяков
|
|||
|---|---|---|---|
|
#18+
W2000 SP2, SQL 7.0 SP2 Есть хранимая процедура CREATE PROCEDURE us_Job_st AS exec msdb..sp_start_job @job_name = 'Test' Если администратор выполняет ее то все работает. Job 'Test' started successfully. Если обычный пользователь (только public) ее выполняет (ему разрешено ее выполнять хранимую процедуру) то пишет Server: Msg 14262, Level 16, State 1, Procedure sp_verify_job_identifiers, Line 61 The specified @job_name ('Test') does not exist. И действительно в msdb.dbo.sysjobs_view если смотреть под пользователем ничего нет, есть способ запустить обычному пользователю этот Job? Заранее признателен всем кто откликнется! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2002, 20:38 |
|
||
|
Третьяков
|
|||
|---|---|---|---|
|
#18+
Посмотрел в CREATE VIEW sysjobs_view AS SELECT * FROM msdb.dbo.sysjobs WHERE (owner_sid = SUSER_SID()) OR (ISNULL(IS_SRVROLEMEMBER(N'sysadmin'), 0) = 1) OR (ISNULL(IS_MEMBER(N'TargetServersRole'), 0) = 1) поставил коментарий на /*where*/ и все заработало, но не люблю я в чужом менять притом возможно это повлечет за собой ... . Есть ли правильный виход? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2002, 20:46 |
|
||
|
Третьяков
|
|||
|---|---|---|---|
|
#18+
BOL - Transact-SQL Reference - sp_start_job "A user who is not a member of the sysadmin role can use sp_start_job to start only the jobs he/she owns." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2002, 10:24 |
|
||
|
Третьяков
|
|||
|---|---|---|---|
|
#18+
Спасибо Glory! Я был невнимателен, это написано и здесь WHERE (owner_sid = SUSER_SID()) OR (ISNULL(IS_SRVROLEMEMBER(N'sysadmin'), 0) = 1) OR (ISNULL(IS_MEMBER(N'TargetServersRole'), 0) = 1) Но должен же быть выход, не менять же код sysjobs_view, единственный вариант который я вижу это, переписать sp_start_job (назвать sp_start_job1) и в ньом не проверять , sp_verify_job_identifiers, подразумевать что Job точно есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2002, 20:58 |
|
||
|
Третьяков
|
|||
|---|---|---|---|
|
#18+
А если все-таки сделать пользователя владельцем Job-a? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2002, 12:09 |
|
||
|
Третьяков
|
|||
|---|---|---|---|
|
#18+
Таких пользователей есть несколько, я реализую это так: 1. переписываем sp_start_job и называем sp_start_job1, в нет проверки sp_verify_job_identifiers, 2. CREATE PROCEDURE us_Job_st @id int AS if @i=1 exec msdb..sp_start_job1 @job_name = 'Test' if @i=2 exec msdb..sp_start_job1 @job_name = 'Test1' ... Я не думаю что это причинит ущерб безопасности. Еще раз спасибо Glory. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2002, 14:43 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32027166&tid=1823199]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 351ms |

| 0 / 0 |
