Jak skonfigurować PostgreSQL, aby akceptował wszystkie połączenia przychodzące

106

Mam bazę danych PostgreSQL, którą chciałbym skonfigurować, aby akceptowała wszystkie połączenia przychodzące, niezależnie od źródłowego adresu IP. Jak można to skonfigurować w pliku pg_hba.conf? Używam PostgreSQL w wersji 8.4.

Fergal
źródło

Odpowiedzi:

216

Po prostu użyj 0.0.0.0/0.

host    all             all             0.0.0.0/0            md5

Upewnij się, że listen_addressesin postgresql.conf(lub ALTER SYSTEM SET) zezwala na połączenia przychodzące na wszystkich dostępnych interfejsach IP.

listen_addresses = '*'

Po zmianach musisz ponownie załadować konfigurację. Jednym ze sposobów jest wykonanie tego SELECTjako superużytkownik.

SELECT pg_reload_conf();
Frank Heikens
źródło
czy to naprawdę działa z czcionkami md5? Pomyślałem, że konieczne będzie użycie typu trust...
Dan LaRocque,
5
„zaufanie” umożliwia wszystkim użytkownikom łączenie się bez hasła. To jest coś, czego bym nie używał, hasło to absolutne minimum, którego zawsze powinieneś używać. Nawet na swoim komputerze.
Frank Heikens,
1
ach, inaczej przeczytałem pytanie - pomyślałem, że chodzi mu o bezwarunkowe akceptowanie połączeń od wszystkich klientów (może dla niektórych nieistotnych testów). Rozumiem, do czego teraz zmierzasz.
Dan LaRocque,
6
UWAGA : Jeśli twoja sieć to IPv6, musisz użyć, ::/0a nie 0.0.0.0/0podczas modyfikowania pliku pg_hba.conf.
Aron Boyette
2
Upewnij się, że postgresmasz silne hasło: sudo -u postgres psql, \password.
Adobe,
47

0.0.0.0/0 dla wszystkich adresów IPv4

::0/0 dla wszystkich adresów IPv6

all aby dopasować dowolny adres IP

samehost aby dopasować dowolny z własnych adresów IP serwera

samenet aby dopasować dowolny adres w dowolnej podsieci, z którą serwer jest bezpośrednio połączony.

na przykład

host    all             all             0.0.0.0/0            md5
Owen Pauling
źródło
0

Konfiguracja wszystkich plików z postgres 12 na centos:

Krok 1: wyszukaj i edytuj plik

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

naciśnij "i", a na linii zmień IPv4

host    all             all             0.0.0.0/0            md5

krok 2: wyszukaj i edytuj plik postgresql.conf

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

dodaj ostatnią linię: Listen_addresses = '*': wq! (zapisz plik) - krok 3: restart

systemctl restart postgresql-12.service
trithucsv
źródło
-6

Dodaj tę linię do pg_hba.conf folderu postgres

host    all    all    all    trust

„zaufanie” umożliwia wszystkim użytkownikom łączenie się bez hasła.

Gość
źródło
Czy możesz dodać komentarz do kodu? Gdzie to umieścić i jak to działa?
Alistra,
4
Choć ten fragment kodu jest mile widziany i może zapewnić jakąś pomoc, byłoby znacznie się poprawiła, gdyby obejmowała wyjaśnienie z how i dlaczego to rozwiązuje problem. Pamiętaj, że odpowiadasz na pytanie do czytelników w przyszłości, a nie tylko osoba, która zapyta teraz! Proszę edytować swoje odpowiedzi, aby dodać wyjaśnienie, i dać wskazówkę co zastosować ograniczenia i założenia.
Toby Speight
zezwalanie na połączenia ze wszystkich
adresów IP