SSIS问题无法解密受保护的XML节点

时间:2012-02-15 16:17:22

标签: sql sql-server sql-server-2008 ssis

我创建了一个SSIS包,它从ftp服务器获取ftp pull文件并保存到我的本地驱动器但是我遇到了这个问题。

使用相同的错误消息我只收到警告,但今天作业失败了。

消息:

  

以用户身份执行:cam \ Package.Runner。 Microsoft(R)SQL Server执行包实用程序版本10.0.4000.0(适用于64位版权所有(C)Microsoft Corporation 1984-2005。版权所有。开始于:10:00:00 AM错误:2012-02-15 10:00:00.61代码:0xC0016016来源:描述:无法解密受保护的XML节点“DTS:Password”,错误0x8009000B“密钥无效,无法在指定状态下使用“。您可能无权访问此信息。出现加密错误时会发生此错误。验证是否有正确的密钥。结束错误错误:2012-02-15 10:00:00.62代码:0xC0016016源:说明:无法解密受保护的XML节点“DTS:Property”,错误0x8009000B“密钥无法在指定状态下使用。”。您可能无权访问此信息。出现加密错误时会发生此错误。验证是否有正确的密钥。结束错误错误:2012-02-15 10:00:33.53代码:0xC0029183源:主要平衡文件FTP获取FTP任务描述:由“/ Concerto / Virtus_Reports / Concerto Principal Balance Report * .pdf”表示的文件不存在。结束错误DTExec:程序包执行返回DTSER_FAILURE(1)。开始时间:上午10:00:00结束时间:上午10:00:33经过:33.088秒。包执行失败。步骤失败了。

8 个答案:

答案 0 :(得分:8)

您可以通过设置“保护级别”属性

来解决此问题
Protection Level : DontSaveSensitive

使用此属性,程序包将不受密码保护,而另一台服务器可以使用其他凭据访问和执行任何作业。

答案 1 :(得分:5)

将包导入SQL Server时选择保护级别: 任

1-不保存敏感数据。

或者

2-依靠服务器存储和访问控制角色。

SSIS Project 包属性的屏幕截图:

enter image description here

答案 2 :(得分:1)

这是对我有用的步骤。

  1. 将软件包复制到另一个文件夹(为了安全起见)
  2. 将“保护级别”设置为EncryptAllWithPassword并为其输入密码,例如“测试”
  3. 将创建者名称更改为我创建的另一个用户
  4. 重新创建工作
  5. 创建了一个代理来运行作业

工作了!!

答案 3 :(得分:0)

在构建和部署软件包之前,请确保您已更改解决方案的属性,如下所示:

   Run64BitRuntime = False

答案 4 :(得分:0)

我收到了FTP连接相同的错误消息。我认为这是由于我在使用不同凭据运行BIDS时打开包而导致的。

作为一个笨重的解决方法,我删除并重新创建了FTP连接。之后工作得很好。

答案 5 :(得分:0)

SSIS作业错误的主要部分是

" 0xC0029183来源:主要平衡文件FTP获取FTP任务描述:文件由" / Concerto / Virtus_Reports / Concerto主要平衡报告* .pdf "不存在。结束错误DTExec:程序包执行返回DTSER_FAILURE(1)。开始时间:上午10:00:00结束时间:上午10:00:33经过:33.088秒。包执行失败。 "

您似乎在SSIS包中配置的路径上没有pdf文件。 请检查路径和pdf文件以进行导入。 最好的祝福, 布拉尼斯拉

答案 6 :(得分:0)

请尝试使用“EncryptSensitiveWithPassword”选项保存您的包。

步骤1:右键单击您的FTP连接管理器,转到其属性(最底部,而不是编辑按钮),         并输入密码。

步骤2:使用EncryptSensitiveWithPassword保存您的包。

步骤3:现在编辑SQL作业代理中的命令ling,如下所示 / FILE“C:\ SSIS pkg.dtsx的完整路径”/解密密码

答案 7 :(得分:0)

在使用FTP连接的情况下,您可以先在FTP任务之前创建一个脚本任务,然后为其设置密码

ConnectionManager FTPConn;

FTPConn = Dts.Connections [“ FTP连接管理器”];

FTPConn.Properties [“ ServerPassword”]。SetValue(FTPConn,Dts.Variables [“ FtpPwd”]。value);

如果使用OLE DB,则只需在OLEDB Connection的连接字符串中添加密码即可。