PostgreSQL修改用戶(hù)密碼的多種方式
PostgreSQL 修改用戶(hù)密碼
PostgreSQL 提供了多種方式來(lái)修改用戶(hù)密碼,以下是全面的密碼修改方法和注意事項(xiàng):
一 基本密碼修改方法
1.1 使用 ALTER USER 命令(推薦)
-- 修改當(dāng)前用戶(hù)密碼 ALTER USER current_user WITH PASSWORD 'new_password'; -- 修改指定用戶(hù)密碼(需要權(quán)限) ALTER USER username WITH PASSWORD 'new_password';
1.2 使用 psql 的 \password 命令
psql -U username -d database \password username # 會(huì)提示輸入新密碼兩次
二 不同環(huán)境下的密碼修改
2.1 本地修改(有管理員權(quán)限)
-- 以postgres用戶(hù)登錄后 sudo -u postgres psql ALTER USER dbuser WITH PASSWORD 'new_secure_pass123';
2.2 遠(yuǎn)程修改(通過(guò)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'; -- 使密碼永不過(guò)期 ALTER USER username VALID UNTIL 'infinity';
3.2 密碼復(fù)雜度要求(需安裝擴(kuò)展)
CREATE EXTENSION pgcrypto; ALTER USER username WITH ENCRYPTED PASSWORD 'Complex@Pass123';
四 特殊場(chǎng)景處理
4.1 忘記postgres用戶(hù)密碼
解決方法:
- 停止PostgreSQL服務(wù)
- 編輯pg_hba.conf,將認(rèn)證方法改為trust:
local all postgres trust
- 重新加載配置
- 無(wú)需密碼登錄并修改密碼
- 恢復(fù)pg_hba.conf設(shè)置
4.2 批量修改用戶(hù)密碼
-- 生成批量修改語(yǔ)句 SELECT 'ALTER USER '||usename||' WITH PASSWORD '''|| substr(md5(random()::text), 0, 10)||''';' FROM pg_user WHERE usename NOT LIKE 'pg_%';
五 安全最佳實(shí)踐
密碼復(fù)雜度:
- 至少12個(gè)字符
- 包含大小寫(xiě)字母、數(shù)字和特殊字符
- 避免使用字典單詞
密碼存儲(chǔ):
- PostgreSQL默認(rèn)使用scram-sha-256加密
- 確保pg_hba.conf使用安全認(rèn)證方法
定期輪換:
-- 檢查密碼最后修改時(shí)間(需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
七 故障排除
常見(jiàn)錯(cuò)誤及解決
權(quán)限不足:
ERROR: must be superuser to alter superusers
解決方案:使用postgres用戶(hù)或具有CREATEROLE權(quán)限的用戶(hù)執(zhí)行
密碼包含特殊字符:
-- 密碼包含單引號(hào)時(shí) ALTER USER test WITH PASSWORD $$don't_use_this$$;
連接問(wèn)題:
- 修改密碼后記得更新應(yīng)用連接配置
- 檢查pg_hba.conf的認(rèn)證方法是否匹配
到此這篇關(guān)于PostgreSQL修改用戶(hù)密碼的多種方式的文章就介紹到這了,更多相關(guān)PostgreSQL修改密碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PostgreSQL中調(diào)用存儲(chǔ)過(guò)程并返回?cái)?shù)據(jù)集實(shí)例
這篇文章主要介紹了PostgreSQL中調(diào)用存儲(chǔ)過(guò)程并返回?cái)?shù)據(jù)集實(shí)例,本文給出一創(chuàng)建數(shù)據(jù)表、插入測(cè)試數(shù)據(jù)、創(chuàng)建存儲(chǔ)過(guò)程、調(diào)用創(chuàng)建存儲(chǔ)過(guò)程和運(yùn)行效果完整例子,需要的朋友可以參考下2015-01-01PostgreSQL 重復(fù)數(shù)據(jù)處理的操作方法
這篇文章主要介紹了PostgreSQL 重復(fù)數(shù)據(jù)處理的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12PostgreSQL數(shù)據(jù)庫(kù)中DISTINCT關(guān)鍵字的四種用法詳解
PostgreSQL 不但高度兼容 SQL 標(biāo)準(zhǔn),同時(shí)還對(duì)很多語(yǔ)法進(jìn)行了擴(kuò)展,可以用于實(shí)現(xiàn)一些特殊的功能,今天我們就來(lái)介紹一下 PostgreSQL 數(shù)據(jù)庫(kù)中 DISTINCT 關(guān)鍵字的 4 種不同用法,需要的朋友可以參考下2024-04-04postgresql實(shí)現(xiàn)對(duì)已有數(shù)據(jù)表分區(qū)處理的操作詳解
這篇文章主要為大家詳細(xì)介紹了postgresql實(shí)現(xiàn)對(duì)已有數(shù)據(jù)表分區(qū)處理的操作的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12Postgresql和mysql的區(qū)別及說(shuō)明
這篇文章主要介紹了Postgresql和mysql的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11如何在PostgreSQL中創(chuàng)建只讀權(quán)限和讀寫(xiě)權(quán)限的賬號(hào)
一個(gè)良好的賬號(hào)管理策略對(duì)于數(shù)據(jù)庫(kù)的安全和數(shù)據(jù)的完整性至關(guān)重要,通過(guò)為不同的用戶(hù)設(shè)置適當(dāng)?shù)臋?quán)限,可以確保他們只能訪(fǎng)問(wèn)他們需要的數(shù)據(jù),并防止對(duì)敏感數(shù)據(jù)的意外或惡意訪(fǎng)問(wèn),本文介紹在 PostgreSQL中創(chuàng)建只讀權(quán)限和讀寫(xiě)權(quán)限的賬號(hào)的步驟和方法,感興趣的朋友一起看看吧2023-08-08PostgreSQL數(shù)據(jù)庫(kù)中跨庫(kù)訪(fǎng)問(wèn)解決方案
這篇文章主要介紹了PostgreSQL數(shù)據(jù)庫(kù)中跨庫(kù)訪(fǎng)問(wèn)解決方案,需要的朋友可以參考下2017-05-05