Oracle 11g 預設啟用密碼生命週期管理,預設 PASSWORD_LIFE_TIME = 180 天。登入時出現 ORA-28002: the password will expire within 7 days 即表示密碼即將過期。
-- 1. 查看使用者對應的 Profile
SELECT username, profile FROM dba_users WHERE username = 'WANG';
-- 2. 查看 Profile 密碼參數
SELECT * FROM dba_profiles
WHERE profile = 'DEFAULT' AND resource_name = 'PASSWORD_LIFE_TIME';
| 方案 | SQL | 適用場景 |
|---|---|---|
| 延長至 1 年 | ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME 365; |
需保留過期機制但延長週期 |
| 設為無限制(推薦) | ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; |
生產環境避免頻繁維護 |
| 單一使用者立即修改密碼 | ALTER USER wang IDENTIFIED BY newpass; |
臨時處理,不影響全域策略 |
PASSWORD_GRACE_TIME(寬限期)等參數。-- 再次查詢確認
SELECT * FROM dba_profiles
WHERE profile = 'DEFAULT' AND resource_name = 'PASSWORD_LIFE_TIME';
一條 ALTER PROFILE 指令即可徹底解決 ORA-28002 困擾。