墨墨導讀:本文主要介紹PostgreSQL數據庫中一些常見用戶安全配置。
1. 限制用戶連接數
max_connections根據應用並發量設置合理的值,對普通數據庫用戶設置限制連接數,並設置少量的保留超級用戶登錄連接數。
postgres=# create user app1 connection limit 5;CREATE ROLE
2. 修改默認端口
建議修改默認5432端口。
postgres=# select * from current_setting('port'); current_setting----------------- 6000(1 row)
3. 不使用默認postgres數據庫
建議新建數據庫后刪除默認的postgres數據庫
postgres=# create database my_app_db owner app1;CREATE DATABASEpostgres=# \c my_app_dbYou are now connected to database "my_app_db" as user "postgres".my_app_db=# drop database postgres;DROP DATABASE
4. 自定義超級用戶
建議刪除默認超級用戶postgres,新建不同名稱超級用戶,也可再initdb時使用-U指定。
$ initdb -D /opt/data6000/ -U admin -W
5. 修改監聽地址
根據業務場景設置,比如設置為localhost或服務器IP。
#listen_addresses = 'localhost'#listen_addresses = '192.168.99.100'#listen_addresses = '192.168.99.100,192.168.99.200'
6. 配置客戶端認證
參考配置如下
# 服務端本地數據庫用戶免密登錄local all all trust# 拒絕超級用戶從網絡登錄host all postgres 0.0.0.0/0 reject# 其它用戶密碼驗證登陸host all all 0.0.0.0/0 scram-sha-256# 流復制用戶密碼驗證登錄host replication replica 192.168.99.101/32 md5
7. 設置socket訪問方式
參考配置如下
unix_socket_directories='$PGDATA'unix_socket_group=''unix_socket_permissions='0700'
8. 使用pgpass文件
linux和window都建議使用pgpass文件
Linux$ cat .pgpass192.168.99.200:5432:postgres:postgres:admin192.168.99.227:6432:*:app1:yourPassword
win10C:\Users\pcsuc\AppData\Roaming\postgresql\pgpass.conflocalhost:5432:*:postgres:admin192.168.99.227:6432:*:app1:yourPassword
9. 用戶密碼安全策略
可參考《PostgreSQL用戶密碼安全策略管理》(鏈接:https://www.modb.pro/db/21476)
10. 權限配置
表權限按最小最需原則分配,建議不使用public模式
revoke all on DATABASE XXX from public;
可參考《PostgreSQL用戶表權限設計與配置》(鏈接:https://www.modb.pro/db/23483)
11. 記錄數據庫日志並清理
配置合理的日志級別,常見級別如warn
配置日期過期策略,如配置最大100個循環寫文件,或按周循環等。
12. 備份恢復測試
初始化數據目錄時建議打開checksums,數據庫備份后需要做恢復測試,確保有效性,可以使用第三方備份恢復管理器,如pg_rman,pg_probackup,pgBackRest等。
13. 備份數據文件加密存儲
備份文件可以手工壓縮加密或者借助第三方備份工具,如pgBackRest等。
14. 小版本升級
定期升級數據庫小版本,下面是源碼方式升級主要步驟:
下載編譯新版本的源碼程序到新目錄
重新編譯現有數據庫所有源碼安裝的擴展
停數據庫服務
使用符號鏈接新目錄到原目錄
新版本服務啟動
檢查無誤后移除舊版本
墨天輪原文鏈接:https://www.modb.pro/db/27257(復制到瀏覽器中打開或者點擊“閱讀原文”)
推薦閱讀:144頁!分享珍藏已久的數據庫技術年刊
數據和雲
ID:OraNews
如有收獲,請划至底部,點擊“在看”,謝謝!
點擊下圖查看更多 ↓
雲和恩墨大講堂 | 一個分享交流的地方
長按,識別二維碼,加入萬人交流社群
請備注:雲和恩墨大講堂
點個“在看”
你的喜歡會被看到❤