一、说明
生产环境一般都会要求,对连接数据库的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求(长度不少于8位,包含不少于3类字符)并定期(不长于90天)更换;必须包含字母和非字母、密码不能包含用户名。如果这些规则仍然不能满足你的密码强度要求,那么还可以安装cracklib以及字典来提高密码强度。
环境:
OS:CentOS Linux release 7.6.1810 (Core)
postgresql:v12.15
二、源码下载
wget https://ftp.postgresql.org/pub/source/v12.15/postgresql-12.15.tar.gz --no-check-certificate
=== END ===
三、安装cracklib以及字典
yum install –y cracklib-devel cracklib-dicts cracklib
=== END ===
四、修改passwordcheck相关配置
cd /root/postgresql-12.15/contrib/passwordcheck
# 如果需要修改密码长度
vim passwordcheck.c
#define MIN_PWD_LENGTH 8 # 定义密码最短长度
#修改Makefile文件, 把下图红框的2行注释去掉, 并修改字典文件和路径(文件不要带.pwd后缀,如下图)。
# 查找cracklib_dict文件的路径。
find / -name cracklib_dict*
=== END ===
五、编译安装passwordcheck插件
# 编译 & 安装
make && make install
=== END ===
六、加载模块
打开${PGDATA}/postgresql.conf
文件,修改shared_preload_libraries
参数以包含’passwordcheck
’,重启数据库。
# 把注释去掉
shared_preload_libraries = 'passwordcheck'
# 重启数据库
su - postgres
pg_ctl -D /data/pgdata-12.5/ restart
=== END ===
七、测试
=== END ===