我的SSIS包工作正常,但作为SSMS作业失败(错误:0xC0016016)

时间:2014-10-24 17:56:34

标签: sql-server ssis ssms

我的SSIS包有效,但作为SSMS作业失败(错误:0xC0016016)

我发布这个问题,并将此问题的解决方案作为我自己的问题分享,因为我没有看到提出的问题与我遇到的具体问题相符,答案似乎分散在不同的论坛问题中。

背景:

  • 我在SQL Server 2012上有四个SSIS包,可以从SQL Server 2008 R2,2008或2005导入表,具体取决于具体的包。我使用指定的sql server登录名和密码作为源数据库,并为目标数据库集成Windows安全性。
  • 在SSIS中,我可以毫无问题地运行每个包。
  • 为确保此程序包按计划运行,我在与SSIS程序包相同的服务器上设置SSMS作业。在Job步骤属性中,我选择了:SQL Server Integration Services Package>作为SQL Sever代理服务帐户运行>包源:文件系统)。

症状: 手动运行作业以确保它有效时,我收到错误并在日志文件查看器中看到了这一点。这是几个错误中的第一个错误,但由于这是按时间顺序排列的第一个错误,我首先查看了这个错误。

  • 错误: 2014-10-24 09:52:34.48
  • 代码: 0xC0016016
  • 来源: [已编辑 - 我导入的表格的正确名称]
  • 描述:无法解密受保护的XML节点" DTS:密码"同 错误0x8009000B"密钥无法在指定状态下使用。"。你可以 无权访问此信息。发生此错误 存在加密错误。验证正确的密钥是否正确 可用。
  • 结束错误

1 个答案:

答案 0 :(得分:4)

我查看了Google上的错误代码并开始查看解决方案。我没有重述我如何找到解决方案的各个部分,而是按顺序呈现可操作的结果 - 至少对我和我正在使用的网络基础设施而言。

  1. 在"属性" SSIS解决方案的面板(首先执行此操作)和该解决方案中的每个包,重置" ProtectionLevel"属性为 EncryptSensitiveWithPassword 并设置密码。包密码必须与解决方案密码匹配。
  2. 只需仔细检查,在调试模式下运行您的软件包,以确保不会出现其他问题。就我而言,我需要重新输入源服务器数据库的sql server密码。
  3. 重建您的SSIS解决方案。
  4. 在SSMS中,打开您的工作并打开相关任务的作业步骤属性。
  5. 选择"命令行"标签。 A"包裹密码"弹出窗口出现。输入您在步骤1中输入的密码。
  6. 选择"手动编辑命令行"并在/ DECRYPT之后立即从步骤1中输入相同的密码。
  7. 对运行此类包的每个作业步骤重复步骤4-6。
  8. 按"确定"按钮并重新运行你的工作。
  9. 之后我成功地完成了我的工作。