2015-07-11 4 views
1

Я запускаю свои postgres-9.2 на порту 6432 и pgbouncer на порту 5432. Мало кто из клиентских компьютеров моих коллег имеет разрешения на подключение брандмауэра на порт 5432 на серверной машине. Но как администратор базы данных, я хотел бы ограничить некоторые IP-адреса доступом к базе данных.Как ограничить определенные хосты от подключения к pgbouncer?

Но, хотя я блокирую файл pg_hba.conf, поскольку порт pgbouncer разрешен, они могут получить доступ.

Я могу заблокировать на уровне брандмауэра ОС, но я не хочу обращаться за помощью к своему системному администратору. Итак, есть ли способ ограничить и запретить IP-адреса доступа к pgbouncer, как мы обычно делаем через pg_hba.conf для postgresql.

Просьба предложить.

ответ

-1

Вы можете установить AUTH_USER в pgbouncer (5) Pgbouncer Config

«Если AUTH_USER установлен, любой пользователь не указан в auth_file будет запрошен из pg_shadow в базе данных с использованием AUTH_USER. Будет принят пароль AUTH_USER в из auth_file. "

+0

Это ограничивает пользователей, а не хосты. – rotten

+0

Привет @rotten Это рабочее решение, основанное на postgres pg_shadow и pg_hba.cof. Аутентификация клиента контролируется аутентификацией на основе хоста. Ответ содержит ссылку. Пример пользователя IP-адреса pg_hba.cof IP-адрес auth-method [auth-options] hostssl database user IP-адрес IP-маска auth-method [auth-options] hostnossl database user IP-адрес IP-маска auth-method [auth-options] Ref https://www.postgresql.org/docs/9.1/static/auth-pg-hba-conf.html – pnorton

0

https://pgbouncer.github.io/2015/12/pgbouncer-1-7

Основные изменения от v1.6 является поддержка TLS соединений, HBA управления файл и аутентификации с помощью Unix пэра жидкости.

Итак, из 1.7 у вас есть файл hba, как и в vanil postgres. И, таким образом, фильтрация соединений по IP так же просто.

Также вы можете использовать некоторые трюки, удаляя соединения после их подключения, как описано в моем другом недавнем ответе https://stackoverflow.com/a/46191949/5315974, но опять же - это скорее трюк для срочного избавления от соединений. Использование таких трюков во время цикла или в качестве задания обычно является плохой идеей.