为什么SSIS连接适用于Windows但不适用于SQL Server身份验证?

时间:2013-02-25 14:07:32

标签: ssis sql-server-2008-r2 lookup

我有一个包含查找转换的SSIS包。这需要连接到数据库。在连接管理器上,当我使用 Windows authentication 时,连接正常,但当我使用 SQL Server Authentication 时,我收到此错误:

  

[A140_DAMAGETYPETEXT [3799]]错误:SSIS错误代码DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。 AcquireConnection方法调用连接管理器“servername.Datenbankname.sqlUser”失败,错误代码为0xC0202009。在此之前可能会发布错误消息,其中包含有关AcquireConnection方法调用失败原因的更多信息。

连接字符串:

  

Data Source = TheServerName; User ID = The SQLUser; Initial Catalog = TheDababase; Provider = SQLNCLI10.1; Persist Security Info = True; Application Name = NameOfThePackage {80F4BFAB-642D-457E-9F47-1E811AFA48D0} ServerName.TheDababas e .TheSQLUser;

2 个答案:

答案 0 :(得分:2)

问题原因:

您的连接字符串缺少 Password 属性。这就是连接管理器无法连接到数据库实例的原因。

可能的修复选项:

在SSIS上创建连接管理器时,请务必检查 Save my password 框,以便在连接中保留 Password 串。如果不选中此框,则不会保留该值,您必须键入值。

Connection Manager

包配置:

如果您使用的是程序包配置,则添加/更新连接管理器将导致 Password 属性从连接字符串属性中删除。我通常使用基于数据库的包配置。因此,每次更新软件包配置时,我都会使用查询来更新软件包配置表中的连接字符串。

建议:

我更喜欢使用 Windows身份验证,以便不会公开连接到数据库的密码。我认为 Windows Authentication 比处理 SQL Server Authentication 更安全。

答案 1 :(得分:0)

这是我的解决方案:点击

来自Raj_007的线程是救援。我使用了一个sequece容器,并且TransactionOption设置为required。

我将TransactionOption更改为支持,它对我有用。