2012-11-23 60 views
3

當我嘗試從命令行登錄這樣獲得認證PostgreSQL的命令行失敗的錯誤

psql -h dbserver -U testuser test 

然後我得到這個錯誤

psql: FATAL: Ident authentication failed for user "testuser" 

這是我

nano -w /var/lib/pgsql/data/pg_hba.conf

# TYPE DATABASE USER  CIDR-ADDRESS   METHOD 

# "local" is for Unix domain socket connections only 
local all   all        ident 
# IPv4 local connections: 
host all   all   127.0.0.1/32   password 
# IPv6 local connections: 
host all   all   ::1/128    ident 
host all  all  192.168.0.1/24 password 
+2

做你有運行? –

+0

您是否授予該用戶的登錄權限? – andrefsp

+0

將'local all all ident'行更改爲'local all all md5',然後按照Craig的答案或運行identd。 –

回答

5

使用ident身份驗證時,您不能在psql中指定非默認用戶-U。您將不會以該用戶的身份運行psql,因此身份驗證將失敗。

您必須使用sudo -u testuser psql test或更改pg_hba.conf以便驗證(至少testuser在DB test)使用md5密碼驗證,併爲testuser密碼與ALTER USER ... PASSWORD如果他們沒有一個了。

1

我看到/var/lib/pgsql/data/pg_log/postgresql-Wed.log以下錯誤:

LOG:提供的用戶名(DB_USER)和認證的用戶名 (SHELL_USER)不匹配FATAL:身份認證失敗,用戶 「DB_USER」

在我的情況的解決方案是在/var/lib/pgsql/data/pg_hba.conf的所有身份驗證方法更改爲MD5

相關問題