PostgreSQL配置密碼復雜度策略


安裝完PostgreSQL之后,默認是沒有開啟密碼復雜度,為了數據庫安全以及應對等保測評等要求,有時我們需要設置密碼復雜度。

PostgreSQL支持通過動態庫的方式擴展PG的功能,pg在使用這些功能時需要預加載相關的共享庫。而密碼復雜度可以通過預加載passwordcheck.so模塊實現。

有幾種設置可用於將共享庫預加載到服務器中,如下:

local_preload_libraries (string)
session_preload_libraries (string)
shared_preload_libraries (string)

下面介紹shared_preload_libraries (string)方式加載passwordcheck.so模塊,此模塊可以檢查密碼,如果密碼太弱,他會拒絕連接;創建用戶或修改用戶密碼時,強制限制密碼的復雜度,限制密碼不能重復使用例如密碼長度,包含數字,字母,大小寫,特殊字符等,同時排除暴力破解字典中的字符串。

1、創建測試用戶

CREATE USER AAA WITH PASSWORD '123';--創建用戶

ALTER USER AAA WITH PASSWORD '111';--修改用戶密碼

 

 

 

執行發現,使用簡單密碼,無論是創建用戶還是修改用戶密碼均可以成功執行。

2、shared_preload_libraries 方式啟用passwordcheck.so模塊

在PG庫的數據目錄下(centos默認路徑為:/var/lib/pgsql/11/data,windows默認路徑為:D:\PostgreSQL\11\data)找到postgresql.conf文件,修改

 

 

 

 

 

修改內容行為:shared_preload_libraries = 'passwordcheck'    # (change requires restart)。

修改完成后重啟服務服務生效(systemctl restart postgresql-11)。

注意:如果修改不正確會導致數據庫服務器無法正常啟動,請修改之前做好備份。

3、重啟后驗證

 

 

 

 

 

 

 

 

 

 

發現無論在新建用戶以及修改用戶時候,都對密碼提出要求,要求至少8位,必須包含數字和字母。

其他注意事項:

我在Windows系統上,修改完成后所有已有用戶均無法登陸(CENTOS上未遇到此種情況),只需要修改PG庫的數據目錄下(centos默認路徑為:/var/lib/pgsql/11/data,windows默認路徑為:D:\PostgreSQL\11\data)找到pg_hba.conf文件,修改登陸驗證方式。

 

 

 

然后登陸后修改用戶的有效期,設置完成后將pg_hba.conf文件恢復即可。

說明:trust為不驗證密碼;md5為密碼認證,另外還有ident(使用操作系統賬號)、password(明文密碼)、reject(拒絕訪問)

 

 

 

有效期不要設置過程,否則可能不生效,可以通過 select * from pg_user 語句查看有效期(valuntil字段)。

 

 

 

  
-----------------------------------
PostgreSQL配置密碼復雜度策略
https://blog.51cto.com/u_15162069/2778382


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM