5

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

我有包例如Package1 与 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>

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

在此处输入图像描述

4

3 回答 3

5

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

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

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

于 2013-03-21T13:11:49.227 回答
0

SSIS将Config File只在. 因此,下次使用打开包时,您需要再次输入凭据,否则包不会,但如果您指定了包,包将始终正确执行。runtimeSave my PasswordBIDS sessionBIDSVisual Studiocompilerun timeconnection stringconfig file

根据MSDN,它明确指出

不保存敏感:防止标记为敏感的属性与包一起保存,从而使敏感数据对其他用户不可用。

于 2013-03-20T11:37:54.383 回答
0

当包首先设置为使用 EncryptSensitiveWithUserKey,然后更改为 DontSaveSensitive 保护级别时也是如此。您必须手动编辑 .conmgr-file 并删除 DTS:Password 元素并将密码放入连接字符串中,正如用户dee在上面明智地写的那样。

于 2015-04-24T09:58:05.973 回答