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

В мире современных информационных технологий удалённое подключение к базам данных стало неотъемлемой частью работы многих предприятий и организаций. В одной из предыдущих статей нашего справочника мы описали процесс установки PostgreSQL на VPS, работающий под управлением Windows Server 2016. Теперь же мы продолжим этот путь и рассмотрим процесс первоначальной настройки удалённого доступа к PostgreSQL, что в дальнейшем позволит управлять данными и обеспечивать доступ к ним из любой точки мира.

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

Конфигурирование PostgreSQL

На нашем сервере конфигурационный файл pg_hba.conf находится в директории C:\Program Files\PostgreSQL\15\data. В конец данного файла необходимо добавить следующую строку:

host postgres postgres all md5

Данная строка разрешает подключения к PostgreSQL с любого IP-адреса. При этом подключение осуществляется к БД postgres под учётной записью postgres. В реальной жизни таким образом поступать ни в коем случае нельзя, поскольку такое подключение не является безопасным. Для подключения к СУБД администратору нужно создать специального пользователя с ограниченными правами.

В той же директории находится файл postgresql.conf, в котором должна присутствовать строка listen_addresses = '*' в разделе CONNECTIONS AND AUTHENTICATION:

Содержимое файла postgresql.conf

Создание правила в брандмауэре Windows

Далее, необходимо произвести некоторые настройки брандмауэра, которые в Windows Server 2016 удобнее производить через Server Manager.

Для запуска Server Manager перейдите в стартовое меню и кликните по соответствующей иконке.

Запуск Server Manager - Настроить удалённое подключение к PostgreSQL

После того, как менеджер откроется, перейдите Tools Windows Firewall with Advanced Security.

Вход в брандмауэр Windows

В мониторе брандмауэра необходимо добавить правило для подключения к СУБД. Для этого перейдите Inbound Rules New Rule.

Добавление нового правила в брандмауэр Windows

В открывшемся окне мастера выберите тип Port, затем нажмите Next.

Выбор типа правила

В следующем окне укажите протокол TCP и номер порта — 5432, после чего снова нажмите Next.

Выбор порта правила - Настроить удалённое подключение к PostgreSQL

Затем для нашего тестового подключение мы разрешим все подключения, поэтому активируйте опцию Allow the connection и так же нажмите Next.

Выбор опции Allow the connection

В следующем окне без внесения каких-либо изменений нажмите Next.

Применение добавляемого правила

И, наконец, в заключительном окне мастера в строку Name введите имя создаваемого правила и нажмите Finish.

Название правила

Таким образом, созданное правило должно будет появиться в мониторе брандмауэра.

Монитор брандмауэра Windows - Настроить удалённое подключение к PostgreSQL

Тестирование созданного подключения

Для проверки возможности подключения мы будем использовать виртуальный сервер, работающий под управлением операционной системы Ubuntu. Во-первых, необходимо проверить доступ к порту 5432. Для чего можно использовать утилиту telnet. Синтаксис данной утилиты применяется следующий:

telnet IP-address Port

В данном случае IP-address — IP-адрес сервера, а Port — номер порта, к которому производится подключение. В случае, если порт на удалённом сервере доступен для подключения, вывод команды telnet будет выглядеть следующим образом:

Проверка доступности порта 5432 - Настроить удалённое подключение к PostgreSQL

Для того, чтобы прервать установленное соединение, используйте комбинацию клавиш Ctrl Z.

Далее, необходимо установить на linux-сервер клиента, с помощью которого будет осуществляться подключение к PostgreSQL.

$ sudo apt install postgresql-client

После успешной инсталляции проверьте версию установленного софта:

$ psql --version

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

Проверка версии установленного терминального клиента postgresql-client

Теперь при помощи postgresql-client вы сможете подключиться к вашей СУБД, установленной на виртуальном windows-сервере. Формат команды для подключения выглядит как:

psql -U user-name -h IP-address -d DB-name

В данном случае:

  • -U — ключ, который говорит о том, что подключение будет осуществлено под учётной записью, указанной после ключа;
  • user-name — имя учётной записи, используемой для подключения;
  • -h — ключ, указывающий на то, что подключение будет произведено к удалённому хосту;
  • IP-address — IP-адрес удалённого хоста;
  • -d — ключ, после которого указывается имя базы данных, к которой производится подключение;
  • DB-name — имя базы данных.

В нашем случае команда для подключения будет выглядеть следующим образом:

psql -U postgres -h 194.58.71.188 -d postgres

На скриншоте ниже видно, что мы успешно подключились к СУБД, расположенной на нашей тестовой VPS с использованием терминального клиента psql в командной строке на linux-сервере.

Подключение к PostgreSQL

Вам также может понравиться