it-swarm.com.de

SQL Server-Jobs mit SSIS-Paketen - Fehler beim Entschlüsseln des geschützten XML-Knotens "DTS: Password" mit Fehler 0x8009000B

ich habe einen SQL Server-Job, der ein SSIS-Paket ausführt. Dieser Job besteht aus 9 Schritten und extrahiert in jedem Schritt Daten aus einer anderen Datenbank. Die Verbindungszeichenfolgen werden in jedem Schritt als Parameter definiert.

ich bekomme die folgende Fehlermeldung, wenn ich den Job ausführen.

Executed as user: USER\MYSERVER$. Microsoft (R) SQL Server Execute Package Utility  Version 10.50.1600.1 for 64-bit  Copyright (C) Microsoft Corporation 2010. All rights reserved.
Started:  5:50:55 PM  Error: 2013-06-21 17:50:55.44
Code: 0xC0016016
Source:
Description: Failed to decrypt protected XML node "DTS:Password" with error 0x8009000B "Key not valid for use in specified state.". You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that the correct key is available.  End Error  Error: 2013-06-21 17:50:55.45
Code: 0xC0016016
Source:
Description: Failed to decrypt protected XML node "DTS:Password" with error 0x8009000B "Key not valid for use in specified state.". You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that the correct key is available.  End Error  Error: 2013-06-21 17:50:55.45
Code: 0xC0016016
Source:
Description: Failed to decrypt protected XML node "DTS:Password" with error 0x8009000B "Key not valid for use in specified state.". You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that the correct key is available.  End Error  Error: 2013-06-21 17:51:06.30
Code: 0xC020901C
Source: Data Flow Task Daily Attendance View 1 [34]
Description: There was an error with output column "ShiftCode" (54) on output "OLE DB Source Output" (45). The column status returned was: "Text was truncated or one or more characters had no match in the target code page.".  End Error  Error: 2013-06-21 17:51:06.30
Code: 0xC020902A
Source: Data Flow Task Daily Attendance View 1 [34]
Description: The "output column "ShiftCode" (54)" failed because truncation occurred, and the truncation row disposition on "output column "ShiftCode" (54)" specifies failure on truncation. A truncation error occurred on the specified object of the specified component.  End Error  Error: 2013-06-21 17:51:06.30
Code: 0xC0047038
Source: Data Flow Task SSIS.Pipeline
Description: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED.  The PrimeOutput method on component "Daily Attendance View 1" (34) returned error code 0xC020902A.  The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing.  There may be error messages posted before this with more information about the failure.  End Error  DTExec: The package execution returned DTSER_FAILURE (1).  Started:  5:50:55 PM  Finished: 5:51:06 PM  Elapsed:  10.983 seconds.  The package execution failed.  The step failed.

kann mir bitte jemand sagen, warum das passiert?

24

Stellen Sie zusätzlich zu dem, was Kirans Antwort vorschlägt, sicher, dass dies richtig eingestellt ist:

Es gibt eine Option zum Speichern von Kennwörtern in SSIS (für den Zugriff auf die Datenbank oder andere Objekte), die Standardeinstellung ist "EncryptSensitiveWithUserKey" ... Sie müssen dies ändern.

Fenster "Package Properties"> ProtectionLevel - Ändern Sie das in EncryptSensitiveWithPassword PackagePassword - Geben Sie password-> somepassword ein

35
mmassey10

Ändern Sie sowohl ProtectionLevel für Projekte als auch für Paketeigenschaften in " DontSaveSensitive ".

11
Rashmi

Dies liegt daran, dass der Ersteller der SSIS-Pakete eine andere Person ist und die Pakete von einer anderen Person ausgeführt werden.

Wenn angenommen wird, dass eine Person SSIS-Pakete erstellt hat und die B-Person versucht, sie auszuführen, wird der obige Fehler angezeigt.

Sie können den Fehler beheben, indem Sie den Erstellernamen von A in B in den Paketeigenschaften ändern.

Danke, Kiran Sagar

10
Kiran Sagar

Etwas spät im Spiel, aber ich habe einen Weg gefunden, das zu beheben, was ich sonst nirgendwo gesehen hatte. Wählen Sie Ihre Verbindung unter Verbindungsmanager aus. Auf der rechten Seite sollten Sie Eigenschaften sehen. Prüfen Sie, ob dort Ausdrücke vorhanden sind, wenn Sie keinen hinzufügen. Fügen Sie im Paket-Explorer eine Variable namens sql oder was auch immer hinzu. Legen Sie die Variable als Zeichenfolge fest, legen Sie den Wert als Verbindungszeichenfolge fest und geben Sie die Benutzer-ID und das Kennwort ein. Zurück zu den Eigenschaften und dem Ausdruck des Verbindungsmanagers. Wählen Sie im Dropdown-Menü ConnectionString aus, und legen Sie das zweite Feld als Namen Ihrer Variablen fest. Es sollte so aussehen

 enter image description here

Ich konnte für das Leben von mir keine andere Lösung finden, aber das hat funktioniert!

2

In meinem Fall lag es daran, dass ich beim ersten Öffnen der Lösung noch keine Verbindung zu Datenbanken hergestellt hatte. Klicken Sie auf die Registerkarte Connection Manager, stellen Sie die Verbindung zu jeder Datenquelle auf dieser Registerkarte her, und führen Sie das Projekt aus

0

Bei mir ging es um die Parameter, die dem Paket zugewiesen wurden.

 In SSMS, Navigate to:
 "Integration Services Catalog -> SSISDB -> Project Folder Name -> Projects -> Project Name" 

Stellen Sie sicher, dass Sie mit der rechten Maustaste auf den "Projektnamen" klicken, und überprüfen Sie, ob die 32-Bit-Laufzeit richtig eingestellt ist und die standardmäßig verwendeten Parameter ordnungsgemäß instanziiert sind. Überprüfen Sie den Parameter NAMES und die Anfangswerte. Für mein Paket habe ich Werte verwendet, die nicht korrekt waren. Daher musste ich die Parameter-Standardwerte vor der Ausführung meines Pakets erneut ausfüllen. Überprüfen Sie die von Ihnen verwendeten Werte mit den Standardwerten, die Sie für Ihre Parameter festgelegt haben, die Sie in Ihrem SSIS-Paket festgelegt haben. Sobald diese übereinstimmen, sollte das Problem gelöst werden (für einige)

0
Turner