尝试运行 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 包时,会发生此行为。

原因

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

解决方法

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

详细信息

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

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

参考

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