PostgreSQL修改用戶密碼的多種方式
PostgreSQL 修改用戶密碼
PostgreSQL 提供了多種方式來修改用戶密碼,以下是全面的密碼修改方法和注意事項:
一 基本密碼修改方法
1.1 使用 ALTER USER 命令(推薦)
-- 修改當(dāng)前用戶密碼 ALTER USER current_user WITH PASSWORD 'new_password'; -- 修改指定用戶密碼(需要權(quán)限) ALTER USER username WITH PASSWORD 'new_password';
1.2 使用 psql 的 \password 命令
psql -U username -d database \password username # 會提示輸入新密碼兩次
二 不同環(huán)境下的密碼修改
2.1 本地修改(有管理員權(quán)限)
-- 以postgres用戶登錄后 sudo -u postgres psql ALTER USER dbuser WITH PASSWORD 'new_secure_pass123';
2.2 遠(yuǎn)程修改(通過psql連接)
psql -h 192.xxx.xxx.99 -U postgres -d postgres # 輸入當(dāng)前密碼后執(zhí)行: ALTER USER app_user WITH PASSWORD 'new_pass!456';
三 密碼策略控制
3.1 密碼有效期設(shè)置
-- 設(shè)置密碼有效期 ALTER USER username VALID UNTIL '2025-12-31'; -- 使密碼永不過期 ALTER USER username VALID UNTIL 'infinity';
3.2 密碼復(fù)雜度要求(需安裝擴(kuò)展)
CREATE EXTENSION pgcrypto; ALTER USER username WITH ENCRYPTED PASSWORD 'Complex@Pass123';
四 特殊場景處理
4.1 忘記postgres用戶密碼
解決方法:
- 停止PostgreSQL服務(wù)
- 編輯pg_hba.conf,將認(rèn)證方法改為trust:
local all postgres trust
- 重新加載配置
- 無需密碼登錄并修改密碼
- 恢復(fù)pg_hba.conf設(shè)置
4.2 批量修改用戶密碼
-- 生成批量修改語句
SELECT 'ALTER USER '||usename||' WITH PASSWORD '''||
substr(md5(random()::text), 0, 10)||''';'
FROM pg_user
WHERE usename NOT LIKE 'pg_%';
五 安全最佳實踐
密碼復(fù)雜度:
- 至少12個字符
- 包含大小寫字母、數(shù)字和特殊字符
- 避免使用字典單詞
密碼存儲:
- PostgreSQL默認(rèn)使用scram-sha-256加密
- 確保pg_hba.conf使用安全認(rèn)證方法
定期輪換:
-- 檢查密碼最后修改時間(需pg_shadow權(quán)限) SELECT usename, passwd FROM pg_shadow;
六 密碼加密方式
PostgreSQL支持多種密碼加密算法:
| 加密方式 | 命令示例 | 安全性 |
|---|---|---|
| scram-sha-256 | ALTER USER...WITH PASSWORD 'pwd' | 高(默認(rèn)) |
| md5 | ALTER USER...WITH ENCRYPTED PASSWORD 'pwd' | 中(兼容舊版) |
| plaintext | ALTER USER...WITH UNENCRYPTED PASSWORD 'pwd' | 低(不推薦) |
設(shè)置默認(rèn)加密方式(postgresql.conf):
password_encryption = scram-sha-256
七 故障排除
常見錯誤及解決
權(quán)限不足:
ERROR: must be superuser to alter superusers
解決方案:使用postgres用戶或具有CREATEROLE權(quán)限的用戶執(zhí)行
密碼包含特殊字符:
-- 密碼包含單引號時 ALTER USER test WITH PASSWORD $$don't_use_this$$;
連接問題:
- 修改密碼后記得更新應(yīng)用連接配置
- 檢查pg_hba.conf的認(rèn)證方法是否匹配
到此這篇關(guān)于PostgreSQL修改用戶密碼的多種方式的文章就介紹到這了,更多相關(guān)PostgreSQL修改密碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在postgresql數(shù)據(jù)庫中判斷是否是數(shù)字和日期時間格式函數(shù)操作
這篇文章主要介紹了在postgresql數(shù)據(jù)庫中判斷是否是數(shù)字和日期時間格式函數(shù)的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12
postgresql連續(xù)歸檔及時間點恢復(fù)的操作
這篇文章主要介紹了postgresql連續(xù)歸檔及時間點恢復(fù)的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
PostgreSQL登陸方式(本地和遠(yuǎn)程)的實現(xiàn)
本次分享一下PostgreSQL 的登陸方式,包括本地登錄和遠(yuǎn)程登錄,文中通過圖文示例介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-11-11
Postgresql排序與limit組合場景性能極限優(yōu)化詳解
這篇文章主要介紹了Postgresql排序與limit組合場景性能極限優(yōu)化詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12
PostgreSQL中pg_surgery的擴(kuò)展使用
pg_surgery是PostgreSQL的高風(fēng)險擴(kuò)展,用于修復(fù)表、索引及事務(wù)ID回卷等極端數(shù)據(jù)庫問題,需謹(jǐn)慎操作,做好備份,僅由經(jīng)驗豐富的數(shù)據(jù)庫管理員在別無選擇的情況下使用2025-06-06
PostgreSQL數(shù)據(jù)庫備份的幾種實現(xiàn)方法
本文主要介紹了PostgreSQL數(shù)據(jù)庫備份的幾種實現(xiàn)方法,包括pg_dump和pg_dumpall是PostgreSQL備份工具,前者備份單數(shù)據(jù)庫,后者備份整個集群,感興趣的可以了解一下2025-06-06
詳解如何優(yōu)化在PostgreSQL中對于日期范圍的查詢
在 PostgreSQL 中,處理日期范圍的查詢是常見的操作,然而,如果不進(jìn)行適當(dāng)?shù)膬?yōu)化,這些查詢可能會導(dǎo)致性能問題,特別是在處理大型數(shù)據(jù)集時,本文章將詳細(xì)討論如何優(yōu)化在 PostgreSQL 中對于日期范圍的查詢,需要的朋友可以參考下2024-07-07

