当前位置:   article > 正文

关于PostgreSQL密码安全策略_postgres如何查看密码策略

postgres如何查看密码策略

关于PostgreSQL密码安全策略

1.加密存储策略
2.密码验证失败次数限制锁定和解锁策略
3.密码复杂度策略(弱密码、重复密码等)
4.密码有效期策略

查看 PostgreSQL 服务状态(查看BINDIR和PGDATA路径)
systemctl  status postgresql-12

加密存储
查看密码加密方式
show password_encryption;
testdb01=# show password_encryption;
 password_encryption 
---------------------
 md5

查看用户密码
select * from pg_shadow where usename='test';
testdb01=# select * from pg_shadow where usename='test';
 usename | usesysid | usecreatedb | usesuper | userepl | usebypassrls |               passwd                | valuntil | useconfig 
---------+----------+-------------+----------+---------+--------------+-------------------------------------+----------+-----------
 test    |    16384 | f           | f        | f       | f            | md39a862ac337a91e42d64dc94ca7418205 |          | 

加密方式的配置,可以通过配置文件 pg_hba.conf 修改(修改后要重启数据库生效)
vi /var/lib/pgsql/12/data/pg_hba.conf

查看用户密码有效期(valuntil)
select * from pg_user where usename='test';
testdb01=# select * from pg_user where usename='test';
 usename | usesysid | usecreatedb | usesuper | userepl | usebypassrls |  passwd  | valuntil | useconfig 
---------+----------+-------------+----------+---------+--------------+----------+----------+-----------
 test    |    16384 | f           | f        | f       | f            | ******** |          | 

valuntil为有效期设置,如果为空,则永不过期

修改密码有效期
alter role test valid until '2021-12-30 23:59:59';

注意:
1)PostgreSQL的密码有效期只对客户端有效,服务端不受限制
2)设置密码有效期时,网络访问控制文件(pg_hba.conf)中不能配置为 trust 认证方式

密码复杂度策略(弱密码、重复密码等)
passwordcheck.so 模块会检查密码复杂度检查,包括弱密码、重复密码等。passwordcheck.so 文件默认都存放在 $LIBDIR 目录下,$LIBDIR 路径通过以下命令查看:
pg_config |grep LIBDIR

如果没有设置环境变量,则绝对路径执行:
/usr/pgsql-12/bin/pg_config |grep LIBDIR   
LIBDIR = /usr/pgsql-12/lib
PKGLIBDIR = /usr/pgsql-12/lib

确认文件存在:
ls -l /usr/pgsql-12/lib/passwordcheck.so 

如果要开启密码负责度策略检查,需要通过预加载 passwordcheck.so 扩展模块来实现,有几种方法可以实现预加载:
local_preload_libraries (string)
session_preload_libraries (string)
shared_preload_libraries (string)

我选择了使用 shared_preload_libraries 方式来实现预加载
修改 postgresql.conf 配置文件设置 shared_preload_libraries 参数
vi /var/lib/pgsql/12/data/postgresql.conf
#shared_preload_libraries = ''  # (change requires restart)
shared_preload_libraries = 'passwordcheck'  # (change requires restart)

重启数据库服务生效
systemctl restart postgresql-12

注意:实际操作时,可以先设置一个过期时间(历史日期)重启生效验证过期策略功能有效以后,再调整为正确的过期日期、重启数据库服务。
 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/913875
推荐阅读
相关标签
  

闽ICP备14008679号