KB2216489-FIX : message d’erreur lorsque vous essayez d’exécuter un package SSIS qui contient un composant de destination SQL Server dans une tâche de flux de travail

S’applique à : Windows 7Windows VistaSQL Server Management Studio

Symptômes


Prenons l’exemple du scénario suivant :
  • Vous pouvez créer un package SQL Server 2008 Integration Services R2 (SSIS) qui dispose d’un composant de destination SQL Server dans une tâche de flux de travail.
  • Vous essayez d’exécuter ce package sur des systèmes dans lesquels le contrôle de compte d’utilisateur (UAC) est activé (par exemple, dans Windows Vista ou Windows 7) en utilisant l’une des méthodes suivantes :
    • Studio d’aide à la décision
    • Explorateur d’objets SQL Server Management Studio (SSMS)
    • DTExec.exe
    • DTExecUI.exe
Dans ce scénario, vous pouvez recevoir un message d’erreur qui ressemble à l’une des rubriques suivantes :
[Destination SQL Server] Erreur : impossible de préparer l’insertion en bloc SSIS pour l’insertion de données. SSIS. Pipeline] erreur : le composant « destination SQL Server » a échoué lors de la phase de pré-exécution et a renvoyé le code d’erreur 0xC0202071.» Impossible de copier les données en bloc. Vous devrez éventuellement exécuter ce package en tant qu’administrateur.
Remarques
  • Vous ne rencontrez pas ces erreurs si vous exécutez le package sous le compte d’administrateur intégré créé lors de l’installation du système d’exploitation. Vous recevrez ce message pour tous les utilisateurs, y compris ceux qui sont membres du groupe Administrateurs local.
  • Ce problème ne se produit pas lorsque vous exécutez le même package SSIS en tant que tâche d’agent SQL Server.
  • Le second message d’erreur est généré uniquement après l’installation de SQL 2008 Service Pack 2 (SP2).

Cause


Ce problème se produit sur les systèmes sur lesquels le contrôle UAC est activé. Lorsqu’une application (telle que SSIS) est démarrée par un compte membre du groupe administrateurs, elle reçoit deux jetons de sécurité : un jeton à faible autorisation et un jeton d’autorisations élevé. Le jeton privilèges élevés est utilisé uniquement lorsque l’application est exécutée explicitement sous un compte d’administrateur à l’aide de l’option exécuter en tant qu’administrateur . Par défaut, SSIS utilise toujours le jeton de faible autorisation et génère un échec lorsque SSIS se connecte à un composant de destination SQL Server.Remarque Lorsque vous utilisez un compte qui n’est pas membre du groupe administrateurs locaux, l’UAC n’apparaît pas.

Résolution


Informations sur le Service Pack pour SQL Server 2008 R2

Pour résoudre ce problème, procurez-vous le dernier Service Pack pour SQL Server 2008 R2. Pour plus d’informations, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
2527041 Obtention du dernier Service Pack pour SQL Server 2008 R2

Statut


Microsoft a confirmé qu’il s’agit d’un problème lié aux produits Microsoft répertoriés dans la section « s’applique à ». Ce problème a été corrigé pour la première fois dans SQL Server 2008 R2 Service Pack 1 pour SQL Server 2008 R2.

Solution de contournement


Pour contourner ce problème, appliquez l'une des méthodes suivantes :
  • Si vous exécutez le package à partir de SSMS, d’enchères ou de DTExecUI. exe, démarrez ces outils à partir du compte d’administrateur. Pour cela, cliquez sur Démarrer, pointez sur tous les programmes, sur SQL server 2005 ou SQL Server 2008, cliquez avec le bouton droit sur l’outil que vous utilisez, puis cliquez sur exécuter en tant qu’administrateur. Cette opération démarre l’application en utilisant les autorisations de privilèges élevés du compte d’administrateur intégré, et le package s’exécute correctement. De même, si vous exécutez le package à l’aide de DTExec. exe, démarrez-le à partir d’une invite de commandes avec élévation de privilèges. Pour cela, cliquez sur Démarrer, sur tous les programmes, sur accessoires, cliquez avec le bouton droit sur invite de commandes, puis cliquez sur exécuter en tant qu’administrateur.Remarque Si vous ne vous connectez pas à votre ordinateur en tant qu’administrateur, vous êtes invité à fournir le compte d’administrateur. En réponse, tapez le nom d’utilisateur et le mot de passe administrateur dans la boîte de dialogue contrôle de compte d’utilisateur , puis cliquez sur OK.
  • Remplacez les composants de destination SQL Server dans les tâches de flux de flux qui ne fonctionnent pas avec les composants de destination OLE DB qui pointent vers le même gestionnaire de connexions SQL Server.
  • Utilisez un compte qui n’est pas membre du groupe administrateurs locaux une fois que vous avez affecté les autorisations créer des objets globaux à ce compte. Pour cela, procédez comme suit :
    1. Cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur stratégie de sécuritélocale.
    2. Développez stratégies locales, puis cliquez sur affectation de droits d’utilisateur.
    3. Dans le volet Détails, double-cliquez sur créer des objets globaux.
    4. Dans la boîte de dialogue paramètre de stratégie de sécurité locale , cliquez sur Ajouter.
    5. Dans la boîte de dialogue Sélectionner des utilisateurs ou un groupe , cliquez sur les comptes d’utilisateurs à ajouter, cliquez sur Ajouter, puis sur OK à deux reprises.