2025年9月25日: PostgreSQL 18 发布!

credcheck v1.0 已发布

发布于 2023-04-06,作者 MigOps
相关开源项目

2023年4月6日

PostgreSQL credcheck 扩展

credcheck PostgreSQL 扩展提供了通用的凭证检查功能,这些检查将在用户创建、密码更改和用户重命名时进行评估。通过使用此扩展,可以定义一套规则

  • 允许一组特定的凭据
  • 拒绝某类凭据
  • 强制设置密码的过期日期,并指定最短天数
  • 定义密码重用策略

新发布的 v1.0 版本增加了一个名为密码复用策略的主要功能,并支持强制使用密码过期日期。它还能防止 PostgreSQL 在出错时将密码暴露在日志中,并修复了过去 6 个月以来用户报告的一些问题。

  • 添加密码复用策略功能。此实现使用专用的共享内存存储来在所有数据库之间共享密码历史记录。它要求在 postgresql.conf 中通过 shared_preload_libraries 加载 credcheck。此功能的行为可以通过两个设置进行控制

    • credcheck.password_reuse_history:在密码可以被重复使用之前,设置的不同密码的数量。

    • credcheck.password_reuse_interval:在密码可以再次被重复使用之前所需的时间。

  • 增加强制使用带有特定天数生命周期的密码过期日期的可能性。例如:credcheck.password_valid_until = 60 密码生命周期必须至少为两个月。

  • 允许 credcheck 在没有 PASSWORD 选项的 CREATE USER 语句中检查用户名。

  • 强制 credcheck 设置只能由超级用户设置/更改。

  • 修复了 CREATE ROLEVALID UNTIL 子句的检测。

  • 强制 PostgreSQL 在 CREATE/ALTER role 发生错误时不在日志中暴露密码。此行为可以通过将自定义变量 credcheck.no_password_logging 设置为 off 来禁用。

  • 对大多数错误消息使用 errcode ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION (28000)

完整的更改列表可在 此处查看

链接与致谢

credcheck 是一个在 PostgreSQL 许可证下的开源项目,由 MigOps Inc 创建。欢迎任何为构建更好的工具做出的贡献。您可以使用 GitHub 工具发送您的想法、功能请求或补丁。

关于 credcheck

credcheck 扩展是 MigOps Inc 的原创作品,MigOPs 专注于 PostgreSQL 迁移和 PostgreSQL 支持。如果您需要更多信息,请 联系我们

文档位于 https://github.com/MigOpsRepos/credcheck#readme