我曾经有一个使用 SQL Server 身份验证的 DTS 包。用户 ID 密码存储在包本身中。现在我已经转移到 SSIS,密码没有存储到包中。当我用谷歌搜索这个问题时,我看到了SSIS连接管理器密码,但似乎没有人给出一个好的解决方案。
您可以通过转到属性并添加
password=yourpassword
将密码存储在配置字符串中,但在 ;
之前和password
之后的行中的 ;
之后放置一个空格非常重要password
线,如下图:
Data Source=50.21.65.225;User ID=vc_ssis;
password=D@mc317Feo;
Initial Catalog=Sales;
Provider=SQLNCLI10.1;
Persist Security Info=True;Auto Translate=False;
Application Name=SSIS-PKG_CustomerData-{2A666833-6095-4486-C04F-350CBCA5C49E}IDM11.Sales.dev;
http://support.microsoft.com/kb/918760
以下是建议的解决方案 - 您评估过它们吗?
该方法可以解密秘密并满足用户的关键要求。但是,此方法的成功可能有限,因为 SSIS 包用户密钥涉及当前用户和当前计算机。因此,如果您将包移动到另一台计算机,即使作业步骤使用正确的代理帐户,此方法仍可能会失败。 回到顶部
相反,要么使用 Windows 身份验证,这样您就不会在包或配置文件中存储机密,或者,如果这在您的环境中确实不可能(例如,可能您没有 Windows 域),那么您必须使用所述的解决方法在
http://support.microsoft.com/kb/918760(Sam 是正确的,只需进一步阅读该文章)。最简单的答案是与包一起使用的配置文件,但是您必须担心配置文件是否安全存储,因此其他人无法读取它并获取凭据。
创建基于表达式的连接字符串并将密码保存在变量中并使用它。
创建连接后,选择该连接并打开“属性”。在表达式类别中找到密码。重新输入密码并按 Enter 键。现在它将保存到连接中。
双击SSIS包。然后转到连接管理器,选择 DestinationConnectionOLDB,然后在登录字段旁边添加密码。
示例:
Data Source=SysproDB1;User ID=test;password=test;Initial Catalog=ASBuiltDW;Provider=SQLNCLI11;Auto Translate=false;