Поделиться через


агент 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 автоматически имеют доступ к этому прокси-серверу, даже если доступ к proxy_A ним не был предоставлен явным образом. Это может иметь последствия для безопасности, которые рассматриваются в следующих разделах о каждой роли.

Разрешения SQLAgentUserRole

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

Внимание

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

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

Действие Операторы Локальные задания (только принадлежащие задания) Расписания заданий (только собственные расписания) Прокси
Создать/изменить/удалить No Да

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

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

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

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

Разрешения SQLAgentReaderRole

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

Внимание

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

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

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

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

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

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

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

Разрешения SQLAgentOperatorRole

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

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

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

Внимание

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

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

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

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

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

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

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

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

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