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


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

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

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

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

(только расписания собственных заданий)
Прокси
Создать/изменить/удалить No Да 1 Да Нет
Просмотреть список (перечислить) Да 2 Да Да Да 3
Включить/выключить No Да Да Неприменимо
Просмотреть свойства No Да Да Нет
Выполнить/остановить/начать Нет данных Да Неприменимо Неприменимо
Просмотреть журнал заданий Нет данных Да Неприменимо Неприменимо
Удалить журнал заданий Нет данных Нет 4 Неприменимо Неприменимо
Подключение/отключение Неприменимо Неприменимо Да Неприменимо

1 Не удается изменить владение заданием.

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

3 Список прокси-серверов, доступных только в диалоговом окне "Свойства шага задания" в Среде Management Studio.

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

Разрешения SQLAgentReaderRole

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

Внимание

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

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

Действие Операторы Локальные задания Многосерверные задания Расписания заданий Прокси
Создать/изменить/удалить No Да 1 (только принадлежащие задания) No Да (только расписания собственных заданий) No
Просмотреть список (перечислить) Да 2 Да Да Да Да 3
Включить/выключить No Да (только собственные задания) No Да (только расписания собственных заданий) Нет данных
Просмотреть свойства No Да Да Да Нет
Изменить свойства No Да (только собственные задания) No Да (только расписания собственных заданий) No
Выполнить/остановить/начать Нет данных Да (только собственные задания) No Неприменимо Неприменимо
Просмотреть журнал заданий Нет данных Да Да Неприменимо Неприменимо
Удалить журнал заданий Нет данных Нет 4 No Неприменимо Неприменимо
Подключение/отключение Неприменимо Нет данных Неприменимо Да (только расписания собственных заданий) Нет данных

1 Не удается изменить владение заданием.

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

3 Список прокси-серверов, доступных только в диалоговом окне "Свойства шага задания" в Среде Management Studio.

4 Члены 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 ServerAgentdatabaseroles, рассмотрите последствия безопасности. Члены роли SQLAgentOperatorRole автоматически являются членами ролей SQLAgentUserRole и SQLAgentReaderRole. Это означает, что члены роли SQLAgentOperatorRole имеют доступ ко всем учетным записям-посредникам агента SQL Server, которые были предоставлены роли SQLAgentUserRole или SQLAgentReaderRole, и могут использовать эти учетные записи.

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

Действие видны узлы Операторы Локальные задания Многосерверные задания Расписания заданий Прокси
Создать/изменить/удалить No No Да 2 (только принадлежащие задания) No Да (только расписания собственных заданий) No
Просмотреть список (перечислить) Да Да 1 Да Да Да Да
Включить/выключить No No Да 3 No Да 4 Нет данных
Просмотреть свойства Да Да Да Да Да Да
Изменить свойства No No Да (только собственные задания) No Да (только расписания собственных заданий) No
Выполнить/остановить/начать Неприменимо Неприменимо Да Нет Неприменимо Неприменимо
Просмотреть журнал заданий Неприменимо Неприменимо Да Да Неприменимо Неприменимо
Удалить журнал заданий Неприменимо Неприменимо Да Нет Неприменимо Неприменимо
Подключение/отключение Неприменимо Нет данных Нет данных Неприменимо Да (только расписания собственных заданий) Нет данных

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

2 Не удается изменить владение заданием.

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

4 члены 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)