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