Fernzugriff über Netzwerk auf PostgreSQL Datenbank

Aus ITwiki
Version vom 12. Dezember 2012, 09:27 Uhr von Franky (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Bei PostgreSQL ist der Zugriff über Netzwerk standardmäßig deaktiviert. Zum Aktivieren des Netzwerkzugriffs am Postgres SQL Server müssen zwei Konfigurationsdateien editiert werden. Falls du die Postgres Version 8.2.x oder höher im Einsatz hast, kann es sein, dass die Konfigurationsdateien in einem anderen Verzeichnis liegen.

Die erste zu editierende Datei ist /var/lib/pgsql/data/pg_hba.conf. Das Ende der Datei sollte so ähnlich wie folgt aussehen:

# If you want to allow non-local connections, you need to add more
# "host" records. In that case you will also need to make PostgreSQL listen
# on a non-local interface via the listen_addresses configuration parameter,
# or via the -i or -h command line switches.
#
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
# IPv4 local connections:
# IPv6 local connections: 
local all all        md5
host all all  127.0.0.1   255.255.255.255   md5

Nun musst du am Besten am Ende der Datei die IP Adresse des Clients, von dem aus du auf die Datenbank zugreifen möchtest, hinzufügen. Wenn Du beispielsweise von der IP Adresse 192.168.0.10 mit der Subnetmask 255.255.255.0 verbinden möchtest, füge folgende Zeile hinzu:

host all all 192.168.0.10/32 trust

Du kannst auch das trust zu md5 ändern, wenn du möchtest, dass der Host nur einen Login mit einem MD5 verschlüsselten Passwort erlauben soll (trust erlaubt die Verbindung ohne System-Zugangsdaten).

Der nächste Schritt ist das generelle Aktivieren des Netzwerkzugriffs für Postgres, so dass er auf fremde Anfragen genauso hört, wie auf lokale. Editiere die Datei /var/lib/pgsql/data/postgresql.conf und suche nach folgender Zeile:

#listen_addresses='localhost'

Du kannst diese Zeile in eine der folgenden zwei Zeilen ändern. Beachte dabei die # am Anfang der Zeile zu entfernen, wenn dort eine vorhanden ist. Die Erste erlaubt Postgres auf alle lokalen IPs zu hören, wobei die Zweite eine bestimmte IP für Postgres zum darauf höhren vorgibt (ändere diese auf deine IP!).

listen_addresses='*'
listen_addresses='192.168.2.10'

Das wär es soweit. Stelle sicher, dass deine Firewall die Verbindung über den Port 5432 zulässt und dann starte Postgres einfach neu.


Nützliche Links