Postgresql
PgAdmin III - 密碼為空時如何連接數據庫?
我已經在我的電腦(Win 7)上安裝了 PostgreSQL 9.1。我有一個小型 Java 應用程序使用
login=sa
和成功連接到它password=""
。連接有效。但是,它被 PgAdmin III 本身拒絕。我得到:
Error connecting to the server: fe_sendauth: no password supplied
如何使用空密碼從 PgAdmin III 連接到我的數據庫?
編輯
這只是一個測試,而不是生產程式碼。
我可以從 pgAdmin III 連接到我的 postgres 實例,而無需任何使用者的密碼,包括超級使用者,例如
postgres
.因為您從另一個客戶端連接正常,所以如果它們在同一個工作站上,您沒有理由不能從 pgAdmin 連接 - 除非客戶端本身的某些防火牆規則允許一個程序但不允許另一個程序。
如果問題是特定於該客戶端的,您可能需要更改以下一項或多項:
- pg_hba.conf
主機 sa 所有 192.168.0.nnn / 32 信任
- postgresql.conf
聽地址 = '*'
- 您的 postgres 伺服器上的防火牆,例如 iptables:
-A INPUT -s 192.168.0.nnn -m state --state NEW -j ACCEPT
但我建議你不要這樣做。該手冊有充分的理由說以下內容:
信任認證僅適用於 TCP/IP 連接,前提是您信任每台機器上的每個使用者,這些使用者通過指定信任的 pg_hba.conf 行允許連接到伺服器。對除來自 localhost (127.0.0.1) 的 TCP/IP 連接之外的任何 TCP/IP 連接使用信任很少是合理的。
相反,請考慮:
- 使用密碼和 md5 標識
- 通過 ssh 隧道傳輸埠 5432