DBAtlas · データベース運用アトラス

パスワードポリシープロファイルを作成し、ユーザーに割り当て

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プロファイルも変更する)。プロファイルを変更しても既存のパスワードは再検証されない。

DBAtlas で開く →

関連項目