Oracle Databaseでは、ユーザーアカウントのセキュリティを強化するためにパスワードポリシーを設定できます。これにより、パスワードの有効期限や複雑さ、履歴の保持数などを制御可能です。
本記事では、パスワードポリシーの設定方法と各種パラメータの意味、カスタマイズ例について紹介します。
プロファイル(PROFILE)とは
Oracleでは、ユーザーごとにPROFILE
を適用し、その中でパスワード制御のルールを設定できます。初期状態では全ユーザーに「DEFAULT」プロファイルが適用されています。
SELECT username, profile FROM dba_users;
このコマンドで、各ユーザーに割り当てられているプロファイルを確認できます。
パスワードポリシーのカスタマイズ方法
プロファイルの設定はCREATE PROFILE
またはALTER PROFILE
で行います。
パラメータ一覧
- FAILED_LOGIN_ATTEMPTS:ログイン失敗回数の上限
- PASSWORD_LIFE_TIME:パスワードの有効期限(日数)
- PASSWORD_REUSE_TIME:以前のパスワードを再使用できるまでの日数
- PASSWORD_REUSE_MAX:以前のパスワードを再使用できるまでの変更回数
- PASSWORD_VERIFY_FUNCTION:複雑さをチェックする関数
例:パスワードルールを厳格にする設定
ALTER PROFILE DEFAULT LIMIT
FAILED_LOGIN_ATTEMPTS 5
PASSWORD_LIFE_TIME 90
PASSWORD_REUSE_TIME 365
PASSWORD_REUSE_MAX UNLIMITED
PASSWORD_VERIFY_FUNCTION verify_function;
この例では、90日ごとの変更、1年間は再使用禁止、5回ログイン失敗でロックという厳しめの設定になっています。
PASSWORD_VERIFY_FUNCTIONの使い方
PASSWORD_VERIFY_FUNCTION
には、PL/SQLで記述した検証関数を指定できます。標準ではverify_function
というサンプル関数が用意されています。
SELECT name FROM dba_profiles WHERE resource_name = 'PASSWORD_VERIFY_FUNCTION';
カスタム関数を作成することで、独自ルール(大文字・小文字・数字・記号の使用など)を組み込むことも可能です。
プロファイルの作成とユーザーへの適用
既存のDEFAULTプロファイルを変更せずに、新しいプロファイルを作って割り当てることもできます。
CREATE PROFILE secure_profile LIMIT
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LIFE_TIME 60
PASSWORD_VERIFY_FUNCTION verify_function;
ALTER USER sample_user PROFILE secure_profile;
これにより、特定のユーザーだけに異なるルールを適用できます。
パスワードの期限切れを確認する方法
ユーザーのパスワード期限切れ日を確認するには、以下のSQLを使用します。
SELECT username, expiry_date FROM dba_users WHERE account_status = 'OPEN';
期限が迫っているユーザーに通知を出す運用も可能です。
まとめ
Oracleではプロファイル機能を使って、パスワードの有効期限・複雑さ・再利用の制限などを柔軟に制御できます。セキュリティを強化しながら、開発や検証環境に応じたカスタマイズも可能です。
運用ルールに合わせてプロファイルを分け、ログ監視や期限管理と併用することで、より安全なデータベース運用が実現できます。