跳转到主要内容

01P01 — deprecated_feature

PostgreSQL SQLSTATE 01P01 用 WARNING 宣布已弃用功能;PostgreSQL 18.6 有固定的 MD5 密码路径。

01P01 — deprecated_feature

速览

PostgreSQL 18.6 在设置密码的操作产生或保留 MD5 verifier 时以 WARNING 发出 01P01。这是仍可继续的命令上的弃用通知,不是所有旧功能的通用失败码。

字段
SQLSTATE 01P01
条件名 deprecated_feature
状态 有效
已知存在于 8.0.0
锁定快照 9.0.23, 9.1.24, 9.2.24, 9.3.25, 9.4.26, 9.5.25, 9.6.24, 10.23, 11.22, 12.22, 13.23, 14.24, 15.19, 16.15, 17.11, 18.6, 19beta3
ERRCODE_WARNING_DEPRECATED_FEATURE
别名

含义

确认的 18.6 实现是 src/backend/libpq/crypt.c 的设置密码路径,在最终 verifier 为 MD5 时发出 warning。触发依据是最终存储的 verifier 形式,例如 password_encryption = 'md5' 下的明文输入,或作为输入传入已有的 md5... verifier;它不是 pg_hba.conf 的认证方法,已有 SCRAM verifier 本身也不会触发此 warning。

消息与诊断

固定路径主消息为 setting an MD5-encrypted password;detail 为 MD5 password support is deprecated and will be removed in a future release of PostgreSQL.;hint 为 Refer to the PostgreSQL documentation for details about migrating to another password type.

诊断

检查设置密码会话中的 SHOW password_encryption、输入是明文还是已有的 md5... verifier,并在有权限时检查角色最终 verifier。保留完整 warning,因为 detail 和 hint 指出了受影响的方法及迁移方向。不要把 pg_hba.conf 的认证方法当成触发条件,也不要把已有 SCRAM verifier 推断为此 warning 的原因。

处理

按官方密码认证文档将受影响角色迁移到 SCRAM;对于明文输入,先将 password_encryption 设为 scram-sha-256,再重置密码,并验证客户端兼容性。不要把旧 MD5 verifier 原样作为迁移步骤。warning 本身不要求原样重试设置密码命令。

版本

01P01 在锁定目录 9.0.23 至 18.6 以及 19 Beta 3 中存在,known_present_by 为 8.0.0。固定的 MD5 路径和措辞仅确认 18.6;其他弃用功能或旧措辞需要独立来源。

01000 是警告类;28P01 是密码无效 error;00000 是成功完成。

来源

  • errcodes.txt — 定义,SHA-256 6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba.
  • crypt.c — 固定路径,SHA-256 d0c7579210827dbaec466f1c064a3d1ea2f7f7bfbf8b40b2e79fb4769cb406a9
  • 结构化证据 — 固定来源、消息和运行边界。