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


Фиксированные роли базы данных Агента SQL Server

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

Это важно

В Azure SQL Managed Instanceв настоящее время поддерживается большинство функций агента 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.

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

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

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

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

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

Разрешения SQLAgentReaderRole

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

Это важно

Члены 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. Только параметры, указывающие имя или идентификатор задания или расписания, и @enabled параметр можно указать членами SQLAgentOperatorRole. Если они указывают другие параметры, выполнение этих хранимых процедур завершается ошибкой. Члены SQLAgentOperatorRole не могут изменить владение заданиями, чтобы получить доступ к заданиям, которым они еще не принадлежат.

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

Это важно

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