7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Autonomous AI Database:DBユーザのパスワードをAzure Key Vault(キーコンテナー)で管理する

7
Last updated at Posted at 2026-04-22

はじめに

Autonomous AI Databaseで、シークレット・ベースのパスワード認証を使用したデータベース・ユーザーの作成が可能になったので検証してみました。

今回は、Azure Key Vault(キーコンテナー)内のシークレットを使用しました。

Azure Key Vault以外に、以下のようなボールトがサポートされます。
・Oracle Cloud Infrastructure Vault
・AWS Secrets Manager
・Google Cloud Secret Manager

注意
こちらの記事の内容はあくまで個人のメモ的な内容のため、こちらの内容を利用した場合のトラブルには一切責任を負いません。
また、こちらの記事の内容を元にしたOracleサポートへの問い合わせはご遠慮ください。

1. Azure Key Vaultのキーコンテナーの作成

Azure Key Vaultのキーコンテナーを作成します。
ここでは、「AzureKeyContainer4ADB」という名前のキーコンテナーを作成しました。

スクリーンショット 2026-04-22 14.39.13.png

2. シークレットの作成

作成したキーコンテナー「AzureKeyContainer4ADB」内に、シークレットを作成します。
ここでは、「AzureSecret4ADB」という名前のシークレットを作成しました。
スクリーンショット 2026-04-22 14.39.34.png

また、シークレッ値にDemo#1Demo#1を入力しました。
このシークレット値に入力した値が、データベース・ユーザーのパスワードになります。

3. Azureサービス・プリンシパルの有効化

Autonomous AI Databaseにadminユーザとして接続します。

user@cloudshell:~ (ap-tokyo-1)$ sqlplus admin@ADB

SQL*Plus: Release 21.0.0.0.0 - Production on Wed Apr 22 06:43:57 2026
Version 21.21.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.

Enter password: 
Last Successful login time: Wed Apr 22 2026 05:44:51 +00:00

Connected to:
Oracle AI Database 26ai Enterprise Edition Release 23.26.2.1.0 - Production
Version 23.26.2.1.0

SQL> 

DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTHプロシージャを使用して、Azureサービス・プリンシパルを有効化します。

BEGIN
    DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH(
        provider => 'AZURE',
        username => 'admin',
        params   => JSON_OBJECT('azure_tenantid' value 'AzureのテナントID')
    );
END;
/
SQL> BEGIN
  2      DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH(
  3          provider => 'AZURE',
  4          username => 'admin',
  5          params   => JSON_OBJECT('azure_tenantid' value 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')
  6      );
  7  END;
  8  /

PL/SQL procedure successfully completed.

SQL> 

cloud_integrationsビューから、Azureサービス・プリンシパルに関する情報を取得します。

SELECT param_name, param_value FROM cloud_integrations
WHERE param_name LIKE 'azure%';
SQL> set linesize 200
SQL> col param_name for a20
SQL> col param_value for a175
SQL> SELECT param_name, param_value FROM cloud_integrations
  2  WHERE param_name LIKE 'azure%';

PARAM_NAME           PARAM_VALUE
-------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
azure_app_name       ADBS_APP_OCID1.AUTONOMOUSDATABASE.OC1.AP-TOKYO-1.ANXHILJROLWNN3YAKJMEZIWTQ4M3Q6ZJWG3UD3QEKIFS7OLGSQFCNZQU5NOA
azure_consent_url    https://login.microsoftonline.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/oauth2/v2.0/authorize?client_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&response_type=code&scope=User.read
azure_tenantid       xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

SQL*Plusを終了して、接続を切断します。

SQL> exit
Disconnected from Oracle AI Database 26ai Enterprise Edition Release 23.26.2.1.0 - Production
Version 23.26.2.1.0
user@cloudshell:~ (ap-tokyo-1)$ 

4. Azureアプリケーション同意の提供

3.で取得したazure_consent_urlのURLにブラウザからアクセスし、「Accept」をクリックします。

スクリーンショット 2026-04-22 11.11.39.png

Entra IDのエンタープライズ・アプリケーションにAutonomous AI Databaseが登録されていることを確認します。

スクリーンショット 2026-04-22 15.28.02.png

5. Autonomous AI Databaseに対するロールの割当て

キーコンテナーの「アクセス制御(IAM)」に移動し、「+追加」→「ロールの割り当ての追加」をクリックします。

スクリーンショット 2026-04-22 15.30.58.png

ロールのタブで「キー コンテナー シークレットユーザー」を選択します。

スクリーンショット 2026-04-22 14.48.59.png

メンバーにAutonomous AI Databaseを追加します。

スクリーンショット 2026-04-22 14.49.23.png

「次へ」をクリックします。

スクリーンショット 2026-04-22 14.49.37.png

「レビューと割り当て」をクリックして、ロールの割り当てを追加します。

スクリーンショット 2026-04-22 14.49.54.png

「アクセスの確認」をクリックして、Autonomous AI Databaseに「キー コンテナー シークレットユーザー」が割り当てられていることを確認します。
スクリーンショット 2026-04-22 15.38.00.png

6. Azure Key Vaultを使用したVault Secretクレデンシャルの作成

Autonomous AI Databaseにadminユーザとして接続します。

user@cloudshell:~ (ap-tokyo-1)$ sqlplus admin@ADB

SQL*Plus: Release 21.0.0.0.0 - Production on Wed Apr 22 06:43:57 2026
Version 21.21.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.

Enter password: 
Last Successful login time: Wed Apr 22 2026 05:44:51 +00:00

Connected to:
Oracle AI Database 26ai Enterprise Edition Release 23.26.2.1.0 - Production
Version 23.26.2.1.0

SQL> 

DBMS_CLOUD.CREATE_CREDENTIALプロシージャを使用して、Vault Secretクレデンシャルを作成します。

ここでは、データベース・ユーザー「dbuser」の作成に使用する「AZURE_KEYVAULT_CREDENTIAL」という名前のVault Secretクレデンシャルを作成しました。

BEGIN
    DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name  => 'vault_credential_name',
        params  => JSON_OBJECT( 
                       'username'          value 'DBユーザ名',
                       'secret_id'         value 'シークレット名',
                       'azure_vault_name'  value 'キーコンテナ名' )
    );
END;
/
SQL> BEGIN
  2      DBMS_CLOUD.CREATE_CREDENTIAL(
  3          credential_name  => 'AZURE_KEYVAULT_CREDENTIAL',
  4          params  => JSON_OBJECT( 
  5                         'username'          value 'dbuser',
  6                         'secret_id'         value 'AzureSecret4ADB',
  7                         'azure_vault_name'  value 'AzureKeyContainer4ADB' )
  8      );
  9  END;
 10  /

PL/SQL procedure successfully completed.

SQL> 

7. データベース・ユーザーの作成

6.で作成したVault Secretクレデンシャルを使用して、データベース・ユーザー「dbuser」を作成します。

CREATE USER database_username IDENTIFIED BY CREDENTIAL "credential_schema"."vault_credential_name";
SQL> CREATE USER dbuser IDENTIFIED BY CREDENTIAL ADMIN.AZURE_KEYVAULT_CREDENTIAL;

User created.

SQL>

データベース・ユーザー「dbuser」に、DWROLEロールを付与します。

GRANT DWROLE TO database_username;
SQL> GRANT DWROLE TO dbuser;

Grant succeeded.

SQL>

SQL*Plusを終了して、接続を切断します。

SQL> exit
Disconnected from Oracle AI Database 26ai Enterprise Edition Release 23.26.2.1.0 - Production
Version 23.26.2.1.0
user@cloudshell:~ (ap-tokyo-1)$ 

8. 動作確認

2.で作成したシークレット「AzureSecret4ADB」のシークレット値に入力した値(ここではDemo#1Demo#1)をパスワードに指定して、dbuserとしてAutonomous AI Databaseに接続してみます。

user@cloudshell:~ (ap-tokyo-1)$ sqlplus dbuser/Demo#1Demo#1@ADB

SQL*Plus: Release 21.0.0.0.0 - Production on Wed Apr 22 07:00:52 2026
Version 21.21.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.

Last Successful login time: Wed Apr 22 2026 07:00:19 +00:00

Connected to:
Oracle AI Database 26ai Enterprise Edition Release 23.26.2.1.0 - Production
Version 23.26.2.1.0

SQL> 

キーコンテナー「AzureKeyContainer4ADB」内のシークレット「AzureSecret4ADB」のシークレット値を使用して、dbuserとしてAutonomous AI データベースに接続することができました。

なお、シークレットの新しいバージョンを作成してローテーションを行った場合は、以下のSQLを実行して、パスワードが新しいシークレットを参照するようにする必要があります。

ALTER USER database_username IDENTIFIED BY CREDENTIAL "credential_schema"."credential_name";

この例では、以下のSQLになります。

ALTER USER dbuser IDENTIFIED BY CREDENTIAL ADMIN.AZURE_KEYVAULT_CREDENTIAL;

参考情報

Azureサービス・プリンシパルを使用したAzureリソースへのアクセス
Create Users with Secret-Based Password Authentication
Use Vault Secret Credential with Azure Key Vault

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?