próbuję podłączyć PostgreSQL do serwera SQL Server 2012 jako serwer połączonySQL Server 2012: Dodaj do połączonego serwera PostgreSQL
znalazłem kilka rad na innym forum i po nim. Ale utknąłem z problemem uwierzytelnienia.
wyjaśnię:
W SQL Server, mam zainstalować sterownik ODBC dla PostgreSQL (psqlodbc_09_02_0100-x64). Stworzyłem systemową DSN do określonej bazy danych w PostgreSQL. Ten DSN działa poprawnie.
Korzystanie SSMS, uruchomić to polecenie, aby dodać serwer połączony:
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
Po uruchomieniu, mam nowy serwer połączony nazwie „lnk_test”. Kiedy pojawia się następujący komunikat o błędzie:
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)
komunikat o błędzie jest w Francuskiej, traduction brzmi: „Uwierzytelnianie hasłem powiodło się dla użytkownika«postgres»Uważam ten sam komunikat o błędzie w dzienniku serwera PostgreSQL. .
Czy ktoś ma pomysł na rozwiązanie tego problemu?
Dzięki z góry.
Jerome
[Aktualizacja 2/08/2013] Kończę ten post z wynikiem testu, który dziś zdaję sobie z realizacji.
Kiedy używam sniffera pakietów, sprawdzam pakiety wysyłane podczas testowania połączenia za pośrednictwem ODBS Data Source Administrator (64-bit) i przez serwer Linked w ramach SMSS.
dane są takie same między systemem do 2 dla:
Otwarcie połączenia z PostgreSQL
Wysyłanie ciąg połączenia (wszystkie parametry są takie same)
się odpowiedź PostgreSQL z prośbą o hasło (tylko inna jest wartość salt, ale jest to normalne)
hasło są Wysłano wiadomość w taki sam sposób (zaszyfrowane z MD5)
Ale po odpowiedź serwera różnią:
Dla ODBC Data Source, wszystko działa poprawnie. Otrzymuję uwierzytelnienie i mogę wysłać zapytanie testowe.
W przypadku wiadomości SMS pojawia się komunikat o błędzie (zgodnie z opisem górnym).