Partager via


Impossible de préparer l’insertion en bloc SSIS pour l’insertion de données sur les systèmes avec UAC

Cet article vous aide à résoudre le problème qui se produit lorsque vous essayez d’exécuter un package SSIS sur les systèmes sur lesquels le contrôle de compte d’utilisateur (UAC) est activé.

Version du produit d’origine : SQL Server
Numéro de la base de connaissances d’origine : 2009672

Symptômes

Prenons l’exemple du scénario suivant :

  • Vous créez un package SQL Server Integration Services (SSIS) qui a un composant SQL Server Destination dans une tâche de flux de données.

  • Vous essayez d’exécuter ce package sur les systèmes où le contrôle de compte d’utilisateur (UAC) est activé (par exemple Vista ou Windows 7) à l’aide de l’une des méthodes suivantes :

    • Business Intelligence Development Studio (BIDS)
    • SQL Server Management Studio Explorateur d'objets (SSMS)
    • DTExec.exe
    • DTExecUI.exe

Dans ce scénario, vous pouvez obtenir un message d’erreur similaire à ce qui suit :

SQL Server Destination] Erreur : Impossible de préparer l’insertion en bloc SSIS pour l’insertion de données. [SSIS. Pipeline] Erreur : le composant « SQL Server Destination » a échoué la phase de pré-exécution et a retourné le code d’erreur 0xC0202071.

Remarque

Vous ne recevrez pas cette erreur si vous exécutez le package sous le compte Administrateur intégré créé lors de l’installation du système d’exploitation. Mais vous recevrez ce message pour tout autre utilisateur, y compris ceux qui sont membres du groupe Administrateurs locaux.

Le problème ne se produit pas lorsque vous exécutez le même package SSIS qu’un travail SQL Server Agent.

Une fois SQL 2008 Service Pack 2 installé, le texte du DTS_E_BULKINSERTAPIPREPARATIONFAILED d’erreur (0xC0202071) a été remplacé par : Impossible de copier les données en bloc. Vous devrez peut-être exécuter ce package en tant qu’administrateur.

Cette modification a été apportée dans le but de faciliter la compréhension de l’action corrective nécessaire, comme décrit dans la section résolution de cette base de connaissances.

Cause

Sur les systèmes sur lesquels le contrôle de compte d’utilisateur est activé, lorsqu’une application (comme SSIS) est lancée par un compte membre du groupe Administrateurs, elle obtient deux jetons de sécurité, un jeton à faible privilège et l’autre un jeton élevé. Le jeton avec élévation de privilèges est utilisé uniquement lorsque l’application est explicitement exécutée sous un compte Administrateur en choisissant l’option Exécuter en tant qu’administrateur . Par défaut, SSIS utilise toujours le jeton à privilèges faibles, ce qui entraîne un échec lors de la connexion à une destination SQL.

Résolution

Utilisez l’une des méthodes suivantes pour contourner le problème :

  • Si vous exécutez le package à partir de SQL Server Management Studio (SSMS) ou de Business Intelligence Development Studio (BIDS) ou d'DTExecUI.exe, lancez ces outils sous le compte Administrateur avec élévation de privilèges. Pour ce faire, 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. Cela lance l’application avec des privilèges élevés du compte Administrateur intégré et le package s’exécute correctement.

    De même, si vous exécutez le package à l’aide de DTExec.exe lancez-le à partir d’une invite de commandes avec élévation de privilèges. Vous pouvez démarrer l’invite de commandes avec élévation de privilèges en cliquant sur Démarrer, sur Tous les programmes, sur Accessoires, sur Invite de commandes, puis sur Exécuter en tant qu’administrateur.

    Remarque

    Si vous ne vous connectez pas à l’ordinateur en tant qu’administrateur, vous êtes invité à fournir le compte d’administrateur. Lorsque vous êtes invité à fournir le compte administrateur, tapez le nom d’utilisateur et le mot de passe de l’administrateur dans la boîte de dialogue Contrôle de compte d’utilisateur . Cliquez ensuite sur OK.

  • Remplacez les composants de destination SQL Server dans les tâches de flux de données qui échouent par les composants de destination OLE DB qui pointent vers le même SQL Server gestionnaire de connexions.

  • Utilisez un compte qui n’est pas membre du groupe Administrateurs local après avoir attribué le droit d’utilisateur 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 Attribution des droits utilisateur.
    3. Dans le volet droit, 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’utilisateur que vous souhaitez ajouter, cliquez sur Ajouter, puis sur OK.
    6. Cliquez sur OK.

Remarque

Lorsque vous utilisez un compte qui n’est pas membre du groupe Administrateurs local, la UAC n’entre pas en jeu.

Plus d’informations