2

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

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

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

我总是收到错误消息

无法为链接的服务器“mydb2”创建 OLEDB 提供程序“IBMDADB2.DB2COPY1”的实例(Microsoft SQL Server,错误 7302)

在一些讨论中提到使用特定的提供程序字符串,但在这种情况下,提供程序字符串的字段是灰色的。

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

4

1 回答 1

0

好的,我可以解决问题并想分享解决方案。

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

在 Server Objects --> Linked Servers --> 右键单击​​新服务器,您可以选择提供程序。使用“IBM OLE DB Provider for DB2 - DB2COPY1”可以访问已配置的连接(包括 SSL 密钥),数据源字段显示为灰色。 链接服务器 - 创建新对象

成功创建到 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'

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

__

编辑:

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

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

有一个教程如何授予其他用户权限:http: //blogs.msdn.com/b/dataaccesstechnologies/archive/2011/09/28/troubleshooting-cannot-create-an-instance-of-ole-db -provider.aspx

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

于 2014-11-04T09:51:10.090 回答