企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# F.23\. passwordcheck `passwordcheck`模块当用户设置[CREATE ROLE](#calibre_link-10) 或[ALTER ROLE](#calibre_link-17)时,检查用户的密码。如果认为一个密码太弱, 那么将拒绝该密码并且命令将带有错误终止。 要启用这个模块,在`postgresql.conf`中添加 `'$libdir/passwordcheck'`到[shared_preload_libraries](#calibre_link-576), 然后重启服务器。 你可以通过改变源码调整这个模块为你所需的样子。例如,你可以使用 [CrackLib](http://sourceforge.net/projects/cracklib/) 检查密码—这只需要在`Makefile`文件中取消两行的注释, 并重新编译该模块。(因为许可证的原因,我们缺省不能包括CrackLib。) 没有CrackLib,该模块为密码强度强制一些简单的规则, 这些规则可以根据你认为合适的去修改或扩展。 | **Caution** | |:--- | | 为了阻止未加密的口令通过网络发送出去、写到服务器日志或被数据库管理员偷走, PostgreSQL允许用户提供预先加密的口令。 许多客户端程序使用这个功能,并在发送到服务器之前加密口令。 这会限制`passwordcheck`模块的有用性,因为那种情况下只能尝试猜测口令。 因为这个原因,如果你的安全需求比较高,那么不建议使用`passwordcheck`。 使用一个额外的认证方法(如Kerberos)(参阅 [Chapter 19](#calibre_link-14)) 比依赖于数据库中的密码更安全。 或者,你可以修改`passwordcheck`拒绝预先加密的口令, 但是强制用户以明文的方式设置他们的口令有其自身的安全风险。 |