如何不手动编辑SSIS dtsx软件包以更改SQL Server配置模式中的配置过滤器

时间:2014-10-24 05:10:30

标签: configuration ssis

我有很多使用包配置的软件包,方法如下:

- ALL 包具有仅配置了一个比例的XML配置文件。 SQL Server连接的ConnectionString,用于保存其余属性的配置表

-A SEPARATE 包中每个连接管理器的SQL Server包配置。

- 最后,我为所有配置了特定于此软件包的属性的SQL Server配置。

我附上了我的意思的照片:

Yellow是带有连接字符串的XML配置,Blue是connectionamangers,紫色是特定于包的。

SCREENSHOT

因此,通过此设置,我可以:

  • 更改xml文件位置,只需将所有设置指向另一个sql server或其他数据库。

  • 或者在同一个配置表中创建不同的配置过滤器,然后尝试进入包并更改过滤器。

以上所有问题是,如果我在VS中做任何事情,我会丢失连接字符串中的密码,因为我没有使用加密属性。而且我不想使用它......

我有什么选择?在我打开包装之前或部署之前,用记事本进入.dtsx,然后查找我想要的东西吗?

- 我不想使用EncryptSensitiveWithPassword,所以:

当我进入包配置并尝试将ConfoigurationFilter更改为指向另一个设置时,我将进入屏幕以选择属性(connectionstring),当我完成设置的DATABASE记录时,将从Password =我以前说的。

所以我简短了我想要的东西:

- 我的包裹中没有EncryptSensitiveWithPassword。

- 可以在VS中更改配置而不重置连接字符串字符串。

1 个答案:

答案 0 :(得分:1)

建议的方法是将dtsconfig文件的文件位置存储在环境变量中。然后更改dtsconfig以使用环境变量而不是硬编码位置。

因此,这种情况的细微差别是:

  • 当您重新保存xml文件时,密码会变空(正如您在问题中指出的那样)。这就是它,它是我从不使用它们的原因之一。
  • 进程(devenv.exe)将在启动时缓存环境变量的值。这意味着如果更改环境变量的值,则需要重新启动visual studio。
  • 上述同样的问题适用于集成服务服务。添加环境变量后,需要重新启动它。或者当您运行包时,将找不到值。

这个想法是你的开发机器指向一个开发实例。然后,当您将软件包迁移到新环境(QA,Prod)时,每个服务器都有自己的环境变量指向其各自的dtsconfig文件。

作为旁注,避免密码删除的类似模式是添加一个sql连接管理器,该管理器指向将加载其余配置的服务器。然后使用环境变量设置此连接管理器的连接字符串。优点是您不必复制配置文件。这最适用于集成安全性,因此您不会在环境配置中存储凭据。如果你想对它更加神秘,可以使用注册表项。