SSIS包部署加密问题

0
我有一个SSIS项目,包的数据源都是通过项目变量实现的,我直接将项目部署到SSIS目录中,发现一个问题:包中引用的数据源连接都是明文。   然后我把变量改成敏感的,再部署,执行包的时候报错,我想问,我如何在SSIS目录中看不到明文数据源连接信息?
我把我做的过程,再写一下:
1.新建MYDB项目变量 :

1.png

 
2.新建PACKAGE包,然后包中数据连接引用MYDB项目变量

2.png

3. 部署,并在SSMS中查看SSIS目录:
 

3.png

 
4.新建SSIS中环境变量,命名为TEST

4.png

5.SSIS中引用配置好的环境变量 

5.png

6.环境变量 

6.png

7.最悲剧的事情发生了,每个包的变量还是明文,我不可能每个包都按照这种方式配置吧。
 
7.png
已邀请:
0

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2015-08-28 回答

麻烦下次发问题的时候,请先把你的上下文环境说一下,类似用的SSIS是什么版本

你这个是 SSIS2012吗?

---------------------------------------------------------------------------------------------------------------
关于环境变量的用法:
1.png

2.png


关键字符我已经抹掉了,你可以看到ConnectionString 和 Password都来自于环境变量中的 相应的字符串。
而且 password显示出来的是 ****你是看不到的。
这么做的好处就是,如果你有多个服务器。 你只需要创建几个环境变量,而包只有一个只需要部署一次
下次有新的服务器来了, 还是用这个包的话。 直接再创建一个环境变量,就可以应对了
0

BIWORK - 热衷于微软BI技术,技术架构和解决方案! 2015-08-28 回答

首先你可以看到在 SQL SERVER 2008R2 版本中,这是一个 BUG,可以参考这篇文章。
https://connect.microsoft.com/SQLServer/feedback/details/361732/add-encryption-support-to-external-ssis-configuration-stores
在这篇文章中,2008年的时候微软已经承认了这是一个 BUG,但是在2010年的时候提出了新的部署机制,这个机制在2012版本得到了实现。通过新的包部署机制,这个问题得到了非常好的解决,并且参数的配置也更加方便和简单。
 
SQL SERVER 2008R2 版本中:
在开发阶段使用字符串变量保存数据库连接字符串包括用户名和密码,然后在部署阶段将此变量配置到 XML 文件中,这时的用户名和密码是明文的。包的配置文件在服务器上的存放目录是受保护的,仅只有执行包的用户才能有访问权限,这样即使是明文也没有问题。
 
SQL SERVER 2012 版本中或之后:
整个项目可以直接右键包部署,部署到 SSISDB 后里面的密码是可以直接配置的,受保护的。
 

要回复问题请先登录注册