PostgreSQL口令認證的問題

PostgreSQL口令認證的問題


Redhat上新裝PostgreSQL9.1.3, 用psql連不上, 報錯:

psql.bin: FATAL:  password authentication failed for user "postgres"

明明添加了postgres這個用戶, 口令也簡單的不得了,不可能記錯的, 怎麼就連不上呢?

 

上網查,有人說修改pg_hba.conf, 把local一行的md5改成trust。一試,果然好使。

 

後來,客戶機遠程登錄,出現同樣問題,於是咱如法炮製,再把md5改成了trust,也能登錄了,

 

只要獲取對方的信任(trust),問題真的就不是問題了,呵。

 

但這種做法對於服務器而言,相當於把自家的鎖砸了:設置成trust後,根本就不需要口令。

 

我再google,中間突然打不開鏈接,於是只好耐心地等了5分鐘。來火,但是沒辦法。網絡封鎖和網絡搜索,一不小心就成了一對冤家。  www.2cto.com  

 

終於,老天有眼,讓我找到了下面一段話:

 

PostgreSQL 數據庫口令與任何操作系統用戶口令無關。各個數據庫用戶的口令是存儲在 pg_authid 系統表裏面。口令可以用 SQL 語言命令 CREATE USER 和 ALTER USER 等管理(比如 CREATE USER foo WITH PASSWORD 'secret'; 。缺省時,如果沒有明確設置口令,那麼存儲的口令是空並且該用戶的口令認證總會失敗。

《PostgreSQL 8.2.3 中文文檔,20.2 認證方法》

 

原來是這樣啊,pg_authid表裏的postgres用戶的口令還是空的呢!

我再改,好了,這回是真好了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章