Die SSIS-Masseneinfügung kann nicht für die Dateneinfügung auf aktivierten UAC-Systemen vorbereitet werden.
Dieser Artikel hilft Ihnen, das Problem zu beheben, das auftritt, wenn Sie versuchen, ein SSIS-Paket auf Systemen auszuführen, auf denen die Benutzerkontensteuerung (User Account Control, UAC) aktiviert ist.
Ursprüngliche Produktversion: SQL Server
Ursprüngliche KB-Nummer: 2009672
Problembeschreibung
Stellen Sie sich folgendes Szenario vor:
Sie erstellen ein SQL Server Integration Services (SSIS)-Paket mit einer SQL Server-Zielkomponente innerhalb einer Dataflow-Aufgabe.
Sie versuchen, dieses Paket auf Systemen auszuführen, auf denen die Benutzerkontensteuerung (User Account Control, UAC) aktiviert ist (z. B. Vista oder Windows 7), indem Sie eine der folgenden Methoden verwenden:
- Business Intelligence Development Studio (BIDS)
- SQL Server Management Studio (SSMS) Objekt-Explorer
- DTExec.exe
- DTExecUI.exe
In diesem Szenario erhalten Sie möglicherweise eine Fehlermeldung, die den folgenden ähnelt:
SQL Server-Zielfehler: Der SSIS-Masseneinfügevorgang kann nicht für die Dateneinfügung vorbereitet werden. [SSIS. Pipeline] Fehler: Die Komponente "SQL Server-Ziel" hat die Phase vor der Ausführung und den zurückgegebenen Fehlercode 0xC0202071 fehlgeschlagen.
Notiz
Dieser Fehler wird nicht angezeigt, wenn Sie das Paket unter dem integrierten Administratorkonto ausführen, das während der Installation des Betriebssystems erstellt wird. Sie erhalten diese Meldung jedoch für alle anderen Benutzer, einschließlich derJenigen, die Mitglieder der Gruppe "Lokale Administratoren" sind.
Das Problem tritt nicht auf, wenn Sie dasselbe SSIS-Paket wie ein SQL Server-Agent Auftrag ausführen.
Nachdem SQL 2008 Service Pack 2 installiert wurde, wurde der Text des Fehlers DTS_E_BULKINSERTAPIPREPARATIONFAILED (0xC0202071) geändert in: Massenkopien von Daten können nicht mehr geändert werden. Möglicherweise müssen Sie dieses Paket als Administrator ausführen.
Diese Änderung wurde vorgenommen, um das Verständnis der erforderlichen Korrekturmaßnahmen zu vereinfachen, wie im Lösungsabschnitt dieser KB beschrieben.
Ursache
Auf Systemen, auf denen UAC aktiviert ist, wenn eine Anwendung (z. B. SSIS) von einem Konto gestartet wird, das Mitglied der Gruppe "Administratoren" ist, erhält es zwei Sicherheitstoken, ein token mit niedriger Privilegierten und ein weiteres ein token mit erhöhten Rechten. Das Token mit erhöhten Rechten wird nur verwendet, wenn die Anwendung explizit unter einem Administratorkonto ausgeführt wird, indem Sie die Option "Als Administrator ausführen" auswählen. Standardmäßig verwendet SSIS immer das Token mit niedriger Privilegierten, was zu einem Fehler beim Herstellen einer Verbindung mit einem SQL-Ziel führt.
Lösung
Verwenden Sie eine der folgenden Methoden, um das Problem zu umgehen:
Wenn Sie das Paket entweder aus SQL Server Management Studio (SSMS) oder Business Intelligence Development Studio (BIDS) oder DTExecUI.exe ausführen, starten Sie diese Tools unter dem Administratorkonto mit erhöhten Rechten. Klicken Sie hierzu auf "Start", zeigen Sie auf "Alle Programme", zeigen Sie auf SQL Server 2005 oder SQL Server 2008, klicken Sie mit der rechten Maustaste auf das verwendete Tool, und klicken Sie dann auf "Als Administrator ausführen". Dadurch wird die Anwendung mit erhöhten Rechten des integrierten Administratorkontos gestartet, und das Paket wird erfolgreich ausgeführt.
Ebenso, wenn Sie das Paket mit DTExec.exe starten, über eine Eingabeaufforderung mit erhöhten Rechten. Sie können die Eingabeaufforderung mit erhöhten Rechten starten, indem Sie auf "Start" klicken, auf "Alle Programme" klicken, auf "Zubehör" klicken, mit der rechten Maustaste auf "Eingabeaufforderung" klicken und dann auf "Als Administrator ausführen" klicken.
Notiz
Wenn Sie sich nicht als Administrator bei dem Computer anmelden, werden Sie aufgefordert, das Administratorkonto anzugeben. Wenn Sie aufgefordert werden, das Administratorkonto anzugeben, geben Sie den Administratorbenutzernamen und das Kennwort im Dialogfeld "Benutzerkontensteuerung " ein. Klicken Sie dann auf OK.
Ersetzen Sie die SQL Server-Zielkomponenten in den Dataflow-Aufgaben, die mit OLE DB-Zielkomponenten fehlschlagen, die auf denselben SQL Server-Verbindungs-Manager verweisen.
Verwenden Sie ein Konto, das kein Mitglied der lokalen Gruppe "Administratoren" ist, nachdem Sie diesem Konto das Benutzerrecht "Globale Objekte erstellen" zugewiesen haben. Gehen Sie dazu wie folgt vor:
- Klicken Sie auf "Start", zeigen Sie auf "Verwaltungstools", und klicken Sie dann auf "Lokale Sicherheitsrichtlinie".
- Erweitern Sie lokale Richtlinien, und klicken Sie dann auf Benutzerrechtezuweisung.
- Doppelklicken Sie im rechten Bereich auf "Globale Objekte erstellen".
- Klicken Sie im Dialogfeld "Lokale Sicherheitsrichtlinieneinstellung " auf "Hinzufügen".
- Klicken Sie im Dialogfeld "Benutzer oder Gruppe auswählen" auf die Benutzerkonten, die Sie hinzufügen möchten, klicken Sie auf "Hinzufügen" und dann auf "OK".
- Klicken Sie auf OK.
Notiz
Wenn Sie ein Konto verwenden, das kein Mitglied der lokalen Administratorgruppe ist, kommt die UAC nicht ins Spiel.