↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

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。