Как настроить удаленное подключение к PostgreSQL

  • Михаил
  • 12 мин. на прочтение
  • 57
  • 25 Nov 2022
  • 25 Nov 2022

По умолчанию, сервер баз данных pgsql разрешает подключение только с локального компьютера. Данная инструкция показывает, как разрешить подключения с удаленных систем. Она написана на примере Linux CentOS и PostgreSQL 14.

Для начала посмотрим путь расположения конфигурационного файла postgresql.conf:

# su - postgres -c "psql -c 'SHOW config_file;'"

Команда выдаст, примерно, следующее:

-----------------------------------------
 /db/pgsql/postgresql.conf
(1 row)

* нас интересует строчка /db/pgsql/postgresql.conf — это путь расположения нужного нам конфигурационного файла.

Теперь открываем на редактирование основной файл конфигурации PostgreSQL:

# vi /db/pgsql/postgresql.conf

* напоминаю, что начало пути /db/pgsql может быть другим. Мы его получили командой ps.

Находим и редактируем следующее:

listen_addresses = '*'

* по умолчанию, параметр закомментирован и настроен на прослушивание запросов только с локального сетевого интерфейса. В данном примере мы разрешили прослушивание запросов на всех IP-адресах (*), но, если требуется более безопасная настройка, можно просто перечислить последние через пробел.

После открываем на редактирование следующий конфигурационный файл:

# vi /db/pgsql/pg_hba.conf

и внизу добавляем следующую строку:

host     all     all     10.10.0.100/32     password

* в данном примере мы разрешаем удаленные подключения к серверу с компьютера 10.10.0.100. Доступ предоставляется всем учетным записям и всем базам (значение all). При желании, вместо all можно указать конкретные данные для повышения безопасности.

Чтобы изменения вступили в силу, перезапускаем службу postgresql:

# systemctl restart postgresql-14

Проверить подключение можно с удаленного компьютера следующей командой:

# psql -h 10.10.0.18 -U usersql

* где  10.10.0.18 — IP-адрес сервера баз данных; usersql — имя учетной записи, от которой идет подключение.