从 .Net,我可以连接到 DB2 数据库:
然后我创建一个新的 IBM.Data.DB2.iSeries.iDB2Connection。连接字符串是
DataSource=ChaDb2Server;UserID=MyUsername;Password=MyPassword;
Run Code Online (Sandbox Code Playgroud)然后我创建了一个 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, …Run Code Online (Sandbox Code Playgroud)