Tôi cố gắng kết nối máy chủ PostgreSQL với SQL Server 2012 làm máy chủ được liên kếtSQL Server 2012: Thêm máy chủ được liên kết vào PostgreSQL
Tôi tìm thấy một số lời khuyên trên diễn đàn khác và theo dõi. Nhưng tôi bị mắc kẹt với một vấn đề xác thực.
Tôi giải thích:
Trên SQL Server, tôi phải cài đặt các trình điều khiển ODBC cho PostgreSQL (psqlodbc_09_02_0100-x64). Tôi đã tạo một DSN hệ thống cho một cơ sở dữ liệu cụ thể trên PostgreSQL. DSN này hoạt động chính xác.
Sử dụng SSMS, tôi chạy lệnh này để thêm các máy chủ liên kết:
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
Sau khi chạy, tôi có một máy chủ liên kết mới gọi là "lnk_test". Khi tôi nhận được thông báo lỗi sau:
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)
Các thông báo lỗi là ở Pháp, các Traduction là: "xác thực bằng mật khẩu sai đối với user 'postgres' Tôi thấy thông báo lỗi tương tự trong nhật ký của máy chủ PostgreSQL. .
có ai có một ý tưởng để giải quyết vấn đề này?
Cảm ơn trước.
Jerome
[Cập nhật 2/08/2013] Tôi hoàn thành bài đăng này với kết quả của bài kiểm tra mà tôi nhận thấy hôm nay.
Khi sử dụng gói sniffer, tôi kiểm tra các gói được nối khi kiểm tra kết nối thông qua ODBS Data Source Administrator (64-bit) và thông qua Máy chủ được liên kết trong SMSS.
Các dữ liệu đều giống nhau giữa hệ thống 2:
Mở kết nối đến PostgreSQL
Gửi các chuỗi kết nối (tất cả các thông số đều giống nhau)
sự phản hồi của PostgreSQL yêu cầu mật khẩu (chỉ khác nhau là giá trị muối, nhưng nó là bình thường)
mật khẩu được sended trong cùng một cách (crypted với MD5)
Nhưng sau đó, phản ứng của các máy chủ khác nhau:
Đối với ODBC Data Source, tất cả các hoạt động chính xác. Tôi nhận được xác thực và có thể gửi truy vấn thử nghiệm.
Đối với SMSS, tôi nhận được thông báo lỗi (như mô tả ở trên).