我嘗試一個PostgreSQL到SQL Server連接2012服務器作爲鏈接服務器的SQL Server 2012:鏈接的服務器添加到PostgreSQL
我發現在不同的論壇上提出了一些建議,並按照它。但我堅持認證問題。
我解釋一下:
在SQL Server中,我有安裝PostgreSQL的(psqlodbc_09_02_0100-64)的ODBC驅動程序。我創建了一個系統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的’我找到日誌PostgreSQL服務器在相同的錯誤消息。 。
是有人有一個想法,爲解決這個問題呢?提前
感謝。
傑羅姆
[更新2013年2月8日] 我完成這篇文章與我今天實現的測試結果。當使用數據包嗅探器時,我檢查通過ODBS數據源管理員(64位)和SMSS下的鏈接服務器測試連接時發送的數據包。
的數據是2系統之間是相同的爲:
打開到PostgreSQL
的連接發送所述連接字符串(所有參數都相同)
的PostgreSQL要求輸入密碼的響應(只有不同的是鹽值,但這是正常的)
密碼被sended以相同的方式(用MD5加密後)
但之後,服務器的響應不同:
對於ODBC數據源,一切工作正常。我收到驗證並可以發送測試查詢。
對於SMSS,我收到一條錯誤消息(如上所述)。