繁体   English   中英

postgres / libpqxx:拒绝通过密码进行身份验证

[英]postgres/libpqxx: Refuses authentication via password

我在大学里使用两种工具,它们都可以在同一个postgres数据库中使用。 用Java编写的脚本使用jdbc-driver,并且效果很好。

用C ++编写的第二篇文章有些困难。 它给我以下错误

Ident authentication failed for user "xyz"

连接字符串如下所示

dbname=myDB user=xyz hostaddr=127.0.0.1 port=5432 connect_timeout=10 password=myPW

我检查了类似10次的值,并且在两个应用程序中都完全相同。 我以为可能是pg_hba.cfg。 所以我尝试了很多,终于打开了所有的门:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all             trust
local   all             postgres        ident
local   all             all             password
# IPv4 local connections:
host    all             all             192.168.185.0/24        trust
host    all             postgres        127.0.0.1/32            ident
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 ident

即使提供了密码,C ++工具也总是尝试使用缩进身份验证方法。 (或者是数据库..?)我需要注意的libpqxx中有什么特殊情况吗?

我认为您写ident时是指peer local连接上的ident毫无意义。 但是,这不是匹配的行。

即使提供了密码,C ++工具也总是尝试使用缩进身份验证方法。 (或者是数据库..?)我需要注意的libpqxx中有什么特殊情况吗?

数据库服务器选择auth方法,并要求客户端使用所需的方法进行身份验证。

密码是未使用的,如果不要求,甚至从不会发送给服务器,如ident验证。 如果要进行密码身份验证,请将服务器设置为请求md5身份验证方法。

我最近在邮件列表中建议libpq应该在提供密码时发出WARNING ,但由于服务器配置而被忽略。 我还没有说服任何人这是一个好主意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM