Base als Frontend: ssh-Tunnel

Eben habe ich die Lösung gefunden:
die (in base vorgegebene) Schreibweise host:port war das Problem.
Gebe ich an host=127.0.0.1 port= dbname= wird die Verbindung aufgebaut.
So erklärt sich auch die Fehlermeldung.
Herzlichen Dank an alle.

Ich benötige Zugriff auf eine postgresql-Datenbank mit Base als Frontend. Der DB-Server ist nur via SSH-Port-Forwarding zu erreichen.
Vielleicht erwähnenswert:der Server ist zusätzlich durch Firmen-VPN geschützt, das sollte aber keinen Unterschied machen.
Fürs Forwarding:
ssh -L :127.0.0.1: user@server → ssh verbindung ist aufgebaut
in base: host=127.0.0.1: dbname= und natürlich DB-Benutzer/Passwort.
Mit denselben Credentials komme ich per Python in die remote Datenbank d.h. der Port funktioniert.
Unter Windows komme ich mit derselben Portweiterleitung (über das eingebaute Linux oder Putty) und ein DSN mit postgresql-Treiber und denselben Credentials in MS Access ebenfalls in die DB.
Unten die Fehlermeldung (bei testdb steht natürlich der richtige Name meiner db)

Danke und herzlicher Gruss
Elke

Bildbeschreibung

Und Du hast in den Verbindungseinstellungen von Base zu Deiner PostgreSQL Datenbank host=127.0.0.1:<localPort>.... drin stehen?

Was steht denn bei den Verbindungseinstellungen? dbname=… hostname=localhost:localPort

… und wenn die Meldung kommt, dass er den Host nicht auflösen kann, so wäre dies eigentlich: Ich kann mit der IP nichts anfangen. Ist natürlich beim localhost merkwürdig.

Ich kann mit der IP nichts anfangen.

127.0.0.1 ist immer die IPv4 der lokalen Loopback-Schnittstelle lo (::1 ist die lokale IPv6 Adresse des Loopback Devices) und da die Verbindung über den SSH-Tunnel lauf soll, muss man an das Tunnelende der lokalen Schnittstelle verbinden.

Na ja, das wissen wir. Nur kommt ja die Meldung “Der Host konnte nicht aufgelöst werden”, und das ist eigentlich eine Meldung die ich erwarte, wenn ich den Namen habe und die IP dazu suche. Wenn ich übrigens hier verbinde, dann steht da grundsätzlich nicht die IP sondern “localhost”, aber das müsste eben wirklich egal sein.

@RobertG

Tut mir leid - ich habe Deinen Kommentar missverstanden. Ich dachte “Du” könntest mit der IP nichts anfangen, dabei meintest Du eine potentiell erwartete Fehlermeldung mit “Ich kann mit der IP nichts anfangen

Liebe beide
Ich habe oben versucht nochmal präziser zu sein. @RobertG: mit localhost passiert natürlich genau dasselbe.

Versuche den Kontakt zur PostgreSQL über JDBC zu erreichen. Es ist leider so, dass die unterschiedlichen Treiber unterschiedlich gut nutzbar sind. Die direkte Verbindung kann bestimmte Sachen nicht, die in der JDBC-Verbindung funktionieren, z.B. Ansichten erstellen.

Die Erfahrung habe ich nicht nur bei PostgreSQL sondern auch bei MariaDB/MySQL gemacht, dass oft die JDBC-Treiber mehr zu bieten haben oder reibungsloser laufen.

Herzlichen Dank für den Rat, RobertG! Im Augenblick verwende ich Base als Frontend nur für ein einziges Formular (alles andere mache ich in Navicat, das keine Formulare bietet), da gings immer gut.
Habe den jdbc-Treiber eben eingebunden (wusste vorher gar nicht dass das geht), läuft prima auch mit dem Port Forwarding.