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

SQL Server 2005 вводит следующие предопределенные роли базы данных 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.

Действие

Операторы

Локальные задания

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

Расписания заданий

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

Учетные записи-посредники

Создать/изменить/удалить

Нет

Да 1

Да

Нет

Просмотреть список (перечислить)

Да 2

Да

Да

Да 3

Включить/выключить

Нет

Да

Да

Неприменимо

Просмотреть свойства

Нет

Да

Да

Нет

Выполнить/остановить/начать

Неприменимо

Да

Неприменимо

Неприменимо

Просмотреть журнал заданий

Неприменимо

Да

Неприменимо

Неприменимо

Удалить журнал заданий

Неприменимо

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

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

Действие

Операторы

Локальные задания

Многосерверные задания

Расписания заданий

Учетные записи-посредники

Создать/изменить/удалить

Нет

Да 1 (только собственные задания)

Нет

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

Нет

Просмотреть список (перечислить)

Да 2

Да

Да

Да

Да 3

Включить/выключить

Нет

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

Нет

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

Неприменимо

Просмотреть свойства

Нет

Да

Да

Да

Нет

Редактировать свойства

Нет

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

Нет

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

Нет

Выполнить/остановить/начать

Неприменимо

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

Нет

Неприменимо

Неприменимо

Просмотреть журнал заданий

Неприменимо

Да

Да

Неприменимо

Неприменимо

Удалить журнал заданий

Неприменимо

Нет 4

Нет

Неприменимо

Неприменимо

Присоединить/отсоединить

Неприменимо

Неприменимо

Неприменимо

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

Неприменимо

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

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

Действие

Предупреждения

Операторы

Локальные задания

Многосерверные задания

Расписания заданий

Учетные записи-посредники

Создать/изменить/удалить

Нет

Нет

Да 2 (только собственные задания)

Нет

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

Нет

Просмотреть список (перечислить)

Да

Да 1

Да

Да

Да

Да

Включить/выключить

Нет

Нет

Да 3

Нет

Да 4

Неприменимо

Просмотреть свойства

Да

Да

Да

Да

Да

Да

Редактировать свойства

Нет

Нет

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

Нет

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

Нет

Выполнить/остановить/начать

Неприменимо

Неприменимо

Да

Нет

Неприменимо

Неприменимо

Просмотреть журнал заданий

Неприменимо

Неприменимо

Да

Да

Неприменимо

Неприменимо

Удалить журнал заданий

Неприменимо

Неприменимо

Да

Нет

Неприменимо

Неприменимо

Присоединить/отсоединить

Неприменимо

Неприменимо

Неприменимо

Неприменимо

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

Неприменимо

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

См. также

Справочник

sp_update_job (Transact-SQL)

sp_update_schedule (Transact-SQL)

sp_notify_operator (Transact-SQL)

sp_purge_jobhistory (Transact-SQL)

Основные понятия

Обеспечение безопасности агента SQL Server