Tâches du serveur SQL avec les paquets SSIS-échec du décryptage du noeud XML protégé "DTS: Password" avec l'erreur 0x8009000B
J'ai une tâche SQL server qui exécute un paquet SSIS. Ce travail comporte 9 étapes et à chaque étape, il extrait des données d'une base de données différente. les chaînes de connexions sont définies comme des paramètres à chaque étape.
j'obtiens l'erreur suivante quand je exécute le travail.
Executed as user: USERMYSERVER$. 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.
quelqu'un peut-il me dire pourquoi cela se produit?
5 réponses
en plus de quoi la réponse de Kiran indique, assurez-vous que c'est réglé correctement:
il y a une option pour dans SSIS pour enregistrer les mots de passe(pour accéder à DB ou à tout autre truc), le paramètre par défaut est "EncryptSensitiveWithUserKey"... Vous avez besoin de changer cela.
Fenêtre Des Propriétés Du Paquet > ProtectionLevel -- Changement EncryptSensitiveWithPassword PackagePassword -- entrer le mot de passe-> somepassword
changer le niveau de protection des propriétés du projet et du paquet en" DontSaveSensitive"
c'est parce que le créateur des paquets SSIS est quelqu'un d'autre et qu'une autre personne exécute les paquets.
si l'on suppose qu'une personne a créé des paquets SSIS et que la personne B essaie de les exécuter alors que l'erreur ci-dessus vient.
vous pouvez résoudre l'erreur en changeant le nom du créateur des propriétés du paquet de A à B.
Merci, Kiran Sagar!--1-->
un peu tard pour le match mais j'ai trouvé un moyen de réparer ça pour moi que je n'avais pas vu ailleurs. Sélectionnez votre connexion à partir des gestionnaires de connexion. Sur la droite, vous devriez voir les propriétés. Vérifiez pour voir si il y a des expressions, sinon ajouter un. Dans votre explorateur de paquets, ajoutez une variable appelée connexion à sql ou autre. Définissez la variable comme une chaîne et définissez la valeur comme votre chaîne de connexion et incluez L'ID utilisateur et le mot de passe. Retour aux propriétés du gestionnaire de connexion et expression. À partir de la liste déroulante, sélectionnez ConnectionString et définissez la deuxième boîte comme le nom de votre variable. Il devrait ressembler à ceci
je ne pouvais pas pour la vie de me trouver une autre solution, mais cela a fonctionné!
pour moi, le problème concernait les paramètres assignés au paquet.
In SSMS, Navigate to:
"Integration Services Catalog -> SSISDB -> Project Folder Name -> Projects -> Project Name"
assurez-vous de cliquer avec le bouton droit de la souris sur votre "nom de projet", puis de valider que l'exécution 32 bits est réglée correctement et que les paramètres utilisés par défaut sont instanciés correctement. Vérifier les noms des paramètres et les valeurs initiales. Pour mon paquet, j'utilisais des valeurs qui n'étaient pas correctes et j'ai donc dû repeupler le paramètre par défaut avant d'exécuter mon paquet. Vérifiez les valeurs que vous êtes en utilisant contre les valeurs par défaut que vous avez définies pour vos paramètres que vous avez définis dans votre paquet SSIS. Une fois qu'ils correspondent, le problème devrait être résolu (pour certains)