带有SSIS包的SQL Server作业 - 无法解密受保护的XML节点“DTS:Password”,错误为0x8009000B

问题描述 投票:26回答:6

我有一个运行SSIS包的SQL服务器作业。此作业有9个步骤,每个步骤都从不同的数据库中提取数据。连接字符串在每个步骤中定义为参数。

我在运行作业时遇到以下错误。

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.

有人可以告诉我为什么会这样吗?

sql-server-2008-r2
6个回答
37
投票

除了Kiran's answer建议的内容,请确保正确设置:

在SSIS中可以选择保存密码(访问数据库或其他任何东西),默认设置为“EncryptSensitiveWithUserKey”...您需要更改此设置。

Package Proprties Window> ProtectionLevel - 将其更改为EncryptSensitiveWithPassword PackagePassword - 输入密码 - > somepassword


11
投票

将项目和包属性ProtectionLevel更改为“DontSaveSensitive”


10
投票

这是因为SSIS包的创建者是其他人,而其他人正在执行包。

如果假设一个人创建了SSIS包并且B人正在尝试执行,则会出现上述错误。

您可以通过将包属性中的创建者名称从A更改为B来解决错误。

谢谢,Kiran Sagar


2
投票

比赛的后期不多,但我找到了一种方法来解决这个问题,我没有在其他任何地方看到过。从Connection Manager选择您的连接。在右边你应该看到属性。如果不添加表达式,请检查是否有任何表达式。在你的包浏览器中添加一个名为connection的变量到sql或者其他。将变量设置为字符串并将值设置为连接字符串,并包括用户标识和密码。返回连接管理器属性和表达式。从下拉列表中选择ConnectionString并将第二个框设置为变量的名称。它看起来应该是这样的

enter image description here

我不能为我的生活找到另一种解决方案,但这有效!


0
投票

对我来说,问题与分配给包的参数有关。

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

确保右键单击“项目名称”,然后验证是否正确设置了32位运行时,并且默认情况下使用的参数是否已正确实例化。检查参数NAMES和初始值。对于我的包,我使用的是不正确的值,因此我必须在执行包之前重新填充参数defaults。根据您在SSIS包中设置的参数设置的默认值,检查您使用的值。一旦这些匹配,问题应该解决(对于一些人)


0
投票

在我的情况下,这是因为我在第一次打开解决方案时还没有连接到数据库。单击连接管理器选项卡,建立与该选项卡中每个数据源的连接,运行项目

© www.soinside.com 2019 - 2024. All rights reserved.