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



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

# /etc/postgresql/9.1/main/postgresql.conf listen_addresses = '*'

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

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

# /etc/postgresql/9.1/main/pg_hba.conf
hostssl all postgreadmin 0.0.0.0/0 md5

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

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

su postgres createuser -s -r -d -P postgreadmin 
# и введите пароль exit

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

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

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

service postgresql restart

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

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

Имя - желаемое имя, например: my_server

Хост - ip-адрес сервера, например: 188.123.456.768

Порт - 5432 (по умолчанию)

Имя пользователя - postgreadmin

Пароль - созданный выше пароль

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


Доступ к postgresql без пароля

Необходимо изменить файл
/etc/postgresql/9.0/main/pg_hba.conf
добавив туда строки
host all user 0.0.0.0/0 trust (для подключения из сети с любого ip)
local all user trust (для локального подключения)
где user имя роли.

Перезапустить postgresql:
/etc/init.d/postgresql restart

Комментарии

Популярные сообщения из этого блога

Автоматическое монтирование дисков и разделов в Linux или что такое fstab? Проблема Debian

Подключение USB флешки к Debian

Как настроить RAID-контроллер Broadcom/Avago/LSI