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
申请创业报道,分享创业好点子 。,共同探讨创业新机遇!
- 领取养老金之前|在领取养老金之前养老保险关系转移有次数限制吗 蚂蚁新村12月24日答案
- 三大运营商|三大运营商删除行程卡用户数据是怎么回事 行程卡都包含用户哪些数据
- 用户名字母数字下划线是什么意思
- 微信辅助对自己的微信有什么影响
- 抖音搜索用户不进主页会被发现吗
- 拼多多退货运费谁承担
- 山东教育云服务平台有时间限制吗
- 微信吞消息是什么原因
- 微信被限制交易是怎么回事
- 和彩云至高支持普通会员用户上传多大的大文件?
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
