Настройка удаленного подключения к PostgreSQL на Windows Server 2019

По умолчанию PostgreSL принимает подключения только с локального хоста. Для того чтобы получить доступ к СУБД удаленно необходимо изменить конфигурационный файл и открыть порты в Windows.

Реализуем конфигурацию PostgreSQL

Сначала вам потребуется перейти в директорию, в которой располагаются БД PostgreSQL. Для PostgreSQL 13. В директории data найдите файл pg_hba.conf и откройте его любым текстовым редактором.

  • x86: C:\Program Files (x86)\PostgreSQL\13\data
  • x64: C:\Program Files\PostgreSQL\13\data

В конец файла добавьте обязательно допишите:

 

host postgres postgres all md5

 

Расшифровка:

 

 

Вид подключения База данных Пользователь IP-адрес удаленного подключения Метод аутентификации
host postgres postgres all md5

Мы разрешили подключение к системе postgres с любого IP, включая пользователя из стандартной базы MS PostGreen. Это небезопасно и опасно для пользователей. Однако это может быть опасным в будущем: найдите строку listten_ addresses ='*''в файле conf/pcgl.conf. Далее откройте файл в текстовом редакторе и найдите раздел CONNECTIONS AND AUTHENTICATION.

В одной из первых строк раздела указан параметр listen_ addresses ='* '. Если значение этого параметра отсутствует или имеет другое значения, скопируйте его в файл и вставьте обратно!

 

 

На этом редактирование закончено, теперь осталось настроить брандмауэр Windows.

 

Настройка брандмауэра Windows

Нажмите сочетание клавиш Win + S. В поисковой строке введите "защит..." или "defend"(для английской версии). Переходим в "Монитор брандмауэра Защитника Windows".

 

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

 

 

Откроется мастер создания правила для нового входящего подключения. Выберите тип правила — для порта. Нажмите кнопку Далее.

 

Для настройки правил входящего доступа необходимо указать протокол и порт. По умолчанию PostgreSQL «слушает» 5432 порт. Открываем именно его.

 

 

Далее мы разрешаем внешние подключения к порту 5432.

 

В

 

Все оставляем без изменений и нажимаем Далее.

 

 

Мы создали правило под названием PostgreSeal ingoing, которое позволяет вход в порт 5432 с любого внешнего IP и порта.

 

 

 

Проверка удаленного подключения к PostgreSQL

Проверим доступность 5432 портов в PostgreSL под Linux. Сделать это можно следующей командой в утилите telnet, скачать можно этой командой: 

apt install telnet

Скорее всего вам понадобятся root-права для установки утилиты которые можно получить при помощи команды: sudo su. Конечно, вы должны знать пароль от root-пользователя.

Проверим доступность 5432 порта: 

telnet 185.233.2.45 5432

Синтаксис команды следующий: telnet IP-адрес сервера Порт. В нашем случае IP-адрес сервера — 185.233.2.45, а порт — 5432.

Если порт доступен, telnet вернет следующую информацию:

Trying 185.233.2.45...
Connected to 185.233.2.45.
Escape character is '^]'.

Чтобы прервать подключение нажмите 2 раза Enter или сочетание клавиш Ctrl + Z. Теперь, когда мы убедились в доступности 5432 порта, подключимся к PostgreSQL с помощью специального PostgreSQL клиента — psql.

Скачаем psql из репозитория:

apt install psql

Теперь подключимся удаленно к PostgreSQL. Синтаксис команды следующий:

psql -U пользователь PostgreSQL -h IP сервера -d БД для подключения

В нашем случае команда выглядит так:

psql -U postgres -h 185.233.2.45 -d postgres

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

Команда вернула следующую информацию:

psql (12.7 (Ubuntu 12.7-0ubuntu0.20.04.1), server 13.3)
WARNING: psql major version 12, server major version 13.
Some psql features might not work.
Type "help" for help.

postgres=#

Все, мы подключились к PostgreSQL удаленно из Linux с помощью psql.

 

 

 

  • 0 Пользователи нашли это полезным

Помог ли вам данный ответ?