jeudi 16 juin 2011

[SSIS] : Modification de l'emplacement du fichier de Conf du moteur SSIS

Lors de l'installation du moteur SSIS, l'emplacement par défaut du fichier de configuration MsDtsSrvr.ini.xml est C:\Program Files\Microsoft SQL Server\100\DTS\Binn, dans certains cas nous pouvons être amené à modifier l'emplacement de ce fichier et notamment dans le cas où nous voulions le mettre sur un fichier partagé et ainsi l'utiliser pour deux serveurs SSIS.

Cette tâche peut être accompli en suivant les étapes suivantes :
  1. Copier le fichier de configuration sur un fichier partagé (exemple : \\partage\ConfigSSIS\MsDtsSrvr.ini.xml)
  2. Ouvrir l'éditeur de registre en saisissant regedit dans l'invite de commande

  


     3.  Naviguer vers HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\SSIS\ServiceConfigFile 
 

     4.  Remplacer C:\Program Files\Microsoft SQL Server\100\DTS\Binn\MsDtsSrvr.ini.xml par \\partage\ConfigSSIS\MsDtsSrvr.ini.xml
    5.  Redémarrer le service SSIS.

      lundi 13 juin 2011

      [SSIS] : Keep Identity

      Aujourd'hui je vais vous parler de l’équivalent dans SSIS de la commande SQL :

      SET IDENTITY_INSERT MyTable ON
      Cette commande qui permet d’autoriser l’insertion des données dans une colonne auto-incrémentée (Identity).
      SSIS permet de faire la même chose via la propriété Keep Identity qui directement intégré dans le composant Destination OLEDB.
      Ainsi, en cochant Keep Identity nous autorisons à SSIS d’insérer des données dans une colonne auto-incrémentée.


      NB : Si vous optez pour SQL il ne faut pas oublier de réactiver l’auto-incrémentation aprés l’insertion des données en passant la commande suivante :
      SET IDENTITY_INSERT MyTable OFF

      [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.