raise notice ‘Account % is locked!’,res;
end loop;
end;
$$ language plpgsql strict;
4、编辑postgresql.conf文件,配置登录函数
session_preload_libraries=’session_exec’
session_exec.login_name=’lock_user’
5、测试
模拟test1用户登录错误超过3次:
bill=# select * from t_login;
login_time | user_name | flag
—————————-+———–+——
2020-08-26 07:26:45.42+08 | test1 | 1
2020-08-26 07:26:50.179+08 | test1 | 1
2020-08-26 07:26:52.487+08 | test1 | 1
2020-08-26 07:26:54.537+08 | test1 | 1
(4 rows)
当我们在使用test1用户登录时则无法连接
-> psql bill test1
Password for user test1:
NOTICE: c1 = <NULL>
psql: error: could not connect to server: FATAL: terminating connection due to administrator command
CONTEXT: SQL statement “select pg_terminate_backend(pid) from pg_stat_activity where usename=$1”
PL/pgSQL function lock_user() line 13 at EXECUTE
再次登录可以看到提示该用户被锁定:
-> psql bill test1
Password for user test1:
psql: error: could not connect to server: FATAL: role “test1” is not permitted to log in
6、解锁用户
此时想要解锁该用户则需要执行:
bill=# alter user test1 login;
ALTER ROLE
然后需要注意还要将t_login中过期的数据修改 。
bill=# update t_login set flag = 0;
UPDATE 4
文章来源:脚本之家
来源地址:https://www.jb51.net/article/208018.htm
申请创业报道,分享创业好点子 。,共同探讨创业新机遇!
- 在PostgreSQL中使用ltree处理层次结构数据的方法
- Postgresql设置远程访问的方法
- PostgreSQL用户登录失败自动锁定的处理方案
- PostgreSQL数据库中如何保证LIKE语句的效率
- 详解PostgreSQL提升批量数据导入性能的n种方法
- 魅族商城4399元抢iPhone 12 Pro 参与用户已超50万
- 坐拥2亿用户!共享充电宝龙头想到赚钱新招:卖酒给年轻人
- 一千元日息费低至两毛?央行新规剑指模糊利率误导用户
- 糖尿病患儿需限制甜食
- 如何研究行业用户数据与热点