Создание прокси-сервера агента SQL Server
применимо к:SQL Server
В этой статье описывается, как создать прокси-сервер агента SQL Server в SQL Server с помощью SQL Server Management Studio или Transact-SQL.
Учетная запись прокси-сервера агента SQL Server определяет контекст безопасности, в котором может выполняться шаг задания. Каждый прокси-сервер соответствует учетным данным безопасности. Чтобы задать разрешения для определенного шага задания, создайте прокси-сервер с необходимыми разрешениями для подсистемы агента SQL Server, а затем назначьте этот прокси-сервер шагу задания.
В Управляемом экземпляре Azure SQLв настоящее время поддерживается большинство функций агента SQL Server, но не все. Дополнительные сведения см. в разделе отличия Управляемого экземпляра SQL Azure от SQL Server или ограничения заданий SQL Agent в Управляемом экземпляре SQL.
Ограничения
Перед созданием прокси-сервера необходимо создать учетные данные, если они еще недоступны.
Прокси-серверы агента SQL Server используют учетные данные для хранения сведений об учетных записях пользователей Windows. Пользователь, указанный в учетных данных, должен иметь разрешение "Доступ к этому компьютеру из сети" (SeNetworkLogonRight
) на компьютере, на котором работает SQL Server.
Агент SQL Server проверяет доступ подсистемы для прокси-сервера и предоставляет доступ к прокси-серверу при каждом запуске шага задания. Если прокси-сервер больше не имеет доступа к подсистеме, шаг задания завершается сбоем. В противном случае агент SQL Server олицетворяет пользователя, указанного в прокси-сервере, и запускает шаг задания. Для списка прокси-подсистем см. sp_grant_proxy_to_subsystem.
Создание прокси-сервера не изменяет разрешения для пользователя, указанного в учетных данных прокси-сервера. Например, можно создать прокси-сервер для пользователя, который не имеет разрешения на подключение к экземпляру SQL Server. В этом случае шаги задания, использующие этот прокси-сервер, не могут подключиться к SQL Server.
Если пользователю предоставлен доступ к прокси-серверу или он принадлежит к любой роли с доступом к прокси-серверу, то он может использовать прокси-сервер на этапе выполнения задания.
Разрешения
Только члены предопределенной роли сервера sysadmin имеют разрешение на создание, изменение или удаление учетных записей прокси-сервера. Пользователи, не являющиеся членами предопределенной роли сервера sysadmin, должны быть добавлены в одну из следующих предопределенных ролей агента SQL Server в базе данных msdb
для использования прокси-серверов: SQLAgentUserRole, SQLAgentReaderRoleили SQLAgentOperatorRole.
Для создания учетных данных в дополнение к прокси требуется разрешение ALTER ANY CREDENTIAL
.
Использование SQL Server Management Studio (SSMS)
В обозревателе объектоввыберите значок плюс, чтобы расширить сервер, где вы хотите создать прокси-сервер для агента SQL Server.
Выберите знак "плюс", чтобы развернуть SQL Server Agent.
Щелкните правой кнопкой мыши папку прокси-сервера и выберите Создать прокси-сервер.
В диалоговом окне новая прокси-учетная запись на странице общие введите имя прокси-учетной записи в поле имя прокси-учетной записи.
В поле имени учетных данных введите имя учетных данных безопасности, которые будет использовать прокси-аккаунт.
В поле описание введите описание учетной записи прокси-сервера.
В разделе "Активный" для следующих подсистемвыберите соответствующую подсистему или несколько подсистем для этого прокси.
На странице субъектов добавьте или удалите имена входа или роли, чтобы предоставить или удалить доступ к прокси-аккаунту.
По завершении нажмите кнопку ОК.
Используйте Transact-SQL
Следующий скрипт создает учетные данные с именем CatalogApplicationCredential
, создает прокси-сервер Catalog application proxy
и назначает учетные данные CatalogApplicationCredential
ему и предоставляет прокси-серверу доступ к подсистеме сценариев ActiveX.
Создание учетных данных
CatalogApplicationCredential
.USE msdb; GO CREATE CREDENTIAL CatalogApplicationCredential WITH IDENTITY = 'REDMOND/TestUser', SECRET = 'G3$1o)lkJ8HNd!'; GO
Создайте прокси-сервер
Catalog application proxy
и назначьте учетные данныеCatalogApplicationCredential
ему.EXECUTE dbo.sp_add_proxy @proxy_name = 'Catalog application proxy', @enabled = 1, @description = 'Maintenance tasks on catalog application.', @credential_name = 'CatalogApplicationCredential'; GO
Предоставьте прокси-серверу
Catalog application proxy
доступ к подсистеме сценариев ActiveX.EXECUTE dbo.sp_grant_proxy_to_subsystem @proxy_name = N'Catalog application proxy', @subsystem_id = 2; GO