Разрешить только внешние соединения PostgreSQL для конкретной базы данных

0

У меня есть сервер Postgres, который настроен на разрешение соединений только с локального хоста. Мне это нравится.

Однако у меня есть ситуация, когда мне нужно запустить базу данных, доступную из чего-то другого, кроме localhost.

Есть ли способ установить такую ​​конфигурацию на уровне базы данных ?

Исаак Донтже Линделл
источник
Мне любопытно, почему разрешено использование только внешних подключений. По сути, это означает, что вы не можете правильно администрировать базу данных с сервера, на котором она запущена.
MBraedley
Я предполагаю , что не было ясно - я не хочу , чтобы запретить локальный, только дополнительно разрешить другие источники.
Исаак Донтже Линделл,
Да, но это не то, что написано в названии, поэтому я и спросил. На самом деле вы спрашиваете: «Разрешить внешние подключения, но только для конкретной базы данных».
MBraedley

Ответы:

2

Да, это довольно легко сделать.

Просто найдите файл pg_hba.conf, который использует ваш Postgres (мой находится в /etc/postgresql/8.4/main, но ваш может отличаться, но это тот же каталог, что и postgresql.conf), и добавьте соответствующую строку, например

хост dbname все 1.2.3.4 md5

Позволит любому пользователю в 1.2.3.4 подключиться к базе данных dbname, используя аутентификацию md5.

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

davidgo
источник