У меня на сервере MSSQL 2005 есть работа, которую я хочу разрешить запускать любому пользователю базы данных.
Я не беспокоюсь о безопасности, так как входные данные для фактической работы задания поступают из таблицы базы данных. Просто запуск задания без добавления записей в эту таблицу ничего не даст.
Я просто не могу найти, как предоставить публичные разрешения на работу.
Есть какой-либо способ сделать это? Единственное, о чем я могу думать в этот момент, - это постоянно выполнять работу (или по расписанию), но так как для этого нужно выполнять какую-либо реальную работу редко (возможно, раз в несколько месяцев), и я хочу, чтобы работа была сделано, как только оно существует, это не кажется оптимальным решением.
источник
with execute as 'loginname'
, это работает?В основном, разрешения необходимы для
sp_start_job
(см. Раздел разрешений).Роли описаны в разделе « Роли фиксированной базы данных агента SQL Server » (ссылка приведена выше).
Редактировать, январь 2012
Через 2 года после анонимного отката я ответил ...
Прочитайте вопрос. Это говорит
тогда
а также
Так что комментарии ОП ниже противоречат вопросу
источник
Это позволит конкретному пользователю (user1) запускать любое задание агента Sql.
Члены SQLAgentUserRole и SQLAgentReaderRole могут запускать только те задания, которые им принадлежат. Члены SQLAgentOperatorRole могут запускать все локальные задания, включая те, которые принадлежат другим пользователям.
USE [msdb] GO CREATE USER [user1] FOR LOGIN [user1] GO USE [msdb] GO ALTER ROLE [SQLAgentOperatorRole] ADD MEMBER [user1] GO
источник
У меня есть аналогичная необходимость дать разрешение моему оператору вручную выполнять задачи агента SQL Server. Я следовал за этим постом Агент SQL Server Fixed Database Role для предоставления роли SQLAgentOperatorRole.
Надеюсь, что это поможет решить ваше дело.
источник