首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 11g 密碼過期與帳號鎖定雙重防護:DEFAULT PROFILE 參數調優與解鎖實操

     編輯:Oracle 資料庫基礎

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,密碼策略均強制生效

解決方案:修改 DEFAULT PROFILE 為無限制

-- 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;

生產環境建議

  • 建立專用 Profile(如 APP_PROFILE)設定 UNLIMITED,業務用戶綁定該 Profile,保留 DEFAULT 作為審計基線
  • 配合 PASSWORD_VERIFY_FUNCTION 實施複雜度檢查,平衡安全與可用性
  • 納入巡檢腳本:定期掃描 DBA_USERS.ACCOUNT_STATUS 非 OPEN 狀態,告警推送
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved