はじめに
「ORA-28001:パスワードが期限切れです。」がOracle Database 21c XEにて発生した場合の対応方法を紹介します。
手順
前提としてsystemユーザの接続情報が必要です。
① 管理者権限による接続
管理者権限を利用してDBに接続します。Oracle 19cではPDBごとにユーザを作成するため、パスワード切れになっているユーザが所属しているPDBを指定する必要があります。
sqlplus system/<password>@<host_name>/<pdb_name> as sysdba
実行例:
C:\>sqlplus system/passw0rd@localhost/xepdb1 as sysdba
② アカウント状況の確認
以下のSQLを実行して、アカウントの状況を確認します。
SELECT USERNAME, ACCOUNT_STATUS FROM DBA_USERS WHERE USERNAME = '<username>';
ACCOUNT_STATUSがEXPIREDの場合、パスワードが有効期限切れを起こしています。
USERNAME | ACCOUNT_STATUS |
---|---|
username | EXPIRED |
③ (任意) パスワードの有効期限の変更
必要な場合、パスワードの有効期限を変更します。
-- パスワードの有効期限を無制限にする場合
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
-- パスワードの有効期限を300日にする場合
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME 300;
④ パスワードの変更
以下のSQLを実行して、パスワードの有効期限を変更します。
ALTER USER <username> IDENTIFIED BY <new_password>;
実行例:
ALTER USER testuser IDENTIFIED BY passw0rd;
⑤ アカウント状況の確認
以下のSQLを実行して、アカウントの状況を確認します。
SELECT USERNAME, ACCOUNT_STATUS FROM DBA_USERS WHERE USERNAME = '<username>';
ACCOUNT_STATUSがOPENの場合、パスワードの有効期限切れは解消しています。
USERNAME | ACCOUNT_STATUS |
---|---|
username | OPEN |
環境情報
SELECT * FROM V$VERSION;
BANNER | BANNER_FULL | BANNER_LEGACY | CON_ID |
---|---|---|---|
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production | Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production Version 21.3.0.0.0 |
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production | 0 |