ограничить количество подключений в postgres с помощью IP-адреса

Можно ли ограничить количество подключений в postgres, используя IP-адрес машины, поскольку я не могу найти, какой IP-адрес помечен какому пользователю/роли.


person user3837299    schedule 12.09.2017    source источник
comment
Вы можете ограничить количество подключений, установив параметр max_connections = 100 в файле конфигурации. Вы также можете использовать что-то вроде pg_pool для ограничения входящих подключений. pgpool.net/docs/pgpool-II- 3.5.4/doc/pgpool-ru.html   -  person VynlJunkie    schedule 12.09.2017


Ответы (1)


неявно вы можете сделать это с помощью pgbouncer - по крайней мере версия 1.7 поддерживает файл hba, поэтому вы можете связать db+user+ip и установить ограничение для db+user в ini-файле. Таким образом, ограничение подключений к IP или сети.

явно вы можете попробовать использовать HAProxy или просто IPTABLES (я думаю, что это предпочтительнее)

наконец, вы можете написать какую-нибудь обезьянью работу, которая будет проверять количество подключений от pg_stat_activity.client_addr и select pg_terminate_backend(pid) from pg_stat_activity where client_addr = 'x.x.x.x' order by query_started desc limit 10 (чтобы сохранить первые 10 подключений), но я бы сказал, что это ужасное колесо для такой задачи.

person Vao Tsun    schedule 13.09.2017