Postgresql доступ извне windows

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

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

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

# su — postgres -c «psql -c ‘SHOW config_file;'»

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

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

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

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

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

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

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

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

host all all 192.168.0.10/32 password

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

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

# systemctl restart postgresql-9.5

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

# psql -h 192.168.0.15 -U usersql

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

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

Настройка удаленного подключения к БД PostgreSQL 13 на сервере Ubuntu 18 LTS из ОС Windows 10 утилиты pgAdmin 4, двумя способами: подключение с помощью SSH туннеля и прямое подключение к серверу PostgreSQL.

💡 Я рекомендую использовать подключение через SSH туннель, простое в настройке и безопасное. При использовании SSH туннеля, порт PostgreSQL не открывается для внешних подключений.

pgAdmin — самая популярная и многофункциональная платформа для администрирования и разработки с открытым исходным кодом для PostgreSQL, самой совершенной базы данных с открытым исходным кодом в мире.

Официальный сайт pgAdmin

Узнать расположение файлов конфигурации PostgreSQL: postgresql.conf, pg_hba.conf.

Узнать порт PostgreSQL командой:

В примере, файл конфигурации PostgreSQL располагается по пути /etc/postgresql/13/main/postgresql.conf, порт подключения 5432.

Содержание

SSH туннель к PostgreSQL

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

Настройка pgAdmin на Windows 10:

  1. Запускаем pgAdmin
  2. Создаем новое подключение к серверу: Object -> Create -> Server;
  3. Вкладка General:
    1. Name: название сервера (произвольное);
  4. Вкладка Connection:
    1. Host Name: localhost;
    2. Port: 5432;
    3. Maintenance database: mybase;
    4. Username: postgres;
  5. Вкладка SSH Tunnel:
    1. Use SSH tunneling: Yes;
    2. Tunnel host: myserver-IP;
    3. Tunnel port: 58222;
    4. Username: root;
    5. Authentication: Identity file;
    6. Identity file: path_key.

💡 В качестве ключа указываем приватный ключ id_rsa из Настройка SSH сертификатов на сервере. Как изменить порт SSH в Частые вопросы.

Читайте также:  Что делать если обнаружен конфликт ip адресов windows

Настройки pgAdmin для подключения через SSH туннель

Прямое подключение к PostgreSQL

Для настройки прямого подключения к PostgreSQL вносим изменения в файлы конфигурации postgresql.conf и pg_hba.conf

Настройка PostgreSQL

postgresql.conf

Файл postgresql.conf находится в папке установки PostgreSQL.

Раскомментируем или добавим строку:

Мы разрешили прослушивание запросов от всех IP-адресов.

💡 Возможные варианты:
listen_addresses = ‘0.0.0.0’ чтобы слушать все IPv4;
listen_addresses = ‘::’ чтобы слушать все IPv6;
listen_addresses = ‘your.host.ip.adress’ определенный адрес или список адресов через запятую.

pg_hba.conf

Файл pg_hba.conf находится в папке установки PostgreSQL.

Открываем на редактирование:

Добавляем запись в секцию # IPv4 local connections:

Запись разрешает подключение к БД mybd пользователю postgres с IP адресом 41.223.232.15, используя пароль.

После изменения файлов конфигурации, перезапустите службу PostgreSQL.

Настройка pgAdmin

Настройка прямого подключения к базе данных PostgreSQL через интернет или локальную сеть используя pgAdmin.

  1. Запустите pgAdmin
  2. Создаем новое подключение к серверу: Object -> Create -> Server;
  3. Вкладка General:
    1. Name: название сервера (произвольное);
  4. Вкладка Connection:
    1. Host Name: RemoteServerIP;
    2. Port: 5432;
    3. Maintenance database: mybase;
    4. Username: postgres.

Частые вопросы

ps aux | grep postgres | grep — -D

grep -H ‘^port’ /etc/postgresql/*/main/postgresql.conf

Файл /etc/ssh/sshd_config , строка port.

Как настроить удаленное подключение к БД PostgreSQL из Windows обсуждалось в этой статье. Я надеюсь, что теперь вы сможете настроить pgAdmin для подключения к PostgreSQL (прямое подключение или используя SSH туннель). Однако, если вы столкнетесь с каким-то проблемами при настройке сервера или pgAdmin, не стесняйтесь написать в комментариях. Я постараюсь помочь.

Удалённый доступ к PostgreSQL

19 января 2014 г. 7:27

​В первую очередь нужно разрешить подключаться к postgresql с внешних ip. Для этого находим файл postgresql.conf (у меня находится в папке /etc/postgresql/9.1/main) и правим следующую строчку:

Обратите внимание, что нужно убрать перед директивой listen_addresses знак комментария #.

А в файле pg_hba.conf (лежит в там же, что и postgresql.conf) добавляем следующую строчку:

где:
hostssl — подключаемся через SSL
all — разрешаем подключение ко всем базам
postgreadmin — имя пользователя, которому разрешаем подключение
0.0.0.0/0 — маска сети с которой можно подключаться
md5 — способ шифрования пароля

Теперь нам нужно создать пользователя postgreadmin в postgresql, через которого будем подключаться:

Используемые опции команды createuser :

-s — добавить пользователю права суперпользователя
-r — разрешить пользователю создавать других пользователей
-d — разрешает пользователю создавать базы данных
-P — добавить к пользователю пароль

Настройка закончилась, самое время перезапустить postqresql, например командой:

и уже подключиться с другого ПК, используя какой-нибудь клиент, например, pgadmin.

В pgadmin нужно щёлнуть «Новое подключение» и в окне ввести следующие поля:

Имя — желаемое имя, например: my_server
Хост — ip-адрес сервера, например: 188.123.456.768
Порт — 5432 (по умолчанию)
Имя пользователя — postgreadmin
Пароль — созданный выше пароль

Остальные поля стоят по умолчанию. Нажимаете OK. Если всё заработало, то поздравляю — удалённое подключение к postgresql настроено.

Настройка удаленного доступа к БД PostgreSQL

    1. Создать пользователя базы данных, который будет использоваться для удалённой работы с базой данных
    2. Настроить права пользователя по умолчанию(права для работы с объектами базы данных, которые будут созданы в будущем)
    3. Настроить права пользователя на таблицы и другие объекты базы данных (права для работы с объектами базы данных, которые были созданы до создания пользователя)
    1. Открыть папку с установленной БД PostgreSQL

    По умолчанию база данных устанавливается:

      • x86: C:\Program Files (x86)\PostgreSQL\11\data
      • x64: C:\Program Files\PostgreSQL\11\data
    1. В текстовом редакторе открыть файл pg_hba.conf
    2. И под строкой:

    host all all 127.0.0.1/32 md5

    добавить строку по аналогии с примером

    host ama ama_user all md5

    Небольшая расшифровка этой строки:

host используется подключение по TCP/IP

ama– Удалённый пользователь сможет подключаться к базе данных «ama», название базы можно заменить на своё, например «mydb». Помимо этого можно написать слово all, тогда для пользователя будет открыт доступ ко всем базам данных сервера

ama_user– пользователь с псевдонимом «ama-user» сможет подключаться к базе данных «ama», если указать слово all, то база данных будет доступна любому пользователю

all— Используется в качестве адреса удалённого рабочего места, в данном случае доступ открывается для любой удалённой машины, для пользователя с псевдонимом указанном в предыдущем столбце. Если требуется указать конкретный адрес, то его можно написать вот в такой форме: 192.168.0.2/32, а для нескольких пользователей придётся указывать несколько строк подключения, указывать каждого в новой строке, пример будет приведён ниже

md5 – пароль пользователя хешируется алгоритмом MD5, если соответствует, то можно зайти

Пример предоставления доступа нескольким рабочим местам через пользователя «ama-user» к базе данных «ama»:

host ama ama-user 192.168.0.2/32 md5
host ama ama-user 192.168.0.3/32 md5
host ama ama-user 192.168.0.4/32 md5

Для более подробной информации по настройке конфига pg_hba.conf, пройдите по ссылке.

  1. Сохранить изменения в файле;
  2. Открыть порт в настройках брандмауэра Windows
  3. Открыть папку с установленной БД PostgreSQL

По умолчанию база данных устанавливается:

    • x86: C:\Program Files (x86)\PostgreSQL\11\data
    • x64: C:\Program Files\PostgreSQL\11\data
  1. В текстовом редакторе открыть файлpostgresql.conf
  2. Найти строку listen_addresses и убедиться, что она имеет такой вид:

listen_addresses = ‘*’ # what IP address(es) to listen on;

  1. Открыть Панель управления -> Администрирование -> Службы
  2. Выбрать в списке службpostgresql и перезапустить ёё

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

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

1. Открыть Панель управления -> Брандмауэр защитника Windows ;

2. Выбрать пункт Дополнительные параметры ;

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

4. Выбрать пункт Протокол TCP и пункт Определенныйе локальные порты . На стадии установки СУБД PostgreSQL было предложено указать порт для доступа к БД PostgreSQL. Номер порта необходимо ввести в поле Определенные локальные порты: (по умолчанию, при установке указывается порт 5432 ) и затем нажать Далее

5. Выбрать пункт Разрешить подключение и затем нажать Далее

6. Выбрать все пункты и нажать Далее

7. Задать имя правила, например ama-pg и нажать Готово

8. Настройка порта завершена

После выполнения всех пунктов данной инструкции, к БД Postgres можно подключаться с удаленного компьютера

Справочный центр РИТ

Результаты поиска

Переход на СУБД PostgreSQL (доступно с версии 3.12.0.1)

Настройка удаленного доступа к БД PostgreSQL

    1. Создать пользователя базы данных, который будет использоваться для удалённой работы с базой данных
    2. Настроить права пользователя по умолчанию(права для работы с объектами базы данных, которые будут созданы в будущем)
    3. Настроить права пользователя на таблицы и другие объекты базы данных (права для работы с объектами базы данных, которые были созданы до создания пользователя)
    1. Открыть папку с установленной БД PostgreSQL

    По умолчанию база данных устанавливается:

      • x86: C:\Program Files (x86)\PostgreSQL\11\data
      • x64: C:\Program Files\PostgreSQL\11\data
    1. В текстовом редакторе открыть файл pg_hba.conf
    2. И под строкой:

    host all all 127.0.0.1/32 md5

    добавить строку по аналогии с примером

    host ama ama_user all md5

    Небольшая расшифровка этой строки:

host используется подключение по TCP/IP

ama– Удалённый пользователь сможет подключаться к базе данных «ama», название базы можно заменить на своё, например «mydb». Помимо этого можно написать слово all, тогда для пользователя будет открыт доступ ко всем базам данных сервера

ama_user– пользователь с псевдонимом «ama-user» сможет подключаться к базе данных «ama», если указать слово all, то база данных будет доступна любому пользователю

all— Используется в качестве адреса удалённого рабочего места, в данном случае доступ открывается для любой удалённой машины, для пользователя с псевдонимом указанном в предыдущем столбце. Если требуется указать конкретный адрес, то его можно написать вот в такой форме: 192.168.0.2/32, а для нескольких пользователей придётся указывать несколько строк подключения, указывать каждого в новой строке, пример будет приведён ниже

md5 – пароль пользователя хешируется алгоритмом MD5, если соответствует, то можно зайти

Пример предоставления доступа нескольким рабочим местам через пользователя «ama-user» к базе данных «ama»:

host ama ama-user 192.168.0.2/32 md5
host ama ama-user 192.168.0.3/32 md5
host ama ama-user 192.168.0.4/32 md5

Для более подробной информации по настройке конфига pg_hba.conf, пройдите по ссылке.

  1. Сохранить изменения в файле;
  2. Открыть порт в настройках брандмауэра Windows
  3. Открыть папку с установленной БД PostgreSQL

По умолчанию база данных устанавливается:

    • x86: C:\Program Files (x86)\PostgreSQL\11\data
    • x64: C:\Program Files\PostgreSQL\11\data
  1. В текстовом редакторе открыть файлpostgresql.conf
  2. Найти строку listen_addresses и убедиться, что она имеет такой вид:

listen_addresses = ‘*’ # what IP address(es) to listen on;

  1. Открыть Панель управления -> Администрирование -> Службы
  2. Выбрать в списке службpostgresql и перезапустить ёё

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

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

1. Открыть Панель управления -> Брандмауэр защитника Windows ;

2. Выбрать пункт Дополнительные параметры ;

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

4. Выбрать пункт Протокол TCP и пункт Определенныйе локальные порты . На стадии установки СУБД PostgreSQL было предложено указать порт для доступа к БД PostgreSQL. Номер порта необходимо ввести в поле Определенные локальные порты: (по умолчанию, при установке указывается порт 5432 ) и затем нажать Далее

5. Выбрать пункт Разрешить подключение и затем нажать Далее

6. Выбрать все пункты и нажать Далее

7. Задать имя правила, например ama-pg и нажать Готово

8. Настройка порта завершена

После выполнения всех пунктов данной инструкции, к БД Postgres можно подключаться с удаленного компьютера

Комментарии (3)

Спасибо Вам за статью, но лично для меня это сложно )

Для удаленного доступа можно использовать одну программу, например, Litemanager это аналог для Teamviewer. Все просто.

Благодарим за ваше мнение. Статья написана в помощь системным администраторам, которые занимаются настройкой базы СУБД Postgres.

Здравствуйте, для меня это тоже оказало не очень понятным. А как подключиться к удаленному серверу?

Читайте также:  Зависает клавиатура при загрузке windows
Оцените статью