1. 密碼過期時就得修改密碼 , 否則該帳號將無法使用:

    ALTER USER "使用者名稱" IDENTIFIED BY "新密碼" REPLACE "舊密碼"

  2. 查詢 Default user profile 的密碼期限: (預設是 180 天)
    SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

  3. 查詢 user 是哪一種 profile: (預設應該都是 default)
    SELECT username,PROFILE FROM dba_users;

  4. 修改 default user profile 密碼過期的時間 (這邊改為無限制: UNLIMITED)
    ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

注意:

  • 按照 第4點 的修改 user profile 會降低帳號的安全性, 因為原本預設是 180 天密碼到期, 期至便須修改密碼, 改無限制意思是永遠不會過期. (所以我只用在開發用的機器上, 產品或客戶的資料庫不要用)

參考資料:

  1. Oracle 11g密碼過期問題 ORA-28002

  2. Oracle 11g存在密碼過期問題