SQL Verbindungsserver MSSQL<-PostgreSQL

###Zaunpfahl###

Lt. Commander
Registriert
Jan. 2010
Beiträge
1.569
Hallo ich hoffe ihr könnt mir weiterhelfen, irgendwie steh ich komplett auf dem Schlauch worans denn genau liegt und was ich hierfür ändern muss.

Also ich hab einen Verbindungsserver zu einer PostgreSQL Datenbank erstellt.
Und hierfür in der MS Datenbank eine Prozedur geschrieben.
Funktioniert auch soweit alles einwandfrei.

Als ich dann aber die Prozedur über die Webseite ausführen wollte bekam ich folgenden Fehler:
"Das Datenquellenobjekt des OLE DB-Anbieters 'MSDASQL' für den Verbindungsserver 'dbasv' kann nicht initialisiert werden."
(Anmerkung: Ich bin Quereinsteiger in dem Projekt)

Was mir dann aufgefallen ist, wenn ich mich mit dem Microsoft SQL Server Management Studio mit einer SQL Authentifizierung und NICHT mit der Windows Authentifizierung anmelde bekomme ich auch Fehler u.a. den gleichen.
SQL Fehler.PNG

Die Verbindung zur Postgre Datenbank wurde mittels des ODBC Treibers von Postgre und dem Einrichten einer SystemDSN gemacht.

Andere Prozeduren die nichts mit einem Verbindungsserver zu tun haben (das hier ist der einzige) funktionieren einwandfrei. Sobald aber auch nur ein select auf den Verbindungsserver ausgeführt wird mittels dieser SQL Auth. Kennung gibts diesen Fehler, mit Windows Authent nicht!


Ich lass das mal jetzt fürs erste gut sein und wart erst einmal ab ob mir hierbei überhaupt jemand weiterhelfen kann/will.
Also falls jemand noch was wissen muss/will einfach fragen ich werde so ausführlich wie mir möglich antworten.
 
Hallo vielen dank für dein vorschlag, aber das bringt mich nicht so wirklich weiter.

1. Es handelt sich hier um eine MS SQL 2008 R2 Datenbank

2. Wo liest du in deinem verlinkten Artikel etwas über "falschen benutzer oder system"?
Das es irgendwie an Berechtigung oder einer Anmeldung liegt, das denke ich auch (wird ja in der Fehlerausgabe gesagt) aber was genau? Was muss ich ändern?
So weit wie im Link beschrieben funktioniert ja auch alles.
Ich habe eine Verbindung, ich kann einen Select ausführen und die Tabellen seh ich auch wenn ich den Verbindungsserver aufklapp, ABER ALLES NUR WENN ICH MICH IM MS MGMT Studio über Windows Authentifizierung anmelde!
Es kann doch nicht sein, dass das so kompliziert ist ._.
Und wieso laut Fehlermeldung das Passwort falsch sein soll versteh ich auch nicht, dieses ist ja fest im System-DSN hinterlegt, also für die PostgreSQL Datenbank
Ergänzung ()

ich hab das Gefühl, dass dieser sql user keine Berechtigung für den Zugriff auf die System-DSN hat...
 
Deswegen würde ich ADO für die Verbindung nutzen.
ist bei mir schon über 2 Jahre her, aber normal sollte das funktionieren.
Du erstellst dir einen ADO Connectionstrings, der funktioniert dann auch ohne ODBC (welches etwas veraltet ist).
 
Also wenn ich das richtig verstanden habe fällt dann aber der linked Server weg?
Wenn ja wäre das sowieso eine nicht so schöne Lösung, damit hätte ich dann eine Web File, der gesamte jetzige Code befindet sich in der Datenbank...


Aber gut, für meine Methode habe ich jetzt den Fehler gefunden.
Eigentlich ziemlich simpel, da mir aber die Webseite immer etwas von "Objekt konnte nicht initialisiert werden" und die Zugangsdaten in der System-DNS schon eingetragen sind hab ich daran nicht gedacht.

Es lag wirklich an den Zugangsdaten bzw. einer falschen Anmeldung!

Also ist man mit einer Windows Authentifizierung an der Datenbank angemeldet dann greifen die Anmeldedaten die im System-DSN eingetragen sind.
Ist man mit der SQL Authentifizierung angemeldet muss man diese an einen Remote Benutzer übergeben!
Sprich man macht wenn man die GUI hierfür benutzt einen rechtsklick auf den linked Server.
Dann auf Sicherheit trägt unter "lokale Anmeldung" den besagten SQL Nutzer ein, lässt das Häkchen für "Identität annehmen" draußen und trägt anschließend nochmals den Remote BN und das PW für die fremde Datenbank ein.
Und jetzt funktionert es!..endlich.
keine Ahnung wieso man das zweimal machen muss..aber wie schon gesagt es funktioniert.


trotzdem vielen Dank davidbaumann für deine Bemühungen
 
Zurück
Oben