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


Создание прокси-сервера агента 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)

  1. В обозревателе объектоввыберите значок плюс, чтобы расширить сервер, где вы хотите создать прокси-сервер для агента SQL Server.

  2. Выберите знак "плюс", чтобы развернуть SQL Server Agent.

  3. Щелкните правой кнопкой мыши папку прокси-сервера и выберите Создать прокси-сервер.

  4. В диалоговом окне новая прокси-учетная запись на странице общие введите имя прокси-учетной записи в поле имя прокси-учетной записи.

  5. В поле имени учетных данных введите имя учетных данных безопасности, которые будет использовать прокси-аккаунт.

  6. В поле описание введите описание учетной записи прокси-сервера.

  7. В разделе "Активный" для следующих подсистемвыберите соответствующую подсистему или несколько подсистем для этого прокси.

  8. На странице субъектов добавьте или удалите имена входа или роли, чтобы предоставить или удалить доступ к прокси-аккаунту.

  9. По завершении нажмите кнопку ОК.

Используйте Transact-SQL

Следующий скрипт создает учетные данные с именем CatalogApplicationCredential, создает прокси-сервер Catalog application proxy и назначает учетные данные CatalogApplicationCredential ему и предоставляет прокси-серверу доступ к подсистеме сценариев ActiveX.

  1. Создание учетных данных CatalogApplicationCredential.

    USE msdb;
    GO
    
    CREATE CREDENTIAL CatalogApplicationCredential
        WITH IDENTITY = 'REDMOND/TestUser', SECRET = 'G3$1o)lkJ8HNd!';
    GO
    
  2. Создайте прокси-сервер 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
    
    
  3. Предоставьте прокси-серверу Catalog application proxy доступ к подсистеме сценариев ActiveX.

    EXECUTE dbo.sp_grant_proxy_to_subsystem
        @proxy_name = N'Catalog application proxy',
        @subsystem_id = 2;
    GO