- Как настроить удаленное подключение к PostgreSQL
- Как настроить удаленное подключение к БД PostgreSQL из Windows
- Содержание
- SSH туннель к PostgreSQL
- Прямое подключение к PostgreSQL
- Настройка PostgreSQL
- postgresql.conf
- pg_hba.conf
- Настройка pgAdmin
- Частые вопросы
- Удалённый доступ к PostgreSQL
- Настройка удаленного доступа к БД PostgreSQL
- Настройка брандмауэра Windows
- Справочный центр РИТ
- Результаты поиска
- Переход на СУБД PostgreSQL (доступно с версии 3.12.0.1)
- Настройка удаленного доступа к БД PostgreSQL
- Настройка брандмауэра Windows
- Комментарии (3)
Как настроить удаленное подключение к 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:
- Запускаем pgAdmin
- Создаем новое подключение к серверу: Object -> Create -> Server;
- Вкладка General:
- Name: название сервера (произвольное);
- Вкладка Connection:
- Host Name: localhost;
- Port: 5432;
- Maintenance database: mybase;
- Username: postgres;
- Вкладка SSH Tunnel:
- Use SSH tunneling: Yes;
- Tunnel host: myserver-IP;
- Tunnel port: 58222;
- Username: root;
- Authentication: Identity file;
- Identity file: path_key.
💡 В качестве ключа указываем приватный ключ id_rsa из Настройка SSH сертификатов на сервере. Как изменить порт SSH в Частые вопросы.
Настройки 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.
- Запустите pgAdmin
- Создаем новое подключение к серверу: Object -> Create -> Server;
- Вкладка General:
- Name: название сервера (произвольное);
- Вкладка Connection:
- Host Name: RemoteServerIP;
- Port: 5432;
- Maintenance database: mybase;
- 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
-
- Создать пользователя базы данных, который будет использоваться для удалённой работы с базой данных
- Настроить права пользователя по умолчанию(права для работы с объектами базы данных, которые будут созданы в будущем)
- Настроить права пользователя на таблицы и другие объекты базы данных (права для работы с объектами базы данных, которые были созданы до создания пользователя)
- Открыть папку с установленной БД PostgreSQL
По умолчанию база данных устанавливается:
- x86: C:\Program Files (x86)\PostgreSQL\11\data
- x64: C:\Program Files\PostgreSQL\11\data
- В текстовом редакторе открыть файл pg_hba.conf
- И под строкой:
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, пройдите по ссылке.
- Сохранить изменения в файле;
- Открыть порт в настройках брандмауэра Windows
- Открыть папку с установленной БД PostgreSQL
По умолчанию база данных устанавливается:
- x86: C:\Program Files (x86)\PostgreSQL\11\data
- x64: C:\Program Files\PostgreSQL\11\data
- В текстовом редакторе открыть файлpostgresql.conf
- Найти строку listen_addresses и убедиться, что она имеет такой вид:
listen_addresses = ‘*’ # what IP address(es) to listen on;
- Открыть Панель управления -> Администрирование -> Службы
- Выбрать в списке служб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
-
- Создать пользователя базы данных, который будет использоваться для удалённой работы с базой данных
- Настроить права пользователя по умолчанию(права для работы с объектами базы данных, которые будут созданы в будущем)
- Настроить права пользователя на таблицы и другие объекты базы данных (права для работы с объектами базы данных, которые были созданы до создания пользователя)
- Открыть папку с установленной БД PostgreSQL
По умолчанию база данных устанавливается:
- x86: C:\Program Files (x86)\PostgreSQL\11\data
- x64: C:\Program Files\PostgreSQL\11\data
- В текстовом редакторе открыть файл pg_hba.conf
- И под строкой:
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, пройдите по ссылке.
- Сохранить изменения в файле;
- Открыть порт в настройках брандмауэра Windows
- Открыть папку с установленной БД PostgreSQL
По умолчанию база данных устанавливается:
- x86: C:\Program Files (x86)\PostgreSQL\11\data
- x64: C:\Program Files\PostgreSQL\11\data
- В текстовом редакторе открыть файлpostgresql.conf
- Найти строку listen_addresses и убедиться, что она имеет такой вид:
listen_addresses = ‘*’ # what IP address(es) to listen on;
- Открыть Панель управления -> Администрирование -> Службы
- Выбрать в списке службpostgresql и перезапустить ёё
Настройка брандмауэра Windows
Данный пункт необходим, если с СУБД PostgreSQL работает несколько пользователей одновременно. Так же, следует уточнить, что в этом пункте рассматривается базовый сценарий по открытию порта для подключения и может не подойти Вам по параметрами безопасности.
1. Открыть Панель управления -> Брандмауэр защитника Windows ;
2. Выбрать пункт Дополнительные параметры ;
3. Выбрать пункт Правила для входящих подключений -> Создать правило. . На форме мастер создания правила выбрать Для порта и нажать Далее
4. Выбрать пункт Протокол TCP и пункт Определенныйе локальные порты . На стадии установки СУБД PostgreSQL было предложено указать порт для доступа к БД PostgreSQL. Номер порта необходимо ввести в поле Определенные локальные порты: (по умолчанию, при установке указывается порт 5432 ) и затем нажать Далее
5. Выбрать пункт Разрешить подключение и затем нажать Далее
6. Выбрать все пункты и нажать Далее
7. Задать имя правила, например ama-pg и нажать Готово
8. Настройка порта завершена
После выполнения всех пунктов данной инструкции, к БД Postgres можно подключаться с удаленного компьютера
Комментарии (3)
Спасибо Вам за статью, но лично для меня это сложно )
Для удаленного доступа можно использовать одну программу, например, Litemanager это аналог для Teamviewer. Все просто.
Благодарим за ваше мнение. Статья написана в помощь системным администраторам, которые занимаются настройкой базы СУБД Postgres.
Здравствуйте, для меня это тоже оказало не очень понятным. А как подключиться к удаленному серверу?