Предопределенные роли базы данных агента SQL Server

Применимо к: SQL Server Управляемый экземпляр SQL Azure

Важно!

В Управляемом экземпляре Azure SQL в настоящее время поддерживается большинство функций агента SQL Server (но не все). Подробные сведения см. в статье Различия в T-SQL между Управляемым экземпляром SQL Azure и SQL Server.

SQL Server имеет следующие предопределенные роли базы данных msdb, предоставляющие администраторам возможности более точного управления доступом к агенту SQL Server. Далее приводятся роли, в порядке от имеющих наименьшие права к имеющим большие права доступа.

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

Если пользователи, не являющиеся участниками одной из этих ролей, подключены к серверу SQL Server в SQL Server Management Studio, то узел агента SQL Server в обозревателе объектов не виден. Для использования агента SQL Server пользователь должен быть участником одной из этих предопределенных ролей базы данных или участником предопределенной роли сервера sysadmin.

Разрешения предопределенных ролей базы данных агента SQL Server

Разрешения роли базы данных агента SQL Server имеют вложенную структуру: роли с более широкими правами наследуют разрешения ролей с менее широкими правами на объекты агента SQL Server (включающие в себя предупреждения, операторы, задания, расписания и учетные записи-посредники). Например, если членам роли с наименее широкими правами SQLAgentUserRole предоставлен доступ к учетной записи-посреднику proxy_A, члены ролей SQLAgentReaderRole и SQLAgentOperatorRole автоматически имеют доступ к этой учетной записи, даже если доступ не был им явно предоставлен. Это может вызывать некоторые проблемы с безопасностью, которые обсуждаются в следующих разделах, где рассматривается каждая из указанных ролей.

Разрешения роли SQLAgentUserRole

РольSQLAgentUserRole имеет наименьшие привилегии из всех предопределенных ролей базы данных агента SQL Server. Она имеет разрешения только на операторы, локальные задания и расписания заданий. Члены роли SQLAgentUserRole имеют разрешения только на локальные задания и расписания заданий, которыми они владеют. Они не могут использовать многосерверные задания (задания с главным и целевым серверами) и изменять владение заданиями для получения доступа к заданиям, которыми не владеют в настоящее время. Члены роли SQLAgentUserRole могут просматривать список доступных учетных записей-посредников только в диалоговом окне Свойства шага задания среды SQL Server Management Studio. В обозревателе объектов среды SQL Server Management Studio членам роли SQLAgentUserRole виден только узел Задания.

Важно!

При предоставлении доступа к учетной записи-посреднику членам ролей базы данных агента SQL Server следует учитывать влияние этого на безопасность. Члены ролей SQLAgentReaderRole и SQLAgentOperatorRole автоматически являются членами роли SQLAgentUserRole. Это означает, что члены ролей SQLAgentReaderRole и SQLAgentOperatorRole имеют доступ ко всем учетным записям-посредникам агента SQL Server, которые были предоставлены роли SQLAgentUserRole, и могут использовать эти учетные записи.

В следующей таблице приводится сводка разрешений роли SQLAgentUserRole на объекты агента SQL Server.

Действие Операторы Локальные задания

(только собственные задания)
Расписания заданий

(только расписания собственных заданий)
прокси-серверы;
Создать/изменить/удалить нет Да

Нельзя изменить владельца задания.
Да нет
Просмотреть список (перечислить) Да

Можно получить список доступных операторов для использования в процедуре sp_notify_operator и в диалоговом окне Свойства задания среды Management Studio.
Да Да Да

Список учетных записей-посредников доступен только в диалоговом окне Свойства шага задания среды Management Studio.
Включить/выключить нет Да Да Неприменимо
Просмотреть свойства нет Да Да нет
Выполнить/остановить/начать Неприменимо Да Неприменимо Неприменимо
Просмотреть журнал заданий Неприменимо Да Неприменимо Неприменимо
Удалить журнал заданий Неприменимо Нет

Для удаления журнала принадлежащих им заданий членам роли SQLAgentUserRole должно быть явно предоставлено разрешение EXECUTE на процедуру sp_purge_jobhistory . Они не могут удалить журналы никаких других заданий.
Неприменимо Неприменимо
Присоединить/отсоединить Неприменимо Неприменимо Да Неприменимо

Разрешения SQLAgentReaderRole

РольSQLAgentReaderRole имеет все разрешения роли SQLAgentUserRole , а также разрешения на просмотр списка имеющихся многосерверных заданий, их свойств и их журнала. Члены этой роли могут также просматривать не только информацию о заданиях и расписаниях заданий, которыми они владеют, но и список всех имеющихся заданий, расписаний заданий и их свойств. Члены ролиSQLAgentReaderRole не могут изменять владельцев заданий для получения доступа к не принадлежащим им заданиям. В обозревателе объектов среды SQL Server Management Studio членам роли SQLAgentReaderRole виден только узел Задания.

Важно!

При предоставлении доступа к учетной записи-посреднику членам ролей базы данных агента SQL Server следует учитывать влияние этого на безопасность. Члены роли SQLAgentReaderRole автоматически являются членами роли SQLAgentUserRole. Это означает, что члены роли SQLAgentReaderRole имеют доступ ко всем учетным записям-посредникам агента SQL Server, которые были предоставлены роли SQLAgentUserRole, и могут использовать эти учетные записи.

В следующей таблице приводится сводка разрешений роли SQLAgentReaderRole на объекты агента SQL Server.

Действие Операторы Локальные задания Многосерверные задания Расписания заданий прокси-серверы;
Создать/изменить/удалить нет Да (только собственные задания)

Нельзя изменить владельца задания.
нет Да (только расписания собственных заданий) нет
Просмотреть список (перечислить) Да

Можно получить список доступных операторов для использования в процедуре sp_notify_operator и в диалоговом окне Свойства задания среды Management Studio.
Да Да Да Да

Список учетных записей-посредников доступен только в диалоговом окне Свойства шага задания среды Management Studio.
Включить/выключить нет Да (только собственные задания) нет Да (только расписания собственных заданий) Неприменимо
Просмотреть свойства нет Да Да Да нет
Изменение свойств нет Да (только собственные задания) нет Да (только расписания собственных заданий) нет
Выполнить/остановить/начать Неприменимо Да (только собственные задания) Нет Неприменимо Неприменимо
Просмотреть журнал заданий Неприменимо Да Да Неприменимо Неприменимо
Удалить журнал заданий Неприменимо Нет

Для удаления журнала принадлежащих им заданий членам роли SQLAgentReaderRole должно быть явно предоставлено разрешение EXECUTE на процедуру sp_purge_jobhistory . Они не могут удалить журналы никаких других заданий.
Нет Неприменимо Неприменимо
Присоединить/отсоединить Неприменимо Неприменимо Неприменимо Да (только расписания собственных заданий) Неприменимо

Разрешения роли SQLAgentOperatorRole

РольSQLAgentOperatorRole имеет наибольшие привилегии из всех предопределенных ролей базы данных агента SQL Server. Она имеет также все права ролей SQLAgentUserRole и SQLAgentReaderRole. Члены этой роли могут также просматривать свойства операторов и учетных записей-посредников, просматривать список доступных учетных записей-посредников и предупреждений на сервере.

Члены ролиSQLAgentOperatorRole имеют дополнительные разрешения на локальные задания и расписания. Они могут выполнять, останавливать или запускать все локальные задания, они могут удалять журнал заданий для любого локального задания на сервере. Они также могут включать и выключать все локальные задания и расписания на сервере. Для включения и выключения локальных заданий или расписаний члены этой роли должны использовать хранимые процедуры sp_update_job и sp_update_schedule. Члены роли SQLAgentOperatorRole могут указывать только параметры, задающие имя задания или расписания, либо идентификатор и параметр @enabled. Если они задают какие-либо другие параметры, выполнение хранимой процедуры завершается с ошибкой. Члены ролиSQLAgentOperatorRole не могут изменять владельцев заданий для получения доступа к не принадлежащим им заданиям.

В обозревателе объектов среды SQL Server Management Studio членам роли SQLAgentOperatorRole видны узлы Задания, Предупреждения, Операторы и Учетные записи-посредники. Членам этой роли не доступен только узел Журналы ошибок .

Важно!

При предоставлении доступа к учетной записи-посреднику членам ролей базы данных агента SQL Server следует учитывать влияние этого на безопасность. Члены роли SQLAgentOperatorRole автоматически являются членами ролей SQLAgentUserRole и SQLAgentReaderRole. Это означает, что члены роли SQLAgentOperatorRole имеют доступ ко всем учетным записям-посредникам агента SQL Server, которые были предоставлены роли SQLAgentUserRole или SQLAgentReaderRole, и могут использовать эти учетные записи.

В следующей таблице приводится сводка разрешений роли SQLAgentOperatorRole на объекты агента SQL Server.

Действие видны узлы Операторы Локальные задания Многосерверные задания Расписания заданий прокси-серверы;
Создать/изменить/удалить нет нет Да (только собственные задания)

Нельзя изменить владельца задания.
нет Да (только расписания собственных заданий) нет
Просмотреть список (перечислить) Да Да

Можно получить список доступных операторов для использования в процедуре sp_notify_operator и в диалоговом окне Свойства задания среды Management Studio.
Да Да Да Да
Включить/выключить нет Нет Да

Члены ролиSQLAgentOperatorRole могут включать и выключать не принадлежащие им локальные задания с помощью хранимой процедуры sp_update_job и заданием значений для параметров @enabled и @job_id (или @job_name). Если член этой роли определяет другие параметры для этой хранимой процедуры, выполнение завершится неудачно.
нет Да

Члены ролиSQLAgentOperatorRole могут включать и выключать не принадлежащие им расписания с помощью хранимой процедуры sp_update_schedule и заданием значений для параметров @enabled и @schedule_id (или @name). Если член этой роли определяет другие параметры для этой хранимой процедуры, выполнение завершится неудачно.
Неприменимо
Просмотреть свойства Да Да Да Да Да Да
Изменение свойств нет нет Да (только собственные задания) нет Да (только расписания собственных заданий) нет
Выполнить/остановить/начать Неприменимо Неприменимо Да Нет Неприменимо Неприменимо
Просмотреть журнал заданий Неприменимо Неприменимо Да Да Неприменимо Неприменимо
Удалить журнал заданий Неприменимо Неприменимо Да Нет Неприменимо Неприменимо
Присоединить/отсоединить Неприменимо Неприменимо Неприменимо Неприменимо Да (только расписания собственных заданий) Неприменимо

Назначение пользователям нескольких ролей

Члены предопределенной роли сервера sysadmin имеют доступ ко всем функциям агента SQL Server. Если пользователь не является членом роли sysadmin, но является членом нескольких предопределенных ролей базы данных агента SQL Server, важно помнить о вложенной модели разрешений этих ролей. Так как роли с более широкими разрешениями всегда содержат все разрешения, предоставленные ролям с менее широкими разрешениями, пользователь, являющийся членом нескольких ролей, автоматически имеет разрешения, связанные с ролью с наиболее широкими разрешениями из всех ролей, членом которых является пользователь.

См. также

Обеспечение безопасности агента SQL Server
sp_update_job (Transact-SQL)
sp_update_schedule (Transact-SQL)
sp_notify_operator (Transact-SQL)
sp_purge_jobhistory (Transact-SQL)