首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 修改預設密碼過期天數:從 180 天改為永不過期 (UNLIMITED)

     編輯:Oracle 資料庫相關知識

Oracle 11g 起預設 Profile DEFAULT 將 PASSWORD_LIFE_TIME 設為 180 天,導致用戶定期被強制修改密碼或帳戶鎖定 (ORA-28001)。本文提供查詢、修改、驗證完整步驟,修改即時生效無需重啟。

操作步驟

1. 確認用戶使用的 Profile

SELECT USERNAME, PROFILE FROM DBA_USERS;
-- 多數用戶為 DEFAULT

2. 查看當前密碼有效期設定

SELECT * FROM DBA_PROFILES
WHERE PROFILE = 'DEFAULT' AND RESOURCE_NAME = 'PASSWORD_LIFE_TIME';
-- 預設結果:LIMIT = 180 (天)

3. 修改為永不過期 (UNLIMITED)

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
-- Profile altered.

4. 驗證修改結果

SELECT * FROM DBA_PROFILES
WHERE PROFILE = 'DEFAULT' AND RESOURCE_NAME = 'PASSWORD_LIFE_TIME';
-- 結果:LIMIT = UNLIMITED

立即生效說明

  • 無需重啟資料庫,Profile 參數修改對新會話即時生效
  • 已過期帳戶需手動解鎖:ALTER USER username ACCOUNT UNLOCK;
  • 若用戶使用非 DEFAULT Profile,請針對該 Profile 修改

延伸:其他常見密碼參數建議值

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 避免干擾。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved