Postgresql
“sudo -u postgres psql postgres”不要求輸入密碼
我已經接管了一個使用 postgres 的系統。登錄時,如果我使用…
sudo -u postgres psql postgres
…它不要求輸入密碼。但是,如果我這樣做…
psql -U postgres -h localhost postgres
…它要求輸入密碼。
為什麼?這種差異是如何配置的?可以為不同的使用者配置以這種方式登錄嗎?
(注意:使用者
postgres
不在sudoers
文件中,也不在 sudo 組中。
Postgres 有一種稱為peer的身份驗證類型。如果您查看 pg_hba.conf,您可能會看到類似
local all postgres peer
或喜歡
local all all peer
您沒有被要求輸入密碼的事實與使用 sudo 無關,並且與您連接到與使用者名匹配的數據庫有關,並且在 pg_hba.conf 中啟用了對等身份驗證。
如果這是一台測試機器並且不需要安全性,您可以使用信任而不是對等,這樣就不需要密碼。壓力不夠,信任只是開發和測試機器的一個不錯的選擇。永遠不應該在生產機器上使用信任。