作业中运行SSIS包报加密错误

 SSIS包有一个必须理解的属性。这个属性告诉SSIS如何处理包内的敏感信息。常见的是连接字符串当中存储的密码。为什么这个信息非常重要?因为如果不正确设置保护级别的话,SSIS包可能变得无法使用。其他开发者可能无法打开包,又或者在执行包的时候运行失败。理解这些选项,可以使得你在这些潜在的问题发生之前就解决它们。在理想的情况下,你不需要保存任何敏感数据,然而现实当中各种环境大不相同。

我们看看这些保护级别分别是什么吧。

DontSaveSensitive

当包保存时,敏感数据将会被移除。这样会导致密码需要通过用户或者配置文件提供。

EncryptSensitiveWithUserKey

敏感数据将会被加密,而密钥是基于当前用户的配置文件。敏感数据只能够被保存它的用户打开。如果另一个用户打开包的话,所有敏感数据将会被替换为空白。这在用户把包移交给其他用户工作时会导致问题。

EncryptSensitiveWithPassword

敏感数据将会被保存在包当中,并且通过密钥加密。每次在设计页打开包时,你需要提供密码以解密还原敏感数据。如果你清除了密码,那么所有敏感数据将会被空白所替代。这很适合在多人开发的场景下使用。

EncryptAllWithPassword

这与EncryptSensitiveWithPassword的工作原理相似,只不过不仅是敏感数据,整个包都会被进行加密。在设计页打开包时需要提供密码,否则就没法看到任何包的信息。

EncryptAllWithUserKey

这与EncryptSensitiveWithUserKey的工作原理相似,只不过整个包都会被进行加密。只有创建包的用户才被允许打开包。

 ===========================================================

通常制作的dts包需要加密,在VS中调试时需要把项目和dts包的属性设置为EncryptSensitiveWithUserKey。

 

调试没问题后把dts包的保护级别改为EncryptAllWithPassword,并设置密码,这样才能在sql作业中正常运行。否则会报错: 无法解密受保护的 XML 节点“DTS:Password”,错误为 0x8009000B“该项不适于在指定状态下使用。”。可能您无权访问此信息。当发生加密错误时会出现此错误,请确保提供正确的密钥。

 

 

posted @   最萌小胡胡  阅读(586)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
点击右上角即可分享
微信分享提示