Доступ к серверу PostgreSQL из локальной сети

Я пытаюсь отредактировать файл pg_hba.conf, чтобы иметь доступ к серверу, используя только IP-адрес, до сих пор не получивший успеха.

Например, я могу получить доступ, используя "localhost", но я хочу получить доступ, используя IP-адрес, который дал мне мой маршрутизатор, например, 192.168.1.X

Это mi pg_hba.conf:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                trust
#host    replication     postgres        127.0.0.1/32            trust
#host    replication     postgres        ::1/128                 trust
host all all 0.0.0.0/0 trust

Любая помощь?

Ответ 1

Сначала отредактируйте файл postgresql.conf и установите listen_addresses. Значение по умолчанию "localhost" будет прослушиваться только на адаптере loopback. Вы можете изменить его на "*", что означает прослушивание по всем адресам или, в частности, список IP-адресов интерфейсов, с которых вы хотите принимать соединения. Обратите внимание, что это IP-адрес, который ему присвоил интерфейс, который вы можете увидеть с помощью команд ifconfig или ip addr.

Вы должны перезапустить postgresql, чтобы изменения в listen_addresses вступили в силу.

Далее, в pg_hba.conf, вам понадобится запись вроде этого:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    {dbname}        {user}          192.168.1.0/24          md5

{dbname} - это имя базы данных, к которому вы разрешаете доступ. Вы можете поставить "все" для всех баз данных.

{user} - пользователь, которому разрешено подключаться. Обратите внимание, что это пользователь postgresql, не обязательно пользователь unix.

Часть ADDRESS - это сетевой адрес и маска, которые вы хотите разрешить. Указанная маска будет работать по 192.168.1.x по вашему запросу.

Часть метода METHOD - это метод аутентификации. Там есть несколько вариантов. md5 означает, что он будет использовать пароль хеширования md5. "доверие", которое у вас было в вашем примере, означает отсутствие аутентификации вообще - это определенно не рекомендуется.

Изменения в pg_hba.conf вступят в силу после перезагрузки сервера. Вы можете использовать это с помощью pg_ctl reload (или с помощью сценариев инициализации, в зависимости от вашего дистрибутива ОС).