作業ノート

様々なまとめ、雑感など

Oracleユーザの有効期限を変更する

会社の開発環境でOracle 12cのDBを構築し、その確認時に作成したユーザに有効期限がついていた。

意識的にそのような設定をした憶えはなく、期限が過ぎて無効になると困るので、設定の確認と無制限にする対応を行った。以下はその手順。

1. sysdbaでログインする

Oracleのサーバにsshでログインし、sqlplusコマンドでsysdbaとしてログインする。

$ sqlplus /nolog

SQL> conn / as sysdba
接続されました。

2. 有効期限に関する設定を確認する

ユーザの有効期限はユーザプロファイルに設定があるので、今の設定内容を確認する。

SQL> set linesize 200
SQL> set tab off
SQL> col profile format a32
SQL> col limit format a32

SQL> select * from dba_profiles where resource_name = 'PASSWORD_LIFE_TIME';

PROFILE                          RESOURCE_NAME                    RESOURCE LIMIT                            COM
-------------------------------- -------------------------------- -------- -------------------------------- ---
DEFAULT                          PASSWORD_LIFE_TIME               PASSWORD 180                              NO

対象の有効期限は180日。

3. 有効期限を無期限にする

alter profileでdefaultプロファイルの有効期限を無期限に変更する。

SQL> alter profile default limit password_life_time unlimited;

プロファイルが変更されました。

変更後、先ほどのSQLを再実行すると、設定が無期限に変更されたことが確認できる。

SQL> select * from dba_profiles where resource_name = 'PASSWORD_LIFE_TIME';

PROFILE                          RESOURCE_NAME                    RESOURCE LIMIT                            COM
-------------------------------- -------------------------------- -------- -------------------------------- ---
DEFAULT                          PASSWORD_LIFE_TIME               PASSWORD UNLIMITED                        NO

参考