在PostgreSQL中,证书认证和基本认证(username/password认证)可以同时存在吗?

In PostgreSQL , can certificate authentication and basic authentication(username/password authentication) co-exist at one time?

是否可以为同一个客户端IP同时配置PostgreSQL的Basic认证和Certificate认证。 我认为不能,因为它们是两种不同的身份验证机制,不能同时共存...因为如果我们配置证书身份验证,那么它不能使用用户名密码进行身份验证,而只能使用证书进行身份验证。

请帮忙。

是的,没错 - 对于给定的连接,您只能使用一种身份验证方法。

是的,您可以指定 clientcert 与任何身份验证方法结合使用。所以 md5 clientcert=verify-full 需要证书和密码。

verify-full 仅在 v12 中引入。在此之前,您只能让它检查证书是否已有效签名,而不是证书上的 CN 是否与所声明的用户名匹配。

我试过自己。 在pg_hba.conf文件中,我们可以为一组IP地址设置MD5认证,为另一组IP地址范围设置cert。 所以 1 个 Postgres 服务器可以针对 2 个不同的 IP 地址进行 2 个不同的身份验证