【问题标题】:restrict the number of connections in postgres using an ip address使用 ip 地址限制 postgres 中的连接数
【发布时间】:2018-02-20 22:40:19
【问题描述】:
是否可以使用机器的 ip 地址来限制 postgres 中的连接数,因为我无法找到哪个 ip 地址被标记为哪个用户/角色。
【问题讨论】:
标签:
postgresql
postgresql-9.4
postgresql-9.5
【解决方案1】:
隐含地你可以用 pgbouncer 来做 - 至少 1.7 版本支持 hba 文件,所以你可以绑定 db+user+ip 并在 ini 文件中设置 db+user 的限制。这种方式限制了对 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 个连接),但这种方式对于我要说的此类任务来说是一个糟糕的轮子。