Postgresql

為什麼使用者不能在 Postgres 上登錄

  • December 29, 2015

我試圖在 Postgres 中設置一個只讀使用者,但他們無法登錄。我不確定解決問題的下一步。

當我嘗試以使用者 XXXX 身份登錄時,出現錯誤 - psql: FATAL: password authentication failed for user “XXXX”

查看日誌文件,我看到以下幾行:

< 2014-05-20 10:22:24.830 NZST >FATAL:  password authentication failed for user "XXXX"
< 2014-05-20 10:22:24.830 NZST >DETAIL:  Connection matched pg_hba.conf line 104: "host DATABASENAME        XXXX           10.0.0.0/8              md5"

當然,我曾多次嘗試重置密碼,但無濟於事。我嘗試從 md5 更改為無效的密碼。有趣的是,將身份驗證機制設置為“信任”確實有效。

我正在使用 Postgres 9.3。

我無法刪除此使用者來重置它 - 我收到錯誤消息“錯誤:無法刪除角色“XXXX”,因為某些對象依賴於它詳細資訊:數據庫 DATABASENAME 的權限”

如果我創建一個新使用者,則該新使用者連接到數據庫沒有問題。(我在 pg_hba.conf 中複製了相應的行並修改了使用者名當然)

發出命令“將 DBNAME 上的所有權限授予 XXXX”似乎沒有任何區別。

當我執行 \ddp 命令時,我得到

   Default access privileges
 Owner   | Schema |   Type   | Access privileges 
----------+--------+----------+-------------------
postgres | public | sequence | XXXX=r/postgres
postgres | public | table    | XXXX=r/postgres

我不完全確定為什麼這會阻止我完全放棄使用者並重新創建它們 - 或者如何

$$ safely $$解決這個問題。 任何現場了解正在發生的事情或如何進一步調試登錄問題將不勝感激。

收到此錯誤時:

psql:致命:使用者“XXXX”的密碼驗證失敗

儘管密碼正確,但接下來要檢查的是帳戶的有效性:

SELECT usename, valuntil FROM pg_user;

請參閱PostgreSQL 使用者在更改密碼後無法連接到伺服器,了解 PgAdmin 中的錯誤如何在valuntil過去錯誤地重置此密碼,從而使使用者無法連接到上述錯誤消息。

如果這恰好是您的情況,您可以使用以下方法修復它:

ALTER USER username VALID UNTIL 'infinity';

引用自:https://serverfault.com/questions/597076