Fernzugriff über Netzwerk auf PostgreSQL Datenbank: Unterschied zwischen den Versionen

Aus ITwiki
Wechseln zu: Navigation, Suche
K
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== Installation unter Debian ==
 
Das Paket für die Installation heisst:
 
* Postgres 8.1
 
 
=== Benutzer einrichten ===
 
Um sich das Einrichten von Benutzern zu erleichtern, sollte zuerst mit dem Benutzer ''root'' dem Benutzer ''postgres'' ein Passwort zugewiesen werden:
 
<span style="color: #008888">debian:/#</span> passwd postgres
 
 
Anschließend meldet man sich mit dem Benutzer ''postgres'' an.
 
<span style="color: #008888">debian:/#</span> su postgres
 
 
Nun vergeben wir dem Benutzer ''postgres'' auf dem SQL Server das selbe Passwort wie zuvor.
 
<span style="color: #008888">postgres@debian:/$</span> psql -c "ALTER USER postgres WITH PASSWORD 'MeinPasswort'"
 
 
Danach ist es möglich, sich an der Datenbank anzumelden, um beispielsweise über SQL einen neuen Benutzer oder eine neue Datenbank anzulegen.
 
<span style="color: #008888">postgres@debian:/$</span> psql -h localhost -U postgres template1
 
 
=== phpPgAdmin ===
 
Um auch mit phpPgAdmin auf die Datenbank zugreifen zu können, werden folgende Pakete benötigt:
 
* Apache2
 
* php5
 
* php5-pgsql
 
* phppgadmin
 
 
 
== Netzwerkzugriff setzen ==
 
 
 
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.
 
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.
  
Zeile 69: Zeile 42:
 
</source>
 
</source>
  
Das wär es soweit. Stelle sicher, dass deine Firewall die Verbindung über den 5432 zulässt und dann starte Postgres einfach neu.  
+
Das wär es soweit. Stelle sicher, dass deine Firewall die Verbindung über den Port 5432 zulässt und dann starte Postgres einfach neu.  
 
 
[[Bild:postgresql-network-access-2.JPG]]
 
[[Bild:postgresql-network-access-3.JPG]]
 
  
  

Aktuelle Version vom 12. Dezember 2012, 10:27 Uhr

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[Bearbeiten]