パスワード管理

※ポイント※
     プロファイルを使用したパスワード管理が対象。
     そのほかサーバリソース制限など、プロファイルで何ができるかを理解しておく。
     
 パスワード管理 

Oracleサーバでは、プロファイルを使用することで、定期的なパスワード変更を促したりパスワードの複雑さを保証したりできる。
サーバリソース制限を行う場合は、RESOURCE_LIMIT初期化パラメータをTRUEにする必要があるが、パスワード管理ではその必要はない。

プロファイルに指定するパスワード管理用のキーワードには、次のものがある。
・ パスワードの有効期間に関するもの 

有効期間 PASSWORD_LIFE_TIME
パスワードが失効するまでの有効期間(日数)
期限切れ後の猶予日数 PASSWORD_GRACE_TIME
有効期間超過後の猶予期間(日数)。猶予期間も超過するとアカウントはロックされる

パスワードが失効すると、ログイン時にパスワードの変更を促すプロンプトが表示される。

猶予期間中は下記のように、セッションを確立するたびにメッセージが表示される。

SQL> conn scott/tiger
ERROR:
ORA-28002: the password will expire within 10 days


・ パスワードの履歴に関するもの 

再利用に必要な日数 PASSWORD_REUSE_TIME
パスワードを再使用できるようになるまでの期間(日数)
再利用に必要な変更回数 PASSWORD_REUSE_MAX
パスワードを再使用できるようになるまでに必要なパスワードの変更回数

以前のパスワードを再び使用するには、PASSWORD_REUSE_TIMEとPASSWORD_REUSE_MAXの両方を満たす必要がある。
例えばPASSWORD_REUSE_TIMEに30、PASSWORD_REUSE_MAXに3が設定されている場合は、
パスワードを3回変更し、かつ1 回目の変更から30日経過していれば、最初のパスワードが使用できる。


・ パスワードの複雑さに関するもの 

複雑なパスワード検証のための関数 PASSWORD_VERIFY_FUNCTION
パスワード変更時に、パスワードの複雑さをチェックするファンクション

パスワードの検証ファンクションはSYSユーザーが所有し、TRUEまたはFALSEを戻す必要がある。
$ORACLE_HOME/rdbms /admin/utlpwdmg.sqlを使用すると、
デフォルトのパスワード検証ファンクションを作成し、DEFAULTプロファイルに設定することができる。
デフォルトのパスワード検証ファンクションでは、パスワードに対して次の検証が行われる。

* 4文字以上であること
* ユーザー名と異なること
* アルファベット、数字、特殊文字がそれぞれ1文字以上使用されていること
* 前回のパスワードから3文字以上変更されていること

SQL> ALTER USER scott IDENTIFIED BY scott REPLACE tiger;
ALTER USER scott IDENTIFIED BY scott REPLACE tiger
*
行1でエラーが発生しました。:
ORA-28003: 指定されたパスワードのパスワード照合に失敗しました。
ORA-20001: Password same as or similar to user

上記は、ユーザー名と同じパスワードに変更しようとしてエラーになった例である。

ALTER USER権限を持たないユーザーでも自分のパスワードは変更可能だが、
パスワード検証ファンクションが有効になっている場合、REPLACE句にて古いパスワードを指定する必要がある。


・ ログインの失敗に関するもの 

ロックされるまでの
ログイン試行失敗回数
FAILED_LOGIN_ATTEMPTS
アカウントがロックされるまでのログイン失敗回数
指定回数失敗後、ロックされる日数 PASSWORD_LOCK_TIME
ログイン失敗回数を超過後のアカウントがロックされた状態になる期間(日数)

アカウントがロックされると、セッションを確立することはできない。
アカウントロックは、PASSWORD_LOCK_TIMEを経過後に解除されるが、
ALTER USER … ACCOUNT UNLOCKコマンドを使用して解除することもできる。

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License