lundi 13 juin 2011

[SSIS] : Automatisation d’un package SSIS via le SQL Agent

Une problématique fréquemment rencontrée lors de l'automatisation de l'exécution d'un package SSIS est le problème des droits d'accès soit à la source soit à la destination des données notamment dans le contexte d'utilisation de l'authentification Windows Intégré.
Ce qu'il faut savoir c'est que lors de l'exécution des packages SSIS via le SQL Agent, le compte utilisé est celui du service SQL Agent.
Deux solutions sont possibles :
  • Donner les droits d'accès aux sources et destinations des données au compte de service SQL Agent tout simplement.
  • Créer un proxy pour l'exécution des packages SSIS.
La mise en place d'un proxy se fait en deux étapes :
  1. Création du Credential :
    USE [master]
    GO
    CREATE CREDENTIAL [SSIS_Exec]
    WITH IDENTITY = N'Login',
    SECRET = N'Mot de passe'

    GO  

         2.  Création du proxy dans le SQL Agent :
      USE [msdb]
      GO
      EXEC msdb.dbo.sp_add_proxy
      @proxy_name=N'Proxy_SSIS_Exec',@credential_name=N'SSIS_Exec',@enabled=1

      GO
      EXEC msdb.dbo.sp_grant_proxy_to_subsystem
      @proxy_name=N'Proxy_SSIS_Exec', @subsystem_id=11

      GO


      Remarque : @subsystem_id correspond à l'Id du type de proxy, avec 11 pour l'exécution de package SSIS, 10 pour les commandes XMLA et 9 pour les requêtes MDX.
      Ainsi, si vous voulez créer un proxy pour une commande XMLA il suffit de remplacer le 11 par 10, ce qui donne:
      EXEC msdb.dbo.sp_grant_proxy_to_subsystem
      @proxy_name=N'Proxy_SSIS_Exec', @subsystem_id=10

      GO

      A cette étape, il ne reste plus qu'à créer le job SQL Agent en sélectionnant dans la partie « Run as » de l'onglet « Steps » le proxy que vous venez de créer.

      Aucun commentaire:

      Enregistrer un commentaire