passwordcheck
模組會在使用者使用 CREATE ROLE 或 ALTER ROLE 設定密碼時,檢查使用者的密碼。如果密碼被認為太弱,它將被拒絕,並且該指令將終止並出現錯誤。
要啟用此模組,請將 '$libdir/passwordcheck'
加入到 shared_preload_libraries,位於 postgresql.conf
中,然後重新啟動伺服器。
您可以透過變更原始碼來調整此模組以符合您的需求。例如,您可以使用 CrackLib 來檢查密碼 — 這只需要取消註解 Makefile
中的兩行並重新編譯該模組即可。(由於授權原因,我們預設無法包含 CrackLib。) 如果沒有 CrackLib,該模組會強制執行一些簡單的密碼強度規則,您可以根據自己的需要修改或擴充這些規則。
為了防止未加密的密碼透過網路傳送、寫入伺服器日誌或被資料庫管理員竊取,PostgreSQL 允許使用者提供預先加密的密碼。許多用戶端程式都會使用此功能,並在將密碼傳送至伺服器之前對其進行加密。
這限制了 passwordcheck
模組的用處,因為在這種情況下,它只能嘗試猜測密碼。因此,如果您的安全性要求很高,則不建議使用 passwordcheck
。使用外部驗證方法(例如 GSSAPI(請參閱 第 20 章))比依賴資料庫中的密碼更安全。
或者,您可以修改 passwordcheck
以拒絕預先加密的密碼,但是強迫使用者以明文設定密碼會帶來自身的安全風險。
如果您在文件中發現任何不正確、與您特定功能的使用經驗不符或需要進一步澄清的地方,請使用此表單來回報文件問題。