簡體   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