尝试运行 SQL Server Integration Services 包时,会收到“加载错误”错误消息

本文可帮助你解决 SSIS 无法解密包中存储的密码时发生的包加载失败问题。

原始产品版本:SQL Server
原始 KB 编号: 904800

症状

在 Microsoft SQL Server中,尝试从 Microsoft SQL Server Business Intelligence Studio 内部运行 SQL Server Integration Services (SSIS) 包,或使用SQL Server执行包实用工具 (Dtexec.exe) 命令行工具时,会收到以下错误消息:

加载 PackageName 时出错:无法解密受保护的 XML 节点“PackagePassword”,并出现错误0x8009000B“在指定状态下使用的密钥无效”。
你可能无权访问此信息。 出现加密错误时,会发生此错误。 验证正确的密钥是否可用。

注意

PackageName 占位符是尝试运行的 SSIS 包名称的占位符。

尝试使用与用于创建 SSIS 包的计算机和用户帐户不同的计算机或用户帐户运行 SSIS 包时,会出现此行为。

原因

如果将 SSIS 包中的 属性的值 ProtectionLevel 设置为为 SSIS 包中的 Password 属性提供最大保护量,则会发生此行为。 默认情况下,属性的值 ProtectionLevel 设置为 EncryptSensitiveWithUserKeyEncryptSensitiveWithUserKey 值加密 SSIS 包的所有被视为敏感的属性,例如 Password 属性。 当同一用户帐户和用于创建 SSIS 包的同一台计算机用于运行 SSIS 包时,SSIS 包会自动解密,并且不会生成错误消息。 但是,当使用不同的用户帐户或另一台计算机来运行 SSIS 包时,将使用该属性的 ProtectionLevelEncryptSensitiveWithUserKey 值,并且 SSIS 包的 Password 属性保持加密状态。 发生这种情况时,将生成错误消息。

解决方案

若要解决此行为,请更改 SSIS 包中 属性的值 ProtectionLevel

更多信息

有关详细信息,请参阅 SQL Server 联机丛书中的以下主题:

  • Integration Services 的安全注意事项
  • 设置包的保护级别

References

有关类似问题的详细信息,请参阅从SQL Server 代理作业步骤调用时 SSIS 包不会运行