1   PostgreSQL可以设定登录失败多少次数,锁定用户吗?目前PG是没有这个限定参数的

 密码加密存储   show password_encryption

3  密码有效期     查询pg_user     修改:alter role xxx valid until '2021-05-28 12:00:00'

4  密码复杂度策略    

模块可以实现密码复杂度要求,此模块可以检查密码,如果密码太弱,他会拒绝连接
创建用户或修改用户密码时,强制限制密码的复杂度,限制密码不能重复使用。例如密码长度,包含数字,字母,大小写,特殊字符等,同时排除暴力破解字典中的字符串。

添加到参数shared_preload_libraries,重启生效。通常这个so文件在 $PGHOME/lib下

alter system set shared_preload_libraries=pg_pathman,pg_statements,passwordcheck;

重启生效

5  密码验证失败延迟

auth_delay.so模块的作用是:在一次认证失败后,将延迟多少秒才能继续下一次认证。这个主要用于防止暴力破解. 请注意,它不会阻止服务攻击, 甚至可能会加剧这些攻击, 因为在报告身份验证失败之前等待的进程仍使用连接插槽。

通常这个so文件在 $PGHOME/lib下

alter system set shared_preload_libraries=pg_pathman,pg_statements,passwordcheck,auth_delay;

alter system set auth_delay.milliseconds=5000;---(毫秒)

reload 生效

6   密码的配置命令可能会被记录到~./pgsql_history文件及csvlog日志文件中(如果开启了DDL或更高级别审计log_statement),这些文件明文记录了密码,可能造成密码泄露风险。