2016年5月10日火曜日

[Oracle]ユーザのパスワードを強制的に有効期限切れにする

ユーザのパスワードを有効期限切れにすることで、次回のログイン時にパスワードの変更を強制できるようになる。

パスワードを有効期限切れにするには、alter userを使用するのでALTER USERシステム権限を持っているユーザで行う必要がある。

下のalter userでhrユーザのパスワードを有効期限切れに出来る。
alter user hr password expire;

アカウントの状態確認

dba_usersのaccount_statusカラムを見ることで、ユーザの状態を確認できる。
パスワードを有効期限切れに変更したHRユーザのステータスが、「EXPIRED」になっていることが確認出来る。
  1* select username, account_status from dba_users where username = 'HR'

USERNAME                       ACCOUNT_STATUS
------------------------------ --------------------------------
HR                             EXPIRED

有効期限切れ状態でのログイン

以下のように、パスワードの有効期限切れであることが表示され、パスワードの変更が強制される。
08:16:41 SQL> conn hr/password
ERROR:
ORA-28001: the password has expired


hrに対するパスワードを変更しています。
新規パスワード:
新規パスワードを再入力してください:
パスワードが変更されました。
接続されました。