Larry's blog

Dimensional Data Warehouse and Business Intelligence

导航

理解SSIS包保护级别(SSIS Package Protection Level)

Posted on 2015-07-18 19:35  larryqian86  阅读(619)  评论(0编辑  收藏  举报

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

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

 

DontSaveSensitive

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

 

EncryptSensitiveWithUserKey

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


EncryptSensitiveWithPassword

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


EncryptAllWithPassword

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


EncryptAllWithUserKey

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


ServerStorage

这个属性将会使用SQL Server 数据库权限来加密信息。这只有在包被保存到SSIS Server上时才有用。



以上就是全部,这个选项非常基础但也非常重要,理解它可以避免许多不必要的挫折。