【问题标题】:Sybase Authentication Issue When Updating Via SSIS通过 SSIS 更新时的 Sybase 身份验证问题
【发布时间】:2013-10-16 16:23:32
【问题描述】:

在 SSIS 包中,我使用 ADO.Net 连接与 Sybase v9 数据提供程序进行一系列更新。

包将随机失败,并显示“身份验证违规”的错误消息,它永远不会在同一记录中。 经过一番研究,我发现 Sybase 需要以下格式的 connection_authentication 字符串:

SET TEMPORARY OPTION connection_authentication='Company=CompanyName Plc;Application=AppName;Signature=000fa55157ed..etc'

我知道我的数据库的正确字符串,因为我运行了以下内容:

CALL sa_conn_properties( );

所以我知道要使用的正确字符串,但是如何将其合并到 SSIS 中。理论上它可以像这样调用 SQL 语句:

EXEC SQL SET TEMPORARY OPTION connection_authentication='Company=CompanyName Plc;Application=AppName;Signature=000fa55157ed..etc'

但在 SQL 任务中使用时,这只会给出错误消息“无法从过程中设置连接身份验证”。理想情况下,我希望将字符串合并到连接中,而不是更改每个 SQL 语句。

【问题讨论】:

  • 当您从 Execute SQL Task 尝试执行此操作时,是否只有其中的语句?
  • 顺便说一句,我的想法是以与我描述here相同的方式接近它
  • 有机会看看单连接方法是否能解决您的问题?

标签: ado.net ssis sybase


【解决方案1】:

找到答案:

在 SSIS 中创建一个新的 ADO.Net 连接管理器。

对于提供者,选择“.Net Providers\Odbc Data Provider”。

选择使用连接字符串的单选按钮。

输入以下格式的连接字符串(但省略我为清楚起见添加的额外空格):

Driver={Adaptive Server Anywhere 9.0};
uid=MyName;
compress=No;
commlinks=SharedMemory,TCPIP{Host=10.10.10.10};
disablemultirowfetch=Yes;
debug=No;
integrated=No;
autostop=No;
enginename=MyServer;
initstring=SET TEMPORARY OPTION CONNECTION_AUTHENTICATION='
    Company=MyComapny;
    application=MyApplication;
    signature=000fa552

连接字符串的关键部分是添加身份验证数据的initstring部分。

我从以下页面找到了答案:

http://dcx.sybase.com/1201/en/dbadmin/running-s-3417964.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    • 1970-01-01
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多