Konfigurieren der Datei pg_hba.conf, um den Zugriff anderer Server auf die Datenbank zu ermöglichen

15

Ich habe eine Postgres-Datenbank auf einem Server und muss von einem anderen Server aus darauf zugreifen können.

Ich muss die Datei pg_hba.conf bearbeiten, habe aber jetzt eine Vorstellung davon, wie diese Datei bearbeitet werden muss. Server Centos

Ich muss die folgende Zeile in die Datei einfügen

host    all         all         10.0.2.12         255.255.255.255   trust

Ich habe es gefunden in var/lib/pgsql/data/

Im Grunde bin ich mir nicht sicher, was die richtigen Schritte sind, um dies zu tun

Roland
quelle

Antworten:

14

Erstellen Sie zunächst eine Sicherungskopie der angegebenen Datei pg_hba.conf

sudo tar cvf /var/tmp/mybackup_pg_hba_conf.tar /var/lib/pgsql/data/pg_hba.conf

Auf diese Weise haben Sie die ältere Version bereit, wenn Sie vermasseln. Eine nette Funktion von tar archive ist, dass Berechtigungen und Verzeichnisse erhalten bleiben. Also wenn die pg_hba.conf bis zur Unkenntlichkeit kaputt ist. Du kannst:

cd /
sudo tar xvf /var/tmp/mybackup_pg_hba_conf.tar

Dadurch wird das Backup pg_hba.conf aus dem zuvor erstellten Archiv wiederhergestellt.

Wie für die tatsächliche Einfügung der Zeile:

sudo su -c 'echo "host    all         all         10.0.2.12         255.255.255.255   trust" >> /var/lib/pgsql/data/pg_hba.conf'

(HINWEIS: Befehl bearbeitet. Danke bortzmeyer!)

Sollte es tun. Beachten Sie, dass dadurch nur die Zeile an die Datei pg_hba.conf angehängt wird. Wenn Sie es jemals ändern müssen, müssen Sie einen aktuellen Editor verwenden. Wie vi. Die Lernkurve kann etwas steil sein, aber nachdem Sie zumindest die Grundlagen erlernt haben, sollten Sie in den meisten Unix-Umgebungen, denen Sie begegnen, ziemlich sicher sein.

Nachdem ich wieder auf dem richtigen Weg bin, sollten Sie als nächstes versuchen, Ihre postgresql-Datenbank neu zu starten. Auf einer Centos-Maschine geschieht dies, wie ich glaube, durch:

sudo service postgresql restart

oder Sie können die Konfiguration einfach ohne Neustart neu laden:

su - postgres
pg_ctl reload

Jetzt sollten Sie in der Lage sein, von 10.0.2.12 aus auf Ihre Centos-Computer-Datenbank zuzugreifen

Pyhimys
quelle
1
Das sudo im letzten Befehl funktioniert nicht, da die privilegierte Operation von einer Umleitung ausgeführt wird, die von der Shell und nicht von dem Programm ausgeführt wird, das Sie mit sudo ausführen (in diesem Fall Echo).
bortzmeyer
Guter Punkt! Es sollte als sudo "echo 'host all all 10.0.2.12 255.255.255.255 trust' >> /var/lib/pgsql/data/pg_hba.conf"
pyhimys
Der ideale Weg wäre, es der Versionskontrolle an einem Administratorstandort zu unterstellen und bereitzustellen, nachdem es über SSH usw.
geändert wurde
1
Der Standardspeicherort der Datei pg_hba.conf ist in 9.4 etwas anders: /var/lib/pgsql/9.4/data/pg_hba.conf.
Sergey Vlasov
13

Vergessen Sie nicht, die postgresql.conf zu bearbeiten und die Zeile zu ändern / hinzuzufügen

listen_addresses = '*'

Postgresql lauscht standardmäßig auf localhost

user16233
quelle
Ist Ihr list_addresses-Beispiel nicht zu tolerant? Dies ist eine Sicherheitslücke, wenn der Server auf mehreren IPs ausgeführt wird, dh öffentlich, intern, VPN usw.
vfclists