在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语句。
答案 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