Udostępnianie serwera PostgreSQL innym komputerom w sieci

1023  25 kwietnia 2016 Jan Tozrobi 2

PostgreSQL posiada mechanizmy umożliwiające udostępnienie połączenia z bazą wybranym hostom lub ich grupom. Jest to udostępnianie oparte na adresach IP. Cała konfiguracja znajduje się w pliku pg_hba.conf, który znajduje się zwykle w katalogu z bazą danych. Dostać się można do niego także przez Menu Start-:>PostgresSQL 8.3->Configuration files.

Domyślne wpisy w tym pliku to:

# TYPE DATABASE USER CIDR-ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5

Czyli domyślnie połączenia są dozwolone dla localhosta i wymagane jest hasło przesłane jako hash md5. Informuje nas o tym linijka: host all all 127.0.0.1/32 md5

Zapis 127.0.0.1/32 oznacza notację CIDR – więcej o niej w http://pl.wikipedia.org/wiki/Classless_Inter-Domain_Routing

Jeśli chcemy udostępnić połączenie dla innego konkretnego hosta w sieci to dodajemy linijkę:
host all all 87.98.233.158/32 md5

Jeśli natomiast chcemy udostępnić możliwość połączenia wszystkim hostom z sieci 192.168.0.0 to wpisujemy:
host all all 192.168.0.0/24 md5

Istnieje też możliwość wyłączenia sprawdzania hasła dla wybranych hostów w tym celu należy zamiast md5 wpisać trust.
Opcja ta jest przydatna, gdy ktoś zapomniał hasła do bazy danych i nie może się tam dostać. Jeśli pozwoli sobie na dostęp bez hasła będzie mógł nadać sobie nowe.
Aby wszystkie te ustawiania zadziałały musimy oczywiście zezwolić naszemu serwerowi na przyjmowanie połączeń przychodzących w przypadku gdy zainstalowany jest firewall. Oprócz tego w innym pliku konfiguracyjnym postgresql.conf linijka z definicją listen_addresses musi mieć wartość:

listen_addresses = ‚*'</p> <p> </p> <p>Czyli zezwolić postgresowi na nasłuchiwaniu na wszystkich interfejsach sieciowych. Jeśli chcemy, aby Postgres nasłuchiwał tylko na określonym interfejsie wpisujemy jego adres IP.</p> <p> </p> <p>listen_addresses = ‚192.168.0.5’</p> <p> </p> <p>Gdy mimo to nie będzie można podłączyć się do serwera trzeba wyłączyć zaporę Windows gdyż czasem blokuje ona port bez pytania użytkownika.</p>’

Jan Tozrobi
Witaj, przygotowuję odpowiedzi na Twoje pytania w Centrum Pomocy Varico. Jeżeli nie rozwiałem wszystkich Twoich wątpliwości, napisz do mnie, a postaram się wyjaśnić każdą sprawę.

Czy temat jest pomocny?