PostgreSQL 18 默認(rèn)密碼修改全指南:從安裝到安全加固建議
引言
數(shù)據(jù)庫安全是企業(yè)和開發(fā)者不可忽視的重要環(huán)節(jié),而默認(rèn)密碼往往是數(shù)據(jù)庫安全的第一道防線。PostgreSQL作為一款廣泛使用的開源關(guān)系型數(shù)據(jù)庫,其默認(rèn)密碼設(shè)置和修改方法是每個(gè)數(shù)據(jù)庫管理員和開發(fā)者必須掌握的基礎(chǔ)知識。本文將以PostgreSQL 18為例,詳細(xì)介紹默認(rèn)密碼的情況、修改方法以及安全加固建議。
一、PostgreSQL 18 默認(rèn)密碼背景
1. 初始默認(rèn)狀態(tài)
在Ubuntu系統(tǒng)中,PostgreSQL 18安裝完成后:
- 會自動創(chuàng)建一個(gè)名為
postgres的系統(tǒng)用戶 - 默認(rèn)的
postgres數(shù)據(jù)庫用戶初始無密碼,采用操作系統(tǒng)認(rèn)證(peer或ident模式) - 本地連接時(shí),只需切換到
postgres系統(tǒng)用戶即可直接登錄,無需密碼
2. 本次安裝的默認(rèn)密碼
根據(jù)我們的自動化安裝腳本postgresql18_quick_install.sh,安裝過程中已經(jīng)主動設(shè)置了默認(rèn)密碼:
- 默認(rèn)密碼:
your_secure_password - 設(shè)置命令:
ALTER USER postgres WITH PASSWORD 'your_secure_password';
?? 安全警示:這個(gè)默認(rèn)密碼僅用于演示,生產(chǎn)環(huán)境必須立即修改,否則存在嚴(yán)重安全風(fēng)險(xiǎn)!
二、修改默認(rèn)密碼的詳細(xì)步驟
方法1:本地直接修改(推薦)
這種方法適用于可以直接訪問服務(wù)器的場景,步驟如下:
切換到postgres系統(tǒng)用戶
sudo su - postgres
登錄PostgreSQL
psql
修改密碼
ALTER USER postgres WITH PASSWORD '您的強(qiáng)密碼';
建議密碼包含:大小寫字母、數(shù)字、特殊字符,長度至少12位
退出PostgreSQL
\q
退出postgres用戶
exit
方法2:通過sudo直接執(zhí)行命令
如果不想切換用戶,可以使用sudo直接執(zhí)行命令:
# 1. 直接在命令行修改密碼 echo "ALTER USER postgres WITH PASSWORD '您的強(qiáng)密碼';" | sudo -u postgres psql # 2. 或使用here-doc方式 sudo -u postgres psql <<EOF ALTER USER postgres WITH PASSWORD '您的強(qiáng)密碼'; EOF
方法3:使用腳本批量修改(適合遠(yuǎn)程操作)
對于遠(yuǎn)程服務(wù)器或需要批量操作的場景,可以使用腳本方式修改密碼,避免復(fù)雜的引號嵌套問題:
創(chuàng)建腳本文件 change_pg_password.sh:
#!/bin/bash # 替換為您的sudo密碼和新的PostgreSQL密碼 SUDO_PASSWORD="<您的sudo密碼>" NEW_PG_PASSWORD="<您的新密碼>" # 執(zhí)行密碼修改命令 echo "$SUDO_PASSWORD" | sudo -S -u postgres psql -c "ALTER USER postgres WITH PASSWORD '$NEW_PG_PASSWORD'" echo "Password changed successfully!"
給腳本添加執(zhí)行權(quán)限:
chmod +x change_pg_password.sh
執(zhí)行腳本:
bash change_pg_password.sh
遠(yuǎn)程執(zhí)行腳本(可選):
# 上傳腳本到遠(yuǎn)程服務(wù)器 scp -P <端口號> change_pg_password.sh <用戶名>@<服務(wù)器IP地址>:~ # 遠(yuǎn)程執(zhí)行腳本 ssh -t -p <端口號> <用戶名>@<服務(wù)器IP地址> "bash ~/change_pg_password.sh"
這種方法特別適合在PowerShell等復(fù)雜引號環(huán)境下執(zhí)行遠(yuǎn)程操作,避免了引號嵌套的困擾。
三、驗(yàn)證密碼修改是否成功
修改密碼后,我們需要驗(yàn)證修改是否生效,可以通過以下方法:
方法1:本地密碼連接測試
# 使用-W參數(shù)提示輸入密碼 psql -U postgres -h localhost -W # 或使用PGPASSWORD環(huán)境變量(僅用于測試,不推薦生產(chǎn)使用) PGPASSWORD='您的新密碼' psql -U postgres -h localhost -c 'SELECT version();'
方法2:遠(yuǎn)程連接測試
如果需要遠(yuǎn)程連接,確保已配置好pg_hba.conf允許密碼認(rèn)證,然后使用:
# 從遠(yuǎn)程機(jī)器連接 psql -U postgres -h <服務(wù)器IP> -p 5432 -W
方法3:查看用戶密碼狀態(tài)
sudo -u postgres psql -c "SELECT usename, passwd FROM pg_shadow WHERE usename = 'postgres';"
注意:PostgreSQL會對密碼進(jìn)行哈希處理,無法直接查看明文密碼,只能確認(rèn)用戶存在且密碼已設(shè)置
四、密碼修改后的安全加固建議
1. 配置pg_hba.conf,限制訪問權(quán)限
編輯pg_hba.conf文件,根據(jù)實(shí)際需求調(diào)整認(rèn)證方式:
sudo nano /etc/postgresql/18/main/pg_hba.conf
推薦配置:
- 本地連接使用peer認(rèn)證
- 遠(yuǎn)程連接使用md5或scram-sha-256密碼認(rèn)證
- 限制允許連接的IP地址范圍
2. 啟用強(qiáng)密碼策略
在postgresql.conf中配置密碼策略:
# 啟用密碼復(fù)雜度檢查 password_encryption = scram-sha-256 # 設(shè)置密碼有效期 # password_valid_until = '2025-12-31'
3. 定期更換密碼
建立定期密碼更換機(jī)制,建議每3-6個(gè)月更換一次數(shù)據(jù)庫密碼。
4. 使用密碼管理器
對于復(fù)雜的強(qiáng)密碼,建議使用專業(yè)的密碼管理器(如1Password、Bitwarden)進(jìn)行管理,避免密碼丟失或泄露。
五、常見問題與解決方案
問題1:忘記postgres用戶密碼怎么辦?
解決方案:
停止PostgreSQL服務(wù)
sudo systemctl stop postgresql@18-main
以單用戶模式啟動
sudo -u postgres postgres --single -D /var/lib/postgresql/18/main
在單用戶模式下修改密碼
ALTER USER postgres WITH PASSWORD '新密碼';
退出單用戶模式(按Ctrl+D)
重啟PostgreSQL服務(wù)
sudo systemctl start postgresql@18-main
問題2:遠(yuǎn)程連接提示"password authentication failed"?
解決方案:
- 檢查
pg_hba.conf是否允許遠(yuǎn)程IP訪問 - 確認(rèn)密碼輸入正確
- 檢查
postgresql.conf中listen_addresses是否設(shè)置為'*'
六、總結(jié)
PostgreSQL 18默認(rèn)密碼的修改是數(shù)據(jù)庫安全加固的基礎(chǔ)步驟,通過本文的詳細(xì)指南,您應(yīng)該已經(jīng)掌握了:
- PostgreSQL 18默認(rèn)密碼的背景情況
- 兩種修改默認(rèn)密碼的方法(本地直接修改和sudo命令修改)
- 如何驗(yàn)證密碼修改是否成功
- 密碼修改后的安全加固建議
- 常見問題的解決方案
安全無小事,請務(wù)必重視數(shù)據(jù)庫默認(rèn)密碼的修改和管理,建立完善的數(shù)據(jù)庫安全管理制度,保護(hù)您的數(shù)據(jù)資產(chǎn)安全。
希望本文對您有所幫助,如果您有任何問題或建議,歡迎在評論區(qū)留言討論!
參考資源
到此這篇關(guān)于PostgreSQL 18 默認(rèn)密碼修改全指南:從安裝到安全加固建議的文章就介紹到這了,更多相關(guān)PostgreSQL密碼修改內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PostgreSQL誤刪數(shù)據(jù)庫該怎么辦詳解
這篇文章主要介紹了PostgreSQL中誤刪數(shù)據(jù)庫的恢復(fù)方法,包括備份恢復(fù)、歸檔日志恢復(fù)和操作系統(tǒng)層面的快照恢復(fù),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-03-03
PostgreSQL 實(shí)現(xiàn)sql放入文件批量執(zhí)行
這篇文章主要介紹了PostgreSQL 實(shí)現(xiàn)sql放入文件批量執(zhí)行,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
PostgreSQL 中 pg_stat_database 視圖的 tup_re
PostgreSQL的pg_stat_database視圖中的tup_returned字段統(tǒng)計(jì)了數(shù)據(jù)庫中所有查詢返回的行數(shù),是數(shù)據(jù)庫級別的累計(jì)值,它反映了數(shù)據(jù)庫的負(fù)載和查詢效率,本文介紹PostgreSQL中pg_stat_database視圖的tup_returned字段的含義,感興趣的朋友一起看看吧2025-12-12
UAT環(huán)境PostgreSQL ON CONFLICT DO UPDATE報(bào)錯問
這篇文章主要介紹了UAT環(huán)境PostgreSQL ON CONFLICT DO UPDATE報(bào)錯問題及解決過程,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2026-04-04
postgresql 賦權(quán)語句 grant的正確使用說明
這篇文章主要介紹了postgresql 賦權(quán)語句 grant的正確使用說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
Ubuntu中安裝PostgreSQL步驟及常規(guī)操作指南
PostgreSQL是一款很受歡迎的開源關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),擴(kuò)展性強(qiáng),處理大量數(shù)據(jù)時(shí)效率很高,這篇文章主要介紹了Ubuntu中安裝PostgreSQL步驟及常規(guī)操作的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-09-09
Postgresql中json和jsonb類型區(qū)別解析
在我們的業(yè)務(wù)開發(fā)中,可能會因?yàn)樘厥狻練v史,偷懶,防止表連接】經(jīng)常會有JSON或者JSONArray類的數(shù)據(jù)存儲到某列中,這個(gè)時(shí)候再PG數(shù)據(jù)庫中有兩種數(shù)據(jù)格式可以直接一對多或者一對一的映射對象,接下來通過本文介紹Postgresql中json和jsonb類型區(qū)別,需要的朋友可以參考下2024-06-06

