通过SSIS更新时的Sybase身份验证问题

时间:2013-01-22 17:26:41

标签: ado.net ssis sybase

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

程序包将随机失败并显示“身份验证违规”错误消息,它永远不会出现在同一记录中。 经过一番研究后,我发现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任务中使用时,这只会给出一条错误消息'无法在过程中设置connection_authentication'。理想情况下,我希望将字符串合并到连接中,而不是更改每个SQL语句。

1 个答案:

答案 0 :(得分: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