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

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

Важно!

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

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

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

Предоставление доступа к агенту SQL Server

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

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

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

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

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

Рекомендации

Чтобы повысить защищенность системы безопасности агента SQL Server, следуйте следующим правилам:

  • создавайте специально выделенные учетные записи-посредники, и для выполнения шагов заданий пользуйтесь только ими;

  • предоставляйте разрешения только необходимым учетным записям-посредникам. Предоставляйте только те разрешения, которые действительно необходимы для выполнения шагов задания, которому назначена данная учетная запись-посредник;

  • Не запускайте службу агента SQL Server с использованием учетной записи Microsoft Windows, которая является участником группы Администраторы Windows.

  • Посредник не может быть безопаснее хранилища учетных данных SQL Server.

  • Если пользовательские операции записи могут создавать события в журнале событий NT, то они могут создавать предупреждения через агент SQL Server.

  • Не следует указывать учетную запись администратора NT в качестве учетной записи службы или учетной записи-посредника.

  • Обратите внимание, что агент SQL Server и SQL Server имеют доступ к ресурсам друг друга. Эти две службы разделяют пространство одного процесса, а агент SQL Server является пользователем sysadmin для службы SQL Server.

  • Когда TSX регистрируется в MSX, пользователи sysadmin в этих системах MSX получают полный контроль над целевым экземпляром TSX SQL Server.

  • ACE представляет собой расширение, которое ссылаться само на себя. ACE вызывается Chainer ScenarioEngine.exe (также называется Microsoft.SqlServer.Chainer.Setup.exe) или может быть вызван другим процессом на сервере.

  • ACE зависит от следующих библиотек конфигурации DLL, принадлежащих SSDP, поскольку эти API библиотек DLL вызываются ACE:

    • SCO — Microsoft.SqlServer.Configuration.Sco.dll, содержащий новые проверки SCO для виртуальных учетных записей;

    • Кластер — Microsoft.SqlServer.Configuration.Cluster.dll;

    • SFC — Microsoft.SqlServer.Configuration.SqlConfigBase.dll;

    • Расширение — Microsoft.SqlServer.Configuration.ConfigExtension.dll.

См. также

Использование стандартных ролей
Хранимая процедура Хранимая процедура sp_addrolemember (Transact-SQL)
sp_droprolemember (Transact-SQL)
Защита и обеспечение безопасности (ядро СУБД)