credcheck 6.0 发布
发布于 2026-10-18,HexaCluster
相关开源软件
马达加斯加塔那那利佛,2026 年 10 月 14 日
PostgreSQL credcheck 扩展
credcheck 为 PostgreSQL 提供通用凭据检查,在创建用户、修改密码和重命名用户时执行。通过该扩展可以定义以下规则:
- 允许指定的凭据集合。
- 拒绝特定类型的凭据。
- 拒绝容易破解的密码。
- 强制设置密码有效期,并规定最短天数。
- 定义密码重用策略。
- 设定封禁用户前允许的认证失败次数。
- 为认证失败设置延迟。
- 要求用户首次登录后修改密码。
- 在密码到期前 N 天发出警告。
- 禁止修改密码。
- 记录最近登录以及启动、关闭信息。
- 将认证失败限制与 PgBouncer 配合使用。
6.0 版本现已发布。这个大版本增加了新功能,并修复了上一版本以来用户报告的问题:
- 支持将 max_auth_failure 功能与 PgBouncer 集成,参见文档。
- 支持在 PgBouncer 环境中使用 password_change_first_login。
- 新增 credcheck.password_valid_min,为新建角色强制设置较短的 VALID UNTIL 有效期。当 DBeaver、pgAdmin 等客户端不支持 credcheck.password_change_first_login 启用后返回的错误时,可用它要求新用户尽快修改密码。
- 新增可选的登录历史,设计参考 Unix 的 last(1)/wtmp。记录用户会话的用户名、登录时间、持续时间、后端 PID、来源 IP 和端口,以及可选的最后一条 SQL,还记录 PostgreSQL 启动、关闭和崩溃标记。
- 调整 credcheck.no_password_logging:不再隐藏整条报错语句,而是将各个 PASSWORD '<literal>' 子句中的密码字面量替换成点号,避免密码出现在日志中。
- 新增 pg_check_password(IN username name, IN password text),无需创建或修改角色,即可检查候选密码及用户名是否符合策略。
- 修复设置 password_valid_until 后通过修改自身角色的 ALTER ROLE 操作进行权限提升的问题。
- 修复内存泄漏和堆溢出。
升级后需要重启 PostgreSQL,以重新加载 credcheck 库。
完整变更与致谢见发布说明。
链接与致谢
credcheck 是采用 PostgreSQL 许可证的开放项目,由 HexaCluster 维护。欢迎通过 GitHub 提交想法、功能请求和补丁,共同改进工具。
关于 credcheck
credcheck 由 HexaCluster 的 Gilles Darold 开发和维护。更多信息请联系团队。
文档:项目 README。