Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Verbindungsserver zu Postgre SQL

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von Nordfreund, 14 Oktober 2013.

  1. Nordfreund

    Nordfreund Neuer Benutzer

    Hallo,



    ich stehe vor dem Problem, dass ich mit einem MS SQL Server 2008 R2 eine Postgre SQL Datenbank abfragen muß, die aber auf einem Server in Brasilien läuft.



    Ich habe auf dem MSSQL Server sowohl OLEDB als auch ODBC Treiber für Postgre installiert. Testweise habe ich per Excel eine Verbindung (OleDB) erstellt und konnte Daten abrufen. Firewalleinstellungen sind also kein Problem.



    Wenn ich jetzt einen Verbindungsserver einrichten will, versucht er immer eine Verbindung über den Standardport 5432 aufzubauen. Ich muß aber unbedingt den Port 5504 benutzen. Ich finde keine Möglichkeit, den Port an irgendeiner Stelle zu verändern...



    Für sachdienliche Hinweise ist zwar keine Belohnung ausgesetzt, aber mein Dank wird Euch ewig nachschleichen [​IMG]



    Oliver
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Mit M$SQL hab ich keinen Plan (mit PG schon eher...), aber via Google fand ich:

    http://stackoverflow.com/questions/17999235/sql-server-2012-add-a-linked-server-to-postgresql

    Code:
    @provstr=N'Driver=PostgreSQL Unicode(x64);uid=postgres;Server=test1;database=accueil;pwd=MyPassword;SSLmode=disable;PORT=5432'
    
    Die Stelle mit dem Port siehst Du?
     
    ukulele gefällt das.
  3. Nordfreund

    Nordfreund Neuer Benutzer

    Danke für den Hinweis, er bringt mich leider nicht weiter, da ich in ähnliche Probleme wie der Autor laufe... Hier mal meine Befehle:

    exec sp_addlinkedserver
    @server=N'DMGdoBrasil',
    @srvproduct=N'PostgreSQL Unicode(x64)',
    @provider=N'SQLOLEDBPGNP',
    @provstr=N'PostgreSQL Unicode(x64);uid=postgres;database=DBSTERNGOLD;pwd=MaPWD;SSLmode=disable;PORT=5504'

    EXEC master.dbo.sp_addlinkedsrvlogin
    @rmtsrvname=N'DMGdoBrasil',
    @useself=N'True',
    @locallogin=NULL,
    @rmtuser=NULL,
    @rmtpassword=NULL

    Der LinkedServer wird erstellt, aber beim Verbindungstest erhalte ich folgenden Fehler:


    Fehler bei der Testverbindung mit dem Verbindungsserver.
    ZUSÄTZLICHE INFORMATIONEN:
    Ausnahme beim Ausführen einer Transact-SQL-Anweisung oder eines Transact-SQL-Batches. (Microsoft.SqlServer.ConnectionInfo)

    Das Datenquellenobjekt des OLE DB-Anbieters 'SQLOLEDBPGNP' für den Verbindungsserver 'DMGdoBrasil' kann nicht initialisiert werden.
    Der OLE DB-Anbieter 'SQLOLEDBPGNP' für den Verbindungsserver 'DMGdoBrasil' hat die Meldung 'Cannot open DB connection.' zurückgeben.
    Der OLE DB-Anbieter 'SQLOLEDBPGNP' für den Verbindungsserver 'DMGdoBrasil' hat die Meldung 'could not connect to server: Connection refused (0x0000274D/10061)
    Is the server running on host "" and accepting
    TCP/IP connections on port 5504?


    Er erkennt offensichtlich nicht den Namen des Remote Servers. Den Port hat er ja dank Deines Tips richtig erkannt ...
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Wo in dem String da sollte er den Server denn erkennen?
     
  5. Nordfreund

    Nordfreund Neuer Benutzer

    Aber es hat mich auf die richtige Spur gebracht... Mit folgender Syntax hat es jetzt funktioniert:

    exec sp_addlinkedserver
    @server=N'DMGdoBrasil',
    @srvproduct=N'PostgreSQL Unicode(x64)',
    @provider=N'PGNP',
    @provstr=N'PostgreSQL Unicode(x64);server=Internetadresse;uid=postgres;database=DBSTERNGOLD;pwd=MyPWD;SSLmode=disable;PORT=5504',
    @catalog='DBSTERNGOLD',
    @datasrc=N'Internetadresse'


    Ich musste dann nur noch in den Eigenschaften des Linked Servers einstellen, dass er immer im Kontext des Remoteusers "postgres" läuft, inkl. richtigem Passwort...

    Auf jeden Fall Danke !
     
  6. akretschmer

    akretschmer Datenbank-Guru

    Na, dann kannst ja auch auf 'Gefällt mir' klicken, ...
     
    Nordfreund gefällt das.
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden