【问题标题】:Why does SSIS connection works with Windows but not with SQL Server authentication?为什么 SSIS 连接适用于 Windows,但不适用于 SQL Server 身份验证?
【发布时间】:2013-02-25 14:07:32
【问题描述】:

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

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

连接字符串:

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

【问题讨论】:

  • 您能否确认您的 SQL 服务器允许混合模式身份验证?难道仅仅是你的 SQL Server 被配置为只允许 Windows 身份验证?
  • 我也可以使用SQL认证和windows登录。
  • Data Source=TheServerName;User ID=TheSQLUser;Initial Catalog=TheDababase;Provider=SQLNCLI10.1;Persist Security Info=True;Application Name=NameOfThePackage{80F4BFAB-642D-457E-9F47-1E811AFA48D0} ServerName.TheDababase.TheSQLUser;那是connectionString,我看不到任何密码。 ConnectionString 中的 PW 在哪里?
  • 是的,因为您的连接字符串中没有密码

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


【解决方案1】:

问题原因:

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

可能的修复选项:

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

包配置:

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

建议:

我更喜欢使用 Windows 身份验证,这样连接数据库的密码就不会暴露。我觉得 Windows Authentication 比处理 SQL Server Authentication 安全一点。

【讨论】:

    【解决方案2】:

    这是我的解决方案:点击

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

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

    【讨论】:

    • 您能否更具体一点,您是如何解决这个问题的,因为我在 SQL 身份验证 ins 配置文件中遇到了同样的问题。它不会将密码存储在连接字符串中。
    猜你喜欢
    • 1970-01-01
    • 2022-12-15
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 2012-08-19
    • 2016-11-11
    • 2014-08-16
    • 2017-10-29
    相关资源
    最近更新 更多