Postgresql
PostgreSQL:刪除使用者 postgres 的密碼要求
我知道,安裝後,PostgreSQL 的 db root 使用者(postgres)沒有密碼:
postgres=# select usename, passwd is null from pg_shadow; usename | ?column? ----------+---------- postgres | t (1 row)
…建議將其設置為:
alter role postgres password '<<very-secret>>';
(然後
pg_hba.conf
相應地更新文件)我的問題是:當 user 不需要密碼時,用於恢復到以前情況的 SQL 是什麼
postgres
。一般來說,我怎樣才能刪除任何角色的密碼要求?我不是在問如何更改密碼,而是在問如何刪除密碼要求(表中的空
passwd
列pg_shadow
)。
pg_shadow
是否需要密碼與是否為使用者實際定義了密碼無關。是的,我知道,這很奇怪。
pg_hba.conf
控制身份驗證方法。如果要請求密碼,請使用md5
身份驗證。如果您想允許任何人無需密碼即可登錄,請使用trust
. 如果您想在作業系統中要求與 PostgreSQL 中相同的使用者名,請使用peer
(UNIX,僅用於本地連接) 或sspi
(Windows)。如果設置了密碼,但
pg_hba.conf
沒有告訴 PostgreSQL 要求它,則密碼將被忽略。如果
pg_hba.conf
告訴 PostgreSQL 要求輸入密碼但沒有設置密碼,那麼無論提供什麼密碼,所有登錄嘗試都將失敗。