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