19.4. 用户认证

认证失败以及相关的问题通常由类似下面的错误信息反馈:

FATAL:  no pg_hba.conf entry for host "123.123.123.123", user "andym", database "testdb"

这条信息出现的最大可能是你已经连接了服务器, 但它不愿意和你说话。就像信息自己表示的那样, 服务器拒绝了连接请求, 因为它没有在它的pg_hba.conf配置文件里找到匹配的记录。

FATAL:  password authentication failed for user "andym"

这样的信息表示你连接了服务器, 并且它也愿意和你交谈, 但是你必须通过pg_hba.conf文件里声明的认证方法。 检查你提交的口令,或者如果错误信息提到这些 Kerberos 或IDENT认证类型时检查这些软件。

FATAL:  user "andym" does not exist

这是表示此数据库用户不存在的另一方法。

FATAL:  database "testdb" does not exist

你试图连接的数据库不存在。请注意如果你没有声明数据库名,缺省是数据库用户名,这可能正确也可能不正确。

Tip: 请注意服务器日志可能包含比报告给客户端的更多的有关认证失败的信息。 如果你被失败的原因搞糊涂了,那么请检查服务器日志。