限制每个用户只能连接指定数量的session,防止服务器资源紧张
(1)创建测试用户test:
highgo=#create user test;
CREATEROLE
highgo=#\du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+----------
highgo | Superuser, Create role, Create DB, Replication | {}
test | | {}
(2)设置仅允许用户test使用一个连接
highgo=#ALTER ROLE test CONNECTION LIMIT 1;
ALTERROLE
(3)在session 1中使用test用户连接highgo数据库
highgo=>\c highgo test
Youare now connected to database "highgo" as user "test".
highgo=>
(4)在session 2中也使用test用户连接highgo数据库,会出现如下错误:
highgo=#\c highgo test
致命错误: 由角色"test"发起的连接太多了
Previousconnection kept
(5)查询用户test链接限制
highgo=>SELECT rolconnlimit FROM pg_roles WHERE rolname = 'test';
rolconnlimit
--------------
1
(1row)