パスワードポリシープロファイルを作成し、ユーザーに割り当て
Oracleセキュリティコマンド
-- Hardened profile for application/human users:
CREATE PROFILE app_user_prf LIMIT
FAILED_LOGIN_ATTEMPTS 5
PASSWORD_LOCK_TIME 1/24 -- 1 hour lock
PASSWORD_LIFE_TIME 90
PASSWORD_GRACE_TIME 7
PASSWORD_REUSE_TIME 365
PASSWORD_REUSE_MAX 10
INACTIVE_ACCOUNT_TIME 60 -- accounts unused for 60 days are locked
PASSWORD_VERIFY_FUNCTION ora12c_strong_verify_function;
-- Service accounts: password never expires, gradual password rollover enabled:
CREATE PROFILE service_account_prf LIMIT
FAILED_LOGIN_ATTEMPTS UNLIMITED
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_ROLLOVER_TIME 1; -- old and new password both valid for 1 day
ALTER USER customer_app PROFILE app_user_prf;
-- Check:
SELECT username, profile, account_status,
TO_CHAR(expiry_date,'YYYY-MM-DD') AS expiry_date, lock_date
FROM dba_users
WHERE profile IN ('APP_USER_PRF', 'SERVICE_ACCOUNT_PRF');
SELECT profile, resource_name, limit
FROM dba_profiles
WHERE profile = 'APP_USER_PRF' AND resource_type = 'PASSWORD'
ORDER BY resource_name;概要
プロファイルは、ログイン失敗時のロック、パスワードの有効期間、再利用、複雑度(検証関数)、非アクティブアカウントのロックの各ルールをユーザーグループに適用する。PASSWORD_ROLLOVER_TIMEを使用すると、サービスアカウントのパスワード変更中もアプリケーションは停止なしで切り替えられる。
使用する場面
セキュリティ監査/CISベンチマークの要件、新しいアプリケーションユーザーの作成時、DEFAULTプロファイルの緩い値をユーザーグループごとに分離するために。
注意
追加ライセンス不要。サービスアカウントにFAILED_LOGIN_ATTEMPTSの制限があると、誤ったパスワードを持つ1台のアプリケーションサーバーがアカウントをロックし、本番停止を引き起こす可能性がある。アプリケーションアカウントのPASSWORD_LIFE_TIMEは予期しないEXPIRED状態を引き起こす場合がある。検証関数はSYSの下に存在する必要がある(ない場合は@?/rdbms/admin/utlpwdmg.sql。このスクリプトはDEFAULTプロファイルも変更する)。プロファイルを変更しても既存のパスワードは再検証されない。