Condividi tramite


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

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

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

Sintomi

Prendi in considerazione lo scenario seguente:

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

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

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

In questo scenario è possibile che venga visualizzato un messaggio di errore simile al seguente:

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

Note

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

Il problema non si verifica quando si esegue lo stesso pacchetto SSIS di un processo di 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 risoluzione di questo KB.

Causa

Nei sistemi in cui 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 token con privilegi elevati. Il token con privilegi elevati viene usato solo quando l'applicazione viene eseguita in modo esplicito con un account amministratore scegliendo l'opzione Esegui come amministratore . Per impostazione predefinita, SSIS usa sempre il token con privilegi limitati che causa un errore durante la connessione a una destinazione SQL.

Risoluzione

Usare uno dei metodi seguenti per risolvere il problema:

  • Se si esegue il pacchetto da SQL Server Management Studio (SSMS) o Business Intelligence Development Studio (BIDS) o DTExecUI.exe, avviare questi strumenti con l'account amministratore con privilegi elevati. A tale scopo, fare clic su 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. Verrà avviata l'applicazione 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 su Start, scegliere Tutti i programmi, Accessori, fare clic con il pulsante destro del mouse su Prompt dei comandi e quindi scegliere Esegui come amministratore.

    Note

    Se non si accede al computer come amministratore, viene richiesto di fornire 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. Successivamente, scegliere OK.

  • Sostituire i componenti di destinazione di 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 DI SQL Server.

  • Usare un account che non è membro del gruppo Administrators locale dopo aver assegnato il diritto utente Crea oggetti globali a tale account. A tale scopo, effettuare i passaggi seguenti:

    1. Fare clic su Start, scegliere Strumenti di amministrazione, quindi fare clic su Criteri di sicurezza locali.
    2. Espandere Criteri locali, quindi fare clic su Assegnazione diritti utente.
    3. Nel riquadro destro fare doppio clic su Crea oggetti globali.
    4. Nella finestra di dialogo Impostazioni 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. Scegliere OK.

Note

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

Ulteriori informazioni