如何在SSIS包开发期间使用DontSaveSensitive和xml配置文件

dee*_*dee 5 ssis configuration-files

是否有可能将SSIS包ProtectionLevel设置为DontSaveSensitive,在Visual Studio的包开发过程中使用连接字符串和配置文件中的密码

我有Package例如Package1 with ProtectionLevel = DontSaveSensitive.该软件包使用连接管理器连接,例如Connection1.

Package1使用配置文件file1.dtsConfig 启用配置,并指定了连接字符串.此连接字符串中包含密码:

<DTSConfiguration>
    <DTSConfigurationHeading>
        <DTSConfigurationFileInfo GeneratedBy="..." GeneratedFromPackageName="..." GeneratedFromPackageID="..." GeneratedDate="20.3.2013 12:08:27"/>
    </DTSConfigurationHeading>
    <Configuration ConfiguredType="Property" Path="\Package.Connections[Destination].Properties[ConnectionString]" ValueType="String">
        <ConfiguredValue>Data Source=.;Password=Password123;User ID=MyUser;Initial Catalog=Catalog;Provider=SQLNCLI10.1;Persist Security Info=True;Auto Translate=False;</ConfiguredValue>
    </Configuration>
</DTSConfiguration>
Run Code Online (Sandbox Code Playgroud)

现在,当从Visual Studio中的连接管理器打开连接时,Password文本字段保留为空,并且包不会执行.为什么没有使用配置文件file1.dtsConfig中连接字符串中指定的密码?

在此输入图像描述

dee*_*dee 5

最后,我们找到了一种方法:

  • 将ProtectionLevel更改为DontSaveSensitive
  • 使用连接字符串创建配置文件
  • 手动编辑此配置文件:如果使用SQL Server身份验证进行连接,请将密码添加到连接字符串中

然后,即使在Visual Studio中,SSIS包也将从配置文件中加载包含连接字符串的密码。在“连接管理器-连接”对话框中,将不会显示密码,但程序包将使用配置中的连接字符串运行。