[英]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.