我有很多使用包配置的软件包,方法如下:
- ALL 包具有仅配置了一个比例的XML配置文件。 SQL Server连接的ConnectionString,用于保存其余属性的配置表
-A SEPARATE 包中每个连接管理器的SQL Server包配置。
- 最后,我为所有配置了特定于此软件包的属性的SQL Server配置。
我附上了我的意思的照片:
Yellow是带有连接字符串的XML配置,Blue是connectionamangers,紫色是特定于包的。
因此,通过此设置,我可以:
更改xml文件位置,只需将所有设置指向另一个sql server或其他数据库。
或者在同一个配置表中创建不同的配置过滤器,然后尝试进入包并更改过滤器。
以上所有问题是,如果我在VS中做任何事情,我会丢失连接字符串中的密码,因为我没有使用加密属性。而且我不想使用它......
我有什么选择?在我打开包装之前或部署之前,用记事本进入.dtsx,然后查找我想要的东西吗?
- 我不想使用EncryptSensitiveWithPassword,所以:
当我进入包配置并尝试将ConfoigurationFilter更改为指向另一个设置时,我将进入屏幕以选择属性(connectionstring),当我完成设置的DATABASE记录时,将从Password =我以前说的。
所以我简短了我想要的东西:
- 我的包裹中没有EncryptSensitiveWithPassword。
- 可以在VS中更改配置而不重置连接字符串字符串。
答案 0 :(得分:1)
建议的方法是将dtsconfig文件的文件位置存储在环境变量中。然后更改dtsconfig以使用环境变量而不是硬编码位置。
因此,这种情况的细微差别是:
这个想法是你的开发机器指向一个开发实例。然后,当您将软件包迁移到新环境(QA,Prod)时,每个服务器都有自己的环境变量指向其各自的dtsconfig文件。
作为旁注,避免密码删除的类似模式是添加一个sql连接管理器,该管理器指向将加载其余配置的服务器。然后使用环境变量设置此连接管理器的连接字符串。优点是您不必复制配置文件。这最适用于集成安全性,因此您不会在环境配置中存储凭据。如果你想对它更加神秘,可以使用注册表项。