使用 ip 地址限制 postgres 中的连接数

restrict the number of connections in postgres using an ip address

是否可以使用机器的 ip 地址限制 postgres 中的连接数,因为我无法找到哪个 ip 地址被标记为哪个用户/角色。

隐含地你可以用 pgbouncer 做到这一点 - 至少 1.7 版本支持 hba 文件,所以你可以绑定 db+user+ip 并在 ini 文件中为 db+user 设置限制。这种方式限制与 IP 或网络的连接。

您可以明确地尝试使用 HAProxy 或 IPTABLES(我认为首选方式)

最后你可以写一些 monkey job 来检查来自 pg_stat_activity.client_addrselect pg_terminate_backend(pid) from pg_stat_activity where client_addr = 'x.x.x.x' order by query_started desc limit 10 的连接数(以保持前 10 个连接),但这种方式对于这样的任务来说是一个糟糕的轮子我' d说。