如何将 IBM DB2 服务器添加到 SQL Server 的链接服务器

All*_*n W 5 sql-server db2 linked-server

从 .Net,我可以连接到 DB2 数据库:

  1. 首先,我引用了“IBM.Data.DB2.iSeries”
  2. 然后我创建一个新的 IBM.Data.DB2.iSeries.iDB2Connection。连接字符串是

    DataSource=ChaDb2Server;UserID=MyUsername;Password=MyPassword;
    
    Run Code Online (Sandbox Code Playgroud)
  3. 然后我创建了一个 IBM.Data.DB2.iSeries.iDB2Command,等等。

现在我试图让我的 SQL Server 2005 直接访问相同的数据。在 SQL Server Management Studio 中,我右键单击链接服务器,然后选择“新建链接服务器...”

Linked Server:   ChaDb2Server
Provider:        IBM OLE DB Provider for DB2
Product Name:    ???
Data Source:     ChaDb2Server
Provider String: DataSource=ChaDb2Server;UserID=MyUsername;Password=MyPassword;
Location:        ???
Run Code Online (Sandbox Code Playgroud)

我可以将 Location 留空,但 Product Name 不能为空,我不知道在这里填写什么。

在“安全”选项卡上,我选择“使用此安全上下文制作”并重复用户 ID 和密码。

链接服务器已创建,但是当我尝试展开目录/默认/表时,我收到一条错误消息:

OLE DB provider 'IBMDADB2.DB2COPY1' reported an error. Authentication failed. (Microsoft SQL Server, Error: 7399)
Run Code Online (Sandbox Code Playgroud)

我不知道 IBMDADB2.DB2COPY1 这个名字从何而来。

另外,当我尝试选择数据时:

Select * from ChaDB2Server.ChaDb2Server.Information_Schema.Tables
Run Code Online (Sandbox Code Playgroud)

我收到类似的错误:

Msg 7399, Level 16, State 1, Line 1
OLE DB provider 'IBMDADB2.DB2COPY1' reported an error. Authentication failed.
Run Code Online (Sandbox Code Playgroud)

显然,我链接服务器的方式缺少一些东西。有人知道怎么做吗?

hoo*_*cus 0

我不知道为什么,但在通过 GUI 设置时,我从来没有运气让链接服务器正常工作。不过,我已经成功地使用 sp_addlinkedserver 做到了这一点。请参阅此处了解 IBM 有关如何设置的说明:https://www-304.ibm.com/support/docview.wss? uid=swg21394344