支援版本: 目前 (17) / 16 / 15 / 14 / 13
開發版本: devel
不支援版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0

F.24. passwordcheck — 驗證密碼強度 #

passwordcheck 模組會在使用者使用 CREATE ROLEALTER ROLE 設定密碼時,檢查使用者的密碼。如果密碼被認為太弱,它將被拒絕,並且該指令將終止並出現錯誤。

要啟用此模組,請將 '$libdir/passwordcheck' 加入到 shared_preload_libraries,位於 postgresql.conf 中,然後重新啟動伺服器。

您可以透過變更原始碼來調整此模組以符合您的需求。例如,您可以使用 CrackLib 來檢查密碼 — 這只需要取消註解 Makefile 中的兩行並重新編譯該模組即可。(由於授權原因,我們預設無法包含 CrackLib。) 如果沒有 CrackLib,該模組會強制執行一些簡單的密碼強度規則,您可以根據自己的需要修改或擴充這些規則。

注意

為了防止未加密的密碼透過網路傳送、寫入伺服器日誌或被資料庫管理員竊取,PostgreSQL 允許使用者提供預先加密的密碼。許多用戶端程式都會使用此功能,並在將密碼傳送至伺服器之前對其進行加密。

這限制了 passwordcheck 模組的用處,因為在這種情況下,它只能嘗試猜測密碼。因此,如果您的安全性要求很高,則不建議使用 passwordcheck。使用外部驗證方法(例如 GSSAPI(請參閱 第 20 章))比依賴資料庫中的密碼更安全。

或者,您可以修改 passwordcheck 以拒絕預先加密的密碼,但是強迫使用者以明文設定密碼會帶來自身的安全風險。

提交更正

如果您在文件中發現任何不正確、與您特定功能的使用經驗不符或需要進一步澄清的地方,請使用此表單來回報文件問題。