Impossibile preparare l'inserimento bulk SSIS per l'inserimento dei dati nei sistemi abilitati per Controllo dell'account utente

Questo articolo consente di risolvere il problema che si verifica quando si tenta di eseguire un pacchetto SSIS nei sistemi in cui è abilitato controllo dell'account utente.

Versione originale del prodotto: SQL Server
Numero KB originale: 2009672

Sintomi

Considerare lo scenario descritto di seguito:

  • Si crea un pacchetto SQL Server Integration Services (SSIS) con un componente di destinazione SQL Server all'interno di un'attività flusso di dati.

  • Si prova a eseguire questo pacchetto nei sistemi in cui controllo dell'account utente (UAC) è abilitato (ad esempio Vista o Windows 7) usando uno dei metodi seguenti:

    • Business Intelligence Development Studio (BIDS)
    • Esplora oggetti SQL Server Management Studio (SSMS)
    • DTExec.exe
    • DTExecUI.exe

In questo scenario potrebbe essere visualizzato un messaggio di errore simile al seguente:

destinazione SQL Server] Errore: impossibile preparare l'inserimento bulk SSIS per l'inserimento dei dati. [SSIS. Pipeline] Errore: il componente "destinazione SQL Server" non è riuscito nella fase di pre-esecuzione e ha restituito il codice di errore 0xC0202071.

Nota

Questo errore non verrà visualizzato se si esegue il pacchetto con l'account amministratore predefinito creato durante l'installazione del sistema operativo. Questo messaggio verrà tuttavia visualizzato per qualsiasi altro utente, inclusi quelli membri del gruppo Amministratori locali.

Il problema non si verifica quando si esegue lo stesso pacchetto SSIS di un processo SQL Server Agent.

Dopo l'installazione di SQL 2008 Service Pack 2, il testo dell'errore DTS_E_BULKINSERTAPIPREPARATIONFAILED (0xC0202071) è stato modificato in: Impossibile copiare in blocco i dati. Potrebbe essere necessario eseguire questo pacchetto come amministratore.

Questa modifica è stata apportata nel tentativo di semplificare la comprensione dell'azione correttiva necessaria, come descritto nella sezione relativa alla risoluzione di questa knowledge base.

Causa

Nei sistemi in cui il controllo dell'account utente è abilitato, quando un'applicazione (ad esempio SSIS) viene avviata da un account membro del gruppo Administrators, ottiene due token di sicurezza, uno con privilegi limitati e un altro con privilegi elevati. Il token con privilegi elevati viene usato solo quando l'applicazione viene eseguita in modo esplicito in un account amministratore scegliendo l'opzione Esegui come amministratore . Per impostazione predefinita, SSIS usa sempre il token con privilegi limitati, causando un errore durante la connessione a una destinazione SQL.

Risoluzione

Per risolvere il problema, usare uno dei metodi seguenti:

  • Se si esegue il pacchetto da SQL Server Management Studio (SSMS) o Business Intelligence Development Studio (BIDS) o DTExecUI.exe, avviare tali strumenti con l'account administrator con privilegi elevati. A tale scopo, fare clic sul pulsante Start, scegliere Tutti i programmi, SQL Server 2005 o SQL Server 2008, fare clic con il pulsante destro del mouse sullo strumento in uso e quindi scegliere Esegui come amministratore. L'applicazione viene avviata con privilegi elevati dell'account amministratore predefinito e il pacchetto viene eseguito correttamente.

    Analogamente, se si esegue il pacchetto usando DTExec.exe avviarlo da un prompt dei comandi con privilegi elevati. È possibile avviare il prompt dei comandi con privilegi elevati facendo clic sul pulsante Start, scegliere Tutti i programmi, Accessori, fare clic con il pulsante destro del mouse su Prompt dei comandi e quindi scegliere Esegui come amministratore.

    Nota

    Se non si accede al computer come amministratore, viene richiesto di specificare l'account amministratore. Quando viene richiesto di specificare l'account amministratore, digitare il nome utente e la password dell'amministratore nella finestra di dialogo Controllo account utente . Fare quindi clic su OK.

  • Sostituire i componenti di destinazione SQL Server nelle attività del flusso di dati che hanno esito negativo con i componenti di destinazione OLE DB che puntano alla stessa gestione connessione SQL Server.

  • Usare un account che non sia membro del gruppo Administrators locale dopo aver assegnato a tale account il diritto utente Crea oggetti globali. A tal fine, attenersi alla seguente procedura:

    1. Fare clic sul pulsante Start, scegliere Strumenti di amministrazione e quindi Criteri di sicurezza locali.
    2. Espandere Criteri locali e quindi fare clic su Assegnazione diritti utente.
    3. Nel riquadro destro fare doppio clic su Crea oggetti globali.
    4. Nella finestra di dialogo Impostazione criteri di sicurezza locali fare clic su Aggiungi.
    5. Nella finestra di dialogo Seleziona utenti o gruppo fare clic sugli account utente da aggiungere, fare clic su Aggiungi e quindi su OK.
    6. Fare clic su OK.

Nota

Quando si usa un account che non è membro del gruppo Administrators locale, il controllo dell'account utente non entra in gioco.

Ulteriori informazioni