Oracle 11g 默認 DEFAULT Profile 設定 PASSWORD_LIFE_TIME=180 天、FAILED_LOGIN_ATTEMPTS=10 次,導致生產業務周期性中斷。本文提供參數永久關閉、已過期/鎖定帳號批量解鎖、驗證腳本全套方案。
ORA-28002: the password will expire within ... days → 連接失敗ORA-28000: the account is locked → 連接失敗RESOURCE_LIMIT 參數無論 TRUE/FALSE,密碼策略均強制生效-- 1. 查看用戶 Profile
SELECT username, profile FROM dba_users;
-- 2. 確認當前限制
SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name IN ('PASSWORD_LIFE_TIME','FAILED_LOGIN_ATTEMPTS');
-- 3. 永久關閉限制(立即生效,無需重啟)
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;
-- 4. 驗證修改結果
SELECT * FROM dba_profiles WHERE profile='DEFAULT';
-- 期望輸出:LIMIT 列顯示 UNLIMITED
| 狀態 | 處理命令 | 說明 |
|---|---|---|
| 已過期(ORA-28002) | ALTER USER scott IDENTIFIED BY tiger; | 重設原密碼即可,無需新密碼 |
| 已鎖定(ORA-28000) | ALTER USER scott ACCOUNT UNLOCK; | 或 ALTER USER scott IDENTIFIED BY tiger ACCOUNT UNLOCK; |
APP_PROFILE)設定 UNLIMITED,業務用戶綁定該 Profile,保留 DEFAULT 作為審計基線PASSWORD_VERIFY_FUNCTION 實施複雜度檢查,平衡安全與可用性DBA_USERS.ACCOUNT_STATUS 非 OPEN 狀態,告警推送