↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0
历史版本。 PostgreSQL 9.6 已结束支持。 2021-11-11. 请参阅 当前版本手册.

F.23. passwordcheck #

每当通过CREATE ROLE或ALTER ROLE设置用户密码时,passwordcheck 模块都会检查密码强度。如果密码被认为过弱,就会被拒绝,该命令也会因错误而终止。

要启用该模块,请将 '$libdir/passwordcheck' 加入 postgresql.conf 中的shared_preload_libraries,然后重启服务器。

可以通过修改源代码使该模块适应你的需求。例如,可以使用 CrackLib 来检查密码,这只需要在 Makefile 中取消两行注释并重新构建该模块。(由于许可原因,我们不能默认包含 CrackLib。)如果不使用 CrackLib,该模块会对密码强度施加一些简单规则,而这些规则也可以按需修改或扩展。

小心

为了防止未加密的密码通过网络传输、被写入服务器日志,或以其他方式被数据库管理员窃取,PostgreSQL允许用户提供预加密密码。很多客户端程序都会利用这一能力,在将密码发送给服务器之前先行加密。

这就限制了 passwordcheck 模块的作用,因为在这种情况下,它只能尝试猜测密码。因此,如果安全要求很高,并不建议使用 passwordcheck。与其依赖数据库内部的密码,不如使用 GSSAPI 之类的外部认证方法(见第 20 章),那样更安全。

另外,也可以修改 passwordcheck 以拒绝预加密密码,但强迫用户以明文设置密码本身也会带来安全风险。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.