ノート:

Oracle Cloud Infrastructure上のOracle Databaseでの段階的パスワード・ロールオーバーの設定

イントロダクション

段階的パスワード・ロールオーバーは、Oracle Databaseの機能で、現在古いパスワードを使用しているアプリケーションを中断することなく、データベース・ユーザーのパスワードを変更できます。段階的なパスワード・ロールオーバーでは、古いパスワードは指定した期間有効なままであり、その後は受け入れられなくなり、ユーザーに対して2つの異なるパスワードが一時的に許可されます。これにより、停止時間なしで新しいパスワードをすべてのクライアント・アプリケーションに伝播できます。パスワード・ロールオーバー期間は、パスワードが変更された時点から始まります。

段階的なパスワード・ロールオーバー機能は、ユーザー・セッションに適用されるユーザー・プロファイル・パスワード・リソース設定(パスワード・リソース制限)PASSWORD_ROLLOVER_TIMEとして公開されます。Oracle Databaseのユーザー・プロファイルは、データベース・リソース(ユーザー・レベル構成)に対する一連の制限です。ユーザー・プロファイルは、各データベース・ユーザーによって使用されるリソースの量の規制に役立ちます。データベースは、DEFAULTというデフォルト・プロファイルで作成されます。このプロファイルは、特に指定されていない場合は、データベースのすべてのユーザーに割り当てられます。デフォルト・プロファイルを使用するか、新しいプロファイルを作成してパスワード・リソース制限を追加できます。

このチュートリアルでは、PASSWORD_ROLLOVER_TIMEのみに焦点を当て、Oracle Autonomous Transaction Processing (ATP)データベース・サービスでこの機能を使用するためのステップバイステップ・ガイドを参照してください。この目的のために、OCIコンソールのOracle SQL Developer Webツールを使用します。

パスワード・ロールオーバー機能を使用する前に知っておくべきことは他にもあります。

目的

前提条件

タスク1: ATPのデフォルト・プロファイルの確認

ATPには、デフォルトのプロファイルとPASSWORD_ROLLOVER_TIMEリソースの値が表示されます。

Oracle SQL Developer Webツールを開き、次のSQL問合せを実行して、DEFAULTプロファイルの制限を確認します。

select * from dba_profiles where profile = 'DEFAULT';

問合せ結果を示すイメージ。

次のイメージでは、DEFAULTプロファイルに多数のリソースがあり、PASSWORD_ROLLOVER_TIMEの制限(値)が0であることがわかります。これは、DEFAULTプロファイルに対して段階的なパスワード・ロールオーバーが無効になっていることを意味します。DEFAULTプロファイル内のリソースの制限は変更できますが、この機能を示す新しいプロファイルを作成します。

タスク2: 新規ユーザー・プロファイルの作成

FAILED_LOGIN_ATTEMPTSが10に設定され、PASSWORD_ROLLOVER_TIME制限が1時間(1/24日)に設定されたプロファイルを作成します。

  1. 次のSQL問合せを実行して、PW_ROLLOVER_TIME_1HR_PROFという名前のプロファイルを作成します。

    create profile PW_ROLLOVER_TIME_1HR_PROF limit FAILED_LOGIN_ATTEMPTS 10 PASSWORD_ROLLOVER_TIME 1/24;
    

    問合せ結果を示すイメージ。

  2. 次のSQL問合せを実行して、PASSWORD_ROLLOVER_TIMEの制限を確認します。

    select * from dba_profiles where profile = 'PW_ROLLOVER_TIME_1HR_PROF';
    

    問合せ結果を示すイメージ。

    PASSWORD_ROLLOVER_TIMEのリソース制限は0.416 (1/24日)で、失敗したログイン試行は10に設定されます。

タスク3: ユーザー・アカウントの作成

ユーザー・アカウントを作成し、作成したプロファイルPW_ROLLOVER_TIME_1HR_PROFをユーザーに割り当てます。

  1. 次のSQL問合せを実行して、db_testというユーザーを作成します。

    create user db_test identified by "Pass_Rollover@2023" profile = 'PW_ROLLOVER_TIME_1HR_PROF';
    

    問合せ結果を示すイメージ。

    次のコマンドを使用して、既存のユーザーをプロファイルに添付することもできます。

    alter user <user_name> profile <profile_name>;
    
  2. 次のSQL問合せを実行して、データベース接続をテストするためのCREATE SESSION権限を付与します。

    GRANT CREATE SESSION TO DB_TEST;
    

    問合せ結果を示すイメージ。

  3. 次のSQL問合せを使用して、アカウント・ステータスを確認します。

    select user_name, profile, account_status from dba_users where user_name = 'DB_TEST';
    

    問合せ結果を示すイメージ。

タスク4: ユーザー・パスワードの変更

ユーザー・パスワードを変更し、アカウント・ステータスを表示します。

  1. ユーザー・パスワードを変更するには、次のSQL問合せを実行します。

    alter user DB_TEST identified by "New_Pass@2023";
    
  2. アカウント・ステータスを確認します。

    問合せ結果を示すイメージ。

    アカウント・ステータスにIN ROLLOVERが表示されるようになりました。これは、DB_TESTユーザー・アカウントが現在ロールオーバー中であり、古いパスワードと新しいパスワードの両方を使用してユーザーに1時間接続できることを意味します。1時間経過すると、古いパスワードは受け入れられなくなり、新しいパスワードのみを使用して接続を確立できます。

タスク5: ロールオーバー期間の強制失効

パスワード・ロールオーバー機能を使用すると、古いパスワードを残りのロールオーバー期間に対して有効にしない場合に、ロールオーバーを強制的に期限切れにできます。

  1. 次のSQL問合せを実行して、ユーザーのパスワード・ロールオーバーを期限切れにします。

    alter user DB_TEST expire password rollover period;
    

    問合せ結果を示すイメージ。

  2. アカウント・ステータスを確認します。

    問合せ結果を示すイメージ。

    アカウントのステータスがOPENに変更され、古いパスワードを使用してデータベースに接続できなくなりました。そのため、新しいパスワードと古いパスワードの両方などのユーザーがロールオーバー中の場合、DBA_USERS表のアカウント・ステータスはOPEN & IN ROLLOVERで、ロールオーバー期間が終了するとアカウント・ステータスはOPENに変わります。

承認

その他の学習リソース

docs.oracle.com/learnの他のラボをご覧いただくか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。

製品ドキュメントは、Oracle Help Centerを参照してください。