PostgreSQL修改用戶密碼的多種方式
PostgreSQL 修改用戶密碼
PostgreSQL 提供了多種方式來修改用戶密碼,以下是全面的密碼修改方法和注意事項(xiàng):
一 基本密碼修改方法
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ì)提示輸入新密碼兩次
二 不同環(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';
四 特殊場(chǎng)景處理
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_%';
五 安全最佳實(shí)踐
密碼復(fù)雜度:
- 至少12個(gè)字符
- 包含大小寫字母、數(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
七 故障排除
常見錯(cuò)誤及解決
權(quán)限不足:
ERROR: must be superuser to alter superusers
解決方案:使用postgres用戶或具有CREATEROLE權(quán)限的用戶執(zhí)行
密碼包含特殊字符:
-- 密碼包含單引號(hào)時(shí) ALTER USER test WITH PASSWORD $$don't_use_this$$;
連接問題:
- 修改密碼后記得更新應(yīng)用連接配置
- 檢查pg_hba.conf的認(rèn)證方法是否匹配
到此這篇關(guān)于PostgreSQL修改用戶密碼的多種方式的文章就介紹到這了,更多相關(guān)PostgreSQL修改密碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PostgreSQL中調(diào)用存儲(chǔ)過程并返回?cái)?shù)據(jù)集實(shí)例
這篇文章主要介紹了PostgreSQL中調(diào)用存儲(chǔ)過程并返回?cái)?shù)據(jù)集實(shí)例,本文給出一創(chuàng)建數(shù)據(jù)表、插入測(cè)試數(shù)據(jù)、創(chuàng)建存儲(chǔ)過程、調(diào)用創(chuàng)建存儲(chǔ)過程和運(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ì)很多語法進(jìn)行了擴(kuò)展,可以用于實(shí)現(xiàn)一些特殊的功能,今天我們就來介紹一下 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-12如何在PostgreSQL中創(chuàng)建只讀權(quán)限和讀寫權(quán)限的賬號(hào)
一個(gè)良好的賬號(hào)管理策略對(duì)于數(shù)據(jù)庫(kù)的安全和數(shù)據(jù)的完整性至關(guān)重要,通過為不同的用戶設(shè)置適當(dāng)?shù)臋?quán)限,可以確保他們只能訪問他們需要的數(shù)據(jù),并防止對(duì)敏感數(shù)據(jù)的意外或惡意訪問,本文介紹在 PostgreSQL中創(chuàng)建只讀權(quán)限和讀寫權(quán)限的賬號(hào)的步驟和方法,感興趣的朋友一起看看吧2023-08-08PostgreSQL數(shù)據(jù)庫(kù)中跨庫(kù)訪問解決方案
這篇文章主要介紹了PostgreSQL數(shù)據(jù)庫(kù)中跨庫(kù)訪問解決方案,需要的朋友可以參考下2017-05-05