Oracle 11g 起預設 Profile DEFAULT 將 PASSWORD_LIFE_TIME 設為 180 天,導致用戶定期被強制修改密碼或帳戶鎖定 (ORA-28001)。本文提供查詢、修改、驗證完整步驟,修改即時生效無需重啟。
SELECT USERNAME, PROFILE FROM DBA_USERS;
-- 多數用戶為 DEFAULT
SELECT * FROM DBA_PROFILES
WHERE PROFILE = 'DEFAULT' AND RESOURCE_NAME = 'PASSWORD_LIFE_TIME';
-- 預設結果:LIMIT = 180 (天)
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
-- Profile altered.
SELECT * FROM DBA_PROFILES
WHERE PROFILE = 'DEFAULT' AND RESOURCE_NAME = 'PASSWORD_LIFE_TIME';
-- 結果:LIMIT = UNLIMITED
ALTER USER username ACCOUNT UNLOCK;ALTER PROFILE DEFAULT LIMIT
PASSWORD_REUSE_TIME UNLIMITED -- 允許重複使用舊密碼
PASSWORD_REUSE_MAX UNLIMITED
PASSWORD_LOCK_TIME 1 -- 鎖定 1 天自動解鎖
PASSWORD_GRACE_TIME 7 -- 寬限期 7 天
FAILED_LOGIN_ATTEMPTS 10 -- 連續失敗 10 次鎖定
PASSWORD_VERIFY_FUNCTION NULL; -- 關閉複雜度驗證函數 (視安全策略)
SELECT USERNAME, ACCOUNT_STATUS, EXPIRY_DATE, PROFILE
FROM DBA_USERS
WHERE ACCOUNT_STATUS != 'OPEN';
安全提醒:生產環境建議配合密碼複雜度函數、定期審計,而非單純設為 UNLIMITED。開發/測試環境可直接設為 UNLIMITED 避免干擾。