Créer un proxy SQL Server Agent

S’applique à :SQL Server

Cette rubrique explique comment créer un proxy SQL Server Agent dans SQL Server en utilisant SQL Server Management Studio ou Transact-SQL.

Un compte proxy de SQL Server Agent définit un contexte de sécurité dans lequel une étape de travail peut être exécutée. Chaque proxy correspond à des informations d'identification de sécurité. Pour définir des autorisations pour une étape de travail particulière, créez un proxy possédant les autorisations requises pour un sous-système de SQL Server Agent, puis attribuez ce proxy à l’étape de travail.

Dans Azure SQL Managed Instance, la plupart, mais pas toutes les fonctionnalités SQL Server Agent sont actuellement prises en charge. Pour plus d’informations, consultez Différences T-SQL d’Azure SQL Managed Instance par rapport à SQL Server ou Limitations des travaux SQL Agent dans SQL Managed instance.

Avant de commencer

Limitations et restrictions

  • Vous devez créer des informations d'identification avant de créer un proxy si elles ne sont pas disponibles.

  • Les proxys de l'AgentSQL Server utilisent les informations d'identification pour stocker les informations relatives aux comptes d'utilisateur Windows. L’utilisateur spécifié dans les informations d’identification doit avoir l’autorisation « Accéder à cet ordinateur à partir du réseau » (SeNetworkLogonRight) sur l’ordinateur où SQL Server s’exécute.

  • SQL Server vérifie l'accès au sous-système pour un proxy et donne accès au proxy à chaque exécution de l'étape de travail. Si le proxy n'a plus accès au sous-système, l'étape de travail échoue. Sinon, l'Agent SQL Server emprunte l'identité de l'utilisateur spécifié dans le proxy et exécute l'étape de travail. Pour obtenir la liste des sous-systèmes proxy, consultez sp_grant_proxy_to_subsystem.

  • La création d'un proxy ne modifie pas les autorisations de l'utilisateur spécifié dans l'information d'identification du proxy. Vous pouvez par exemple créer un proxy pour un utilisateur qui n’est pas autorisé à se connecter à une instance SQL. Dans ce cas, les étapes de travail qui utilisent ce proxy ne sont pas en mesure de se connecter à SQL Server.

  • Si la connexion de l'utilisateur a accès au proxy ou que l'utilisateur appartient à un rôle qui y a accès, l'utilisateur peut recourir au proxy dans une étape de travail.

Sécurité

Autorisations

  • Seuls les membres du rôle de serveur fixe sysadmin ont l'autorisation de créer, modifier ou supprimer des comptes proxy. Les utilisateurs qui ne sont pas des membres du rôle serveur fixe sysadmin doivent être ajoutés à l’un des rôles de bases de données fixes SQL Server Agent suivants dans la base de données msdb pour utiliser des proxys : SQLAgentUserRole, SQLAgentReaderRole ou SQLAgentOperatorRole.

  • Nécessite l’autorisation ALTER ANY CREDENTIAL lors de la création d’informations d’identification en plus du proxy.

Utiliser SQL Server Management Studio (SSMS)

Pour créer un proxy de SQL Server Agent

  1. Dans l’Explorateur d’objets, sélectionnez le signe plus (+) pour développer le serveur sur lequel vous souhaitez créer un proxy sur SQL Server Agent.

  2. Sélectionnez le signe plus (+) pour développer SQL Server Agent.

  3. Cliquez avec le bouton droit sur le dossier Proxys et sélectionnez Nouveau proxy.

  4. Dans la boîte de dialogue Nouveau compte proxy , sur la page Général , entrez le nom du compte proxy dans la zone Nom du proxy .

  5. Dans la zone Nom d'identification , entrez le nom des informations d'identification de sécurité que le compte proxy utilisera.

  6. Dans la zone Description , entrez une description du compte proxy

  7. Sous Actif pour les sous-systèmes suivants, sélectionnez le ou les sous-systèmes appropriés pour ce proxy.

  8. Sur la page Principaux , ajoutez ou supprimez des connexions ou des rôles pour accorder ou refuser un accès au compte proxy.

  9. Lorsque vous avez terminé, sélectionnez OK.

Utiliser Transact-SQL

Pour créer un proxy de SQL Server Agent

  1. Dans l' Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.

  2. Dans la barre d’outils standard, sélectionnez Nouvelle requête.

  3. Le script suivant crée des informations d’identification appelées CatalogApplicationCredential, crée un proxy Catalog application proxy et lui affecte les informations d’identification CatalogApplicationCredential et accorde l’accès proxy au sous-système de script ActiveX. Copiez et collez l’exemple suivant dans la fenêtre de requête, puis sélectionnez Exécuter.

    -- creates credential CatalogApplicationCredential  
    USE msdb ;  
    GO  
    CREATE CREDENTIAL CatalogApplicationCredential WITH IDENTITY = 'REDMOND/TestUser',   
        SECRET = 'G3$1o)lkJ8HNd!';  
    GO  
    -- creates proxy "Catalog application proxy" and assigns
    -- the credential 'CatalogApplicationCredential' to it.  
    EXEC dbo.sp_add_proxy  
        @proxy_name = 'Catalog application proxy',  
        @enabled = 1,  
        @description = 'Maintenance tasks on catalog application.',  
        @credential_name = 'CatalogApplicationCredential' ;  
    GO  
    -- grants the proxy "Catalog application proxy" access to 
    -- the ActiveX Scripting subsystem.  
    EXEC dbo.sp_grant_proxy_to_subsystem  
        @proxy_name = N'Catalog application proxy',  
        @subsystem_id = 2 ;  
    GO  
    

Étapes suivantes