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

Oracle 密碼有效期修改實戰:從 DEFAULT 配置文件到無限期的完整步驟

     編輯:Oracle 資料庫基礎

問題背景

Oracle 11g+ 默認配置文件 DEFAULT 設定 PASSWORD_LIFE_TIME = 180 天,導致應用賬號定期鎖定 (ORA-28001/ORA-28002),影響業務連續性。

三步解決流程

1. 確認用戶使用的 Profile

SELECT username, profile FROM dba_users WHERE username = 'APP_USER';
-- 典型輸出:APP_USER | DEFAULT

2. 查看當前密碼策略

SELECT resource_name, limit
FROM   dba_profiles
WHERE  profile = 'DEFAULT'
AND    resource_name IN ('PASSWORD_LIFE_TIME','PASSWORD_GRACE_TIME',
                         'PASSWORD_REUSE_TIME','PASSWORD_REUSE_MAX',
                         'FAILED_LOGIN_ATTEMPTS','PASSWORD_LOCK_TIME');

關鍵輸出:PASSWORD_LIFE_TIME = 180。

3. 修改為無限期 (立即生效,無需重啟)

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

驗證:

SELECT limit FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
-- 輸出 UNLIMITED

進階:創建專用 Profile 避免影響 SYS/SYSTEM

-- 創建應用專用配置文件
CREATE PROFILE app_profile LIMIT
  PASSWORD_LIFE_TIME UNLIMITED
  PASSWORD_GRACE_TIME 7
  FAILED_LOGIN_ATTEMPTS 10
  PASSWORD_LOCK_TIME 1/24  -- 1 小時
  PASSWORD_REUSE_TIME UNLIMITED
  PASSWORD_REUSE_MAX UNLIMITED;

-- 分配給應用用戶
ALTER USER app_user PROFILE app_profile;

補救:已過期/鎖定賬號解鎖

-- 1. 解鎖
ALTER USER app_user ACCOUNT UNLOCK;

-- 2. 重置密碼 (可保持原密碼)
ALTER USER app_user IDENTIFIED BY original_password;

-- 3. 或使用密碼驗證函數放行
-- 注意:12c+ 密碼大小寫敏感 (SEC_CASE_SENSITIVE_LOGON)

安全合規提示

  • 生產環境建議不設無限期,改為 365 天 + 7 天寬限期,配合密碼複雜度函數。
  • 審計要求:定期 SELECT * FROM dba_users WHERE expiry_date < SYSDATE+30 預警即將過期賬號。
  • 12c+ 可用 PASSWORD_ROLLOVER_TIME 實現密碼平滑輪換 (雙密碼並存期)。

一鍵巡檢腳本

SET LINES 200 PAGES 100
COL username FORMAT A30
COL profile FORMAT A20
COL expiry_date FORMAT A20
SELECT username, profile,
       TO_CHAR(expiry_date,'YYYY-MM-DD') expiry_date,
       account_status
FROM   dba_users
WHERE  profile = 'DEFAULT'
AND    account_status IN ('OPEN','EXPIRED','EXPIRED(GRACE)','LOCKED(TIMED)')
ORDER BY expiry_date;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved