PostgreSQL中rolconnlimit的上限是否受max_connections限制?
PostgreSQL连接限制问题解答
是的,所有绑定任意角色的用户连接总数始终无法超过全局max_connections设定的100值,实际普通用户可用的连接上限还会更低,具体规则如下:
- 全局
max_connections是PostgreSQL实例级的硬上限,整个实例所有用户(包括超级用户)的并发连接总和绝对不能超过该参数值,角色级别的rolconnlimit仅用于限制单个角色的连接数上限,不会突破全局参数的限制。 - PostgreSQL默认还存在
superuser_reserved_connections参数,默认值为3,这部分连接额度仅预留供超级用户使用,普通用户无法占用。也就是说当max_connections设为100时,普通用户最多只能建立97个并发连接,剩下3个是超级用户的专属预留额度。
补充说明:如果需要为单个角色设置独立的连接上限,可以执行SQL命令修改对应角色的
rolconnlimit值,示例如下:-- 限制test角色最多建立10个并发连接 ALTER ROLE test CONNECTION LIMIT 10;角色级连接限制的优先级低于全局限制,即便所有角色的连接上限总和超过
max_connections值,实例总连接数依然会被全局参数截断。
内容的提问来源于stack exchange,提问作者Teodoro
相关产品推荐
相关产品推荐

