SQL Server 2012: добавление связанного сервера в PostgreSQL
Я пытаюсь подключить PostgreSQL к серверу SQL Server 2012 в качестве связанного сервера
Я нашел несколько советов на разных форумах и следую им. Но у меня проблема с аутентификацией.
объясняю:
на SQL Server я установил драйвер ODBC для PostgreSQL (psqlodbc_09_02_0100-x64). Я создал системный DSN для конкретной базы данных на PostgreSQL. Этот DSN работает правильно.
используя SSMS, я запускаю эту команду, чтобы добавить связанный сервер:
EXEC master.dbo.sp_addlinkedserver
@server = N'lnk_test',
@srvproduct=N'PostgreSQL Unicode(x64)',
@provider=N'MSDASQL',
@provstr=N'Driver=PostgreSQL Unicode(x64);uid=postgres;Server=test1;database=accueil;pwd=MyPassword;SSLmode=disable;PORT=5432'
EXEC master.dbo.sp_addlinkedsrvlogin
@rmtsrvname=N'lnk_test',
@useself=N'True',
@locallogin=NULL,
@rmtuser=NULL,
@rmtpassword=NULL
после запуска у меня есть новый связанный сервер под названием "lnk_test". Когда я получаю следующее сообщение об ошибке:
Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "pgTest1_accueil".
OLE DB provider "MSDASQL" for linked server "pgTest1_accueil" returned message "[Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed".
OLE DB provider "MSDASQL" for linked server "pgTest1_accueil" returned message "FATAL: authentification par mot de passe échouée pour l'utilisateur « postgres »". (Microsoft SQL Server, Error: 7303)
сообщение об ошибке на французском языке, traduction: "аутентификация паролем не удалось для пользователя "postgres". Я вижу то же сообщение об ошибке в журнал сервера.
кто-то есть идея для решения этой проблемы?
спасибо продвижение.
Джером
[обновление 2/08/2013] Я завершаю этот пост с результатом теста, который я понимаю сегодня.
при использовании сниффера пакетов я проверяю пакеты, отправленные при тестировании соединения через администратора источника данных ODBS (64-бит) и через связанный сервер под SMSS.
данные одинаковы между Системой 2 для:
открытие соединения с В PostgreSQL
отправка строки подключения (все параметры совпадают)
ответ PostgreSQL, запрашивающий пароль (только другое значение соли, но это нормально)
пароль отправлен таким же образом (зашифрован с помощью MD5)
но после, ответ сервера отличается:
для источника данных ODBC все работает правильно. Я получаю аутентификация и может отправить тестовый запрос.
для SMSS я получаю сообщение об ошибке (как описано выше).
1 ответов
Ок, я нашел решение.
в файле pg_hba.conf file, я меняю метод отправки паролей из MD5 на trust. После перезагрузки сервера работает мое связанное соединение с сервером.
запись выглядит так:
Type Database User Address Method
host all all x.x.x.x/x trust
в надежде, что помощь другим народам.