Как добавить сервер IBM DB2 на связанный сервер SQL Server - PullRequest
4 голосов
/ 21 июля 2011

Из .Net я могу подключиться к базе данных DB2:

  1. Сначала я включаю ссылку на "IBM.Data.DB2.iSeries"
  2. Затем я создаю новый IBM.Data.DB2.iSeries.iDB2Connection.Строка подключения:

    DataSource=ChaDb2Server;UserID=MyUsername;Password=MyPassword;
    
  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:        ???

Я могу оставить поле «Местоположение» пустым, но имя продукта не может быть пустым, и я не могуНе знаю, что здесь заполнить.

На вкладке «Безопасность» я выбираю «Сделать с помощью этого контекста безопасности» и повторяю идентификатор пользователя и пароль.

Создается связанный сервер,но когда я пытаюсь развернуть каталоги / по умолчанию / таблицы, я получаю сообщение об ошибке:

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

Я понятия не имею, откуда появилось имя IBMDADB2.DB2COPY1.

Кроме того, когдапопробуйте выбрать данные:

Select * from ChaDB2Server.ChaDb2Server.Information_Schema.Tables

Я получаю похожую ошибку:

Msg 7399, Level 16, State 1, Line 1
OLE DB provider 'IBMDADB2.DB2COPY1' reported an error. Authentication failed.

Очевидно, что что-то отсутствует в том, как я связываю серверы.Кто-нибудь знает, как это сделать?

Ответы [ 3 ]

2 голосов
/ 21 июля 2011

Мне не повезло, используя провайдера IBM. Я слышал, это сложно. Тем не менее я успешно использовал поставщик OLE DB для драйверов ODBC.

Моя конфигурация указывает на DSN и работает хорошо. Единственные 3 поля, которые я заполнил, - это провайдер (провайдер Microsoft OLE DB для драйверов ODBC), название продукта (значение = «не используется») и источник данных (имя DSN на сервере SQL).

Если вы не возражаете против использования поставщика ODBC, он будет работать для вас.

2 голосов
/ 08 сентября 2014

Способ установки DB2 LUW сервера в качестве связанного сервера в SQL заключается в следующем:

1- Я установил соответствующий DB2 LUW клиент на mySQL Сервер

--> This will installed the missing driver for DB2 (IBMADB2.DB2COPY1)

2- Я создаю связанный сервер следующим образом:

replace the <...text...>  with your values

/****** Object:  LinkedServer [<DB2_DB_Name>]    Script Date: 09/08/2014 09:46:02 ******/
EXEC master.dbo.sp_addlinkedserver @server = N'<DB2_DB_Name>', @srvproduct=N'IBMADB2.DB2COPY1', @provider=N'IBMDADB2.DB2COPY1', @provstr=N'Database=<DB2_DB_Name>;Hostname=<DB2 Server running the DB2 database>;Port=5900'
 /* For security reasons the linked server remote logins password is changed with ######## */
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'<DB2_DB_Name>',@useself=N'True',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL
GO
EXEC master.dbo.sp_serveroption @server=N'<DB2_DB_Name>', @optname=N'collation compatible', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'<DB2_DB_Name>', @optname=N'data access', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'<DB2_DB_Name>', @optname=N'dist', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'<DB2_DB_Name>', @optname=N'pub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'<DB2_DB_Name>', @optname=N'rpc', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'<DB2_DB_Name>', @optname=N'rpc out', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'<DB2_DB_Name>', @optname=N'sub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'<DB2_DB_Name>', @optname=N'connect timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'<DB2_DB_Name>', @optname=N'collation name', @optvalue=null
GO
EXEC master.dbo.sp_serveroption @server=N'<DB2_DB_Name>', @optname=N'lazy schema validation', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'<DB2_DB_Name>', @optname=N'query timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'<DB2_DB_Name>', @optname=N'use remote collation', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'<DB2_DB_Name>', @optname=N'remote proc transaction promotion', @optvalue=N'true'
GO
0 голосов
/ 21 июля 2011

Не знаю почему, но мне никогда не удавалось заставить работать связанные серверы при настройке через графический интерфейс.Тем не менее, я имел успех, делая это с sp_addlinkedserver.Смотрите здесь инструкции IBM по настройке: https://www -304.ibm.com / support / docview.wss? Uid = swg21394344

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...