客户端在尝试连接时遭遇认证拒绝报错,最常见的根因包括:
规则匹配遗漏:pg_hba.conf 中未配置能够匹配客户端来源实际 IP 地址段的规则,或者没有开启针对该 IP 的网络监听(listen_addresses 仍为默认的 localhost)。
规则顺序覆盖:上方较早匹配的某条宽泛规则使用了不匹配的认证方式拦截了连接。请牢记规则是自顶向下首次匹配即止。
密码加密算法不匹配:在从旧版本升级后,用户密码在数据库中存储的仍是旧的 MD5 哈希,而认证规则强制要求了 scram-sha-256。此时只需在会话中重新执行一次 ALTER ROLE name PASSWORD '...' 即可自动生成并更新为 SCRAM 强哈希。
证书权限或链条断裂:私钥文件权限过宽或中间 CA 证书缺失导致 TLS 握手失败。