So konfigurieren Sie PostgreSQL so, dass alle eingehenden Verbindungen akzeptiert werden


106

Ich habe eine PostgreSQL-Datenbank, die ich so konfigurieren möchte, dass alle eingehenden Verbindungen unabhängig von der Quell-IP-Adresse akzeptiert werden. Wie kann dies in der Datei pg_hba.conf konfiguriert werden? Ich verwende postgreSQL Version 8.4.

Antworten:


213

Einfach benutzen 0.0.0.0/0.

host    all             all             0.0.0.0/0            md5

Stellen Sie sicher, dass listen_addressesin postgresql.conf(oder ALTER SYSTEM SET) eingehende Verbindungen auf allen verfügbaren IP-Schnittstellen zulässt.

listen_addresses = '*'

Nach den Änderungen müssen Sie die Konfiguration neu laden. Eine Möglichkeit, dies zu tun, besteht darin, dies SELECTals Superuser auszuführen .

SELECT pg_reload_conf();

funktioniert das wirklich mit typ md5? Ich dachte, es wäre notwendig, Typ zu verwenden trust...
Dan LaRocque

5
"Vertrauen" ermöglicht allen Benutzern, eine Verbindung ohne Kennwort herzustellen. Das würde ich nicht verwenden, ein Passwort ist das absolute Minimum, das Sie immer verwenden sollten. Auch auf Ihrem eigenen Computer.
Frank Heikens

1
Ah, ich habe die Frage anders gelesen - ich dachte, er wollte bedingungslos Verbindungen von allen Clients annehmen (für ein unwichtiges Testfeld vielleicht). Ich sehe, worauf du gerade hinaus willst.
Dan LaRocque

6
HINWEIS : Wenn Ihr Netzwerk IPv6 ist, müssen Sie ::/0im Gegensatz zum 0.0.0.0/0Ändern der Datei pg_hba.conf verwenden.
Aron Boyette

2
Stellen Sie sicher, dass Sie ein sicheres postgresPasswort haben: sudo -u postgres psql, \password.
Adobe

47

0.0.0.0/0 für alle IPv4-Adressen

::0/0 für alle IPv6-Adressen

all um eine beliebige IP-Adresse zu finden

samehost um mit einer der eigenen IP-Adressen des Servers übereinzustimmen

samenet um eine Adresse in einem Subnetz zu finden, mit dem der Server direkt verbunden ist.

z.B

host    all             all             0.0.0.0/0            md5


0

Konfiguration aller Dateien mit Postgres 12 auf Centos:

Schritt 1: Datei suchen und bearbeiten

sudo vi /var/lib/pgsql/12/data/pg_hba.conf

Drücken Sie "i" und ändern Sie in Zeile IPv4

host    all             all             0.0.0.0/0            md5

Schritt 2: Suchen und bearbeiten Sie die Datei postgresql.conf

sudo vi /var/lib/pgsql/12/data/postgresql.conf

letzte Zeile hinzufügen: listen_addresses = '*': wq! (Datei speichern) - Schritt 3: Neustart

systemctl restart postgresql-12.service

-6

Fügen Sie diese Zeile zur Datei pg_hba.conf des Ordners postgres hinzu

host    all    all    all    trust

"Vertrauen" ermöglicht allen Benutzern, eine Verbindung ohne Kennwort herzustellen.


Können Sie dem Code vielleicht einen Kommentar hinzufügen? Wo soll es hingelegt werden und wie funktioniert es?
Alistra

4
Während dieser Code - Schnipsel zu begrüßen ist, und etwas Hilfe bieten kann, würde es erheblich verbessert , wenn es eine Erklärung enthalten von , wie und warum Dies löst das Problem. Denken Sie daran, dass Sie in Zukunft die Frage für die Leser beantworten, nicht nur für die Person, die jetzt fragt! Bitte bearbeiten Sie Ihre Antwort, um eine Erklärung hinzuzufügen, und geben Sie an, welche Einschränkungen und Annahmen gelten.
Toby Speight

Verbindungen von allen
IPs
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.