# F.24.密码检查

这个密码检查当用户设置密码时,模块会检查用户的密码创建角色改变角色。如果认为密码太弱,将拒绝该密码,命令将以错误终止。

要启用此模块,请添加“$libdir/passwordcheck”共享_预加载_图书馆在里面postgresql。形态,然后重新启动服务器。

您可以通过更改源代码使本模块适应您的需要。例如,你可以使用CrackLib (opens new window)要检查密码,只需在Makefile以及重建模块。(由于许可证原因,默认情况下,我们不能包含CrackLib。)在没有CrackLib的情况下,该模块会强制执行一些简单的密码强度规则,您可以根据需要修改或扩展这些规则。

# 小心

为了防止未加密的密码通过网络发送、写入服务器日志或被数据库管理员窃取,PostgreSQL允许用户提供预加密的密码。许多客户端程序利用这一功能,在将密码发送到服务器之前对其进行加密。

这限制了密码检查模块,因为在这种情况下,它只能尝试猜测密码。因此,密码检查如果您的安全要求很高,则不建议使用。使用外部身份验证方法(如GSSAPI)更安全(参见第21章)而不是依赖数据库中的密码。

或者,您可以修改密码检查拒绝预先加密的密码,但强制用户以明文形式设置密码会带来自身的安全风险。