Страницы

11 марта 2012 г.

Доступ по сети к серверу PostgreSQL

Не мало где об этом написано, но все же, т.к. по PostgreSQL относительно мало русскоязычной информации, создам этот топик, как памятку.

ОС: Linux Ubuntu 10.04.

Для этого нам небходимо отредактировать два файла (необходимы права root).
Файл /etc/postgresql/8.3/main/postgresql.conf
Ищем секцию CONNECTIONS AND AUTHENTICATION и меняем строку
 #listen_addresses = 'localhost'
на
 listen_addresses = '*'
ВНИМАНИЕ!!!
Не забываем раскомментировать параметр, удалив символ # перед словом "listen_addresses"


Файл /etc/postgresql/8.3/main/pg_hba.conf
Идем в самый конец файла и ищем строки:
 # IPv4 local connections:
 host all all 127.0.0.1/32 md5

127.0.0.1/32 это маска разрешенной сети (32 - это число значащих бит в маске, т.е. в данном случае - все), добавляем строку с маской вашей сети, например:
 host all all 192.168.1.0/24 md5

, т.е. будут разрешены все соединения с адресов 192.168.1.1 и по 192.168.1.254. Или, для большей безопасности, добавляете конкретную машину:
 host all all 192.168.1.3/32 md5 
 
Для того, чтобы обеспечить доступ ЛЮБЫМ IP-адресам необходимо изменить параметр следующим образом:
 host all all 0.0.0.0/0 md5 

Перезапускаем службу:


sudo service postgresql start

sudo service postgresql stop
sudo service postgresql restart

После всех этих манипуляций можно проверять коннект по сети...

Откуда взял исходник для поста, не помню (лежал в архивах), как вспомню - обязательно напишу.

2 комментария:

  1. Доступно все описал. Гуд )

    ОтветитьУдалить
  2. Тут https://www.postgresql.org/docs/9.4/static/auth-pg-hba-conf.html еще пишут, что для подключения к конкретной БД пользователю нужно еще и обладать привилегией CONNECT в конкретной БД.

    ОтветитьУдалить