2013-08-01 36 views
9

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).

Trả lời

7

Ok, tôi đã tìm thấy giải pháp.

Trong tệp pg_hba.conf, tôi thay đổi phương thức gửi mật khẩu từ MD5 để tin cậy. Sau khi tải lại máy chủ, kết nối máy chủ được liên kết của tôi hoạt động.

entry bây giờ là:

Type Database User Address Method 

host all  all x.x.x.x/x trust 

Trong hy vọng rằng giúp đỡ người khác dân tộc.

Các vấn đề liên quan