2014-09-23 130 views
2

我需要在AIX上创建从SQL Server 2012到IBM DB2(9.x)的链接服务器。使用SSL创建连接是强制性的要求。通过SSL从SQL Server 2012到AIX DB2的链接服务器

我试图使用“Microsoft®OLEDB Provider for DB2 v4.0 forMicrosoft®SQLServer®2012”,但我无法通过MS OLEDB的数据访问工具连接到DB2。

后来我安装了IBM DB2客户端工具和GSKIT,通过这个我可以通过SSL连接到DB2。随着安装还提供了连接提供程序“用于DB2的IBM OLE DB提供程序”。问题是我无法创建链接服务器。

我总是得到错误信息

Cannot create an instance of OLEDB Provider "IBMDADB2.DB2COPY1" for linked Sever "mydb2" (Microsoft SQL Server , Error 7302)

在一些讨论中提到了对使用特定的供应商字符串,但在这种情况下,提供字符串的领域是灰色的。

我只是有产品名称和数据源的选项。数据源== IBM的BD2客户端工具的连接的数据库名称?我应该用什么作为数据源?

+0

您的DB2数据源是否在名为“damndb2”的Windows ODBC数据源管理器中显示? – mustaccio 2014-09-23 19:53:37

+0

我可以使用odbc连接damndb2(至少在CLI/ODBC设置中我有一个按钮“Connect”,它返回“Conncetion testet successfully”。)在绑定CLI/ODBC支持实用程序中显示一个日志,其中声明SQL0551N authotization或privelege on没有给出执行。 – 2014-09-24 09:52:29

+0

我在询问有关_Windows ODBC数据源管理员_ – mustaccio 2014-09-24 11:31:02

回答

0

好吧,我可以解决问题,并希望分享解决方案。

提到的提供程序IBMDADB2.DB2COPY1来自安装IBM DB2 Client工具。

在服务器对象 - >链接服务器 - >右键单击新服务器,您可以选择提供商。使用可以访问包括SSL密钥在内的已配置连接的“IBM OLE DB Provider for DB2 - DB2COPY1”,数据源字段变灰。 Linked Server - create new object

成功创建到DB2的链接服务器的关键不是人,而是脚本。在GUI中也可以使用提供程序字符串信息,即使它是灰色的。

EXEC master.dbo.sp_addlinkedserver @server = N'MyLinkedServer', @srvproduct=N'IBMDADB2', 
    @provider=N'IBMDADB2', @provstr= N'HOSTNAME=hosturl;Port=12345; 
     DATABASE=DBinDB2Client;UID=ItsMe;Pwd=secret;Security=SSL;', @datasrc=N'DBinDB2Client' 

Et瞧,你可以看到链接的服务器将被成功创建并且可以接受DB2数据库。问题解决了。

__

编辑:

链接服务器只能!由其创建者使用。如果其他用户要访问服务器时,他们会得到这样的错误:

无法创建OLE DB提供程序的实例“MSDADASQL”链接服务器“MYDB2”

有一个教程如何给对其他用户的许可: http://blogs.msdn.com/b/dataaccesstechnologies/archive/2011/09/28/troubleshooting-cannot-create-an-instance-of-ole-db-provider.aspx

在您完成本教程之后,您还需要重新启动。