はじめに
Autonomous AI Databaseで、シークレット・ベースのパスワード認証を使用したデータベース・ユーザーの作成が可能になったので検証してみました。
今回は、Google Cloud Secret Managerのシークレットを使用しました。
Google Cloud Secret Manager以外に、以下のようなボールトがサポートされます。
・Oracle Cloud Infrastructure Vault
・Azure Key Vault
・AWS Secrets Manager
注意
こちらの記事の内容はあくまで個人のメモ的な内容のため、こちらの内容を利用した場合のトラブルには一切責任を負いません。
また、こちらの記事の内容を元にしたOracleサポートへの問い合わせはご遠慮ください。
1. Google Cloud Secret Manager シークレットの作成
Google Cloudコンソールからシークレットを作成します。
シークレット名:MySecret
シークレットの値:Demo#1Demo#1
2. Google Service Accountの有効化
Autonomous AI Databaseにadminユーザとして接続します。
user@mymac ~ % sqlplus admin@adb
SQL*Plus: Release 23.0.0.0.0 - Production on Thu Apr 23 11:37:24 2026
Version 23.3.0.23.09
Copyright (c) 1982, 2023, Oracle. All rights reserved.
Enter password:
Last Successful login time: Tue Apr 14 2026 14:54:01 +09: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プロシージャを使用して、Googleサービス・アカウントを有効化します。
BEGIN
DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH( provider => 'gcp' );
END;
/
SQL> BEGIN
2 DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH( provider => 'gcp' );
3 END;
4 /
PL/SQL procedure successfully completed.
SQL>
以下のSQLで、Autonomous AI DatabaseのGoogleサービス・アカウントを確認します。
SELECT * FROM cloud_integrations WHERE param_name = 'gcp_service_account';
SQL> set linesize 150
SQL> col param_name for a20
SQL> col param_value for a75
SQL> SELECT * FROM cloud_integrations WHERE param_name = 'gcp_service_account';
PARAM_NAME PARAM_VALUE
-------------------- ---------------------------------------------------------------------------
gcp_service_account GCP-SA-42098-60526@gcp-pa-project1.iam.gserviceaccount.com
SQL>
PARAM_VALUEの値がAutonomous AI Databaseのサービス・アカウントです。
3. Autonomous AI Databaseに対するロールの割当て
Google Cloudコンソールのシークレットの詳細画面で「権限」タブに移動し、「アクセスを許可」をクリックします。
「新しいプリンシパル」に2.で取得したAutonomous AI Databaseのサービス・アカウントを追加し、「Secret Managerのシークレット アクセサー」を割り当てます。
Autonomous AI Databaseに、このシークレットに対する「Secret Managerのシークレット アクセサー」ロールが割り当てられました。
4. Google Cloud Secret Managerを使用したVault Secretクレデンシャルの作成
DBMS_CLOUD.CREATE_CREDENTIALプロシージャを使用して、Vault Secretクレデンシャルを作成します。
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'クレデンシャル名',
params => JSON_OBJECT(
'username' value 'DBユーザ名',
'secret_id' value 'シークレット名',
'gcp_project_id' value 'Google CloudのプロジェクトID')
);
END;
/
ここでは、「GOOGLECLOUD_SECRET_CREDENTIAL」という名前のクレデンシャルを作成します。
SQL> BEGIN
2 DBMS_CLOUD.CREATE_CREDENTIAL(
3 credential_name => 'GOOGLECLOUD_SECRET_CREDENTIAL',
4 params => JSON_OBJECT(
5 'username' value 'dbuser',
6 'secret_id' value 'MySecret',
7 'gcp_project_id' value 'xxxxx-xxxxx-xxxxxx')
8 );
9 END;
10 /
PL/SQL procedure successfully completed.
SQL>
5. データベース・ユーザーの作成
4.で作成したVault Secretクレデンシャルを使用して、データベース・ユーザー「dbuser」を作成します。
CREATE USER database_username IDENTIFIED BY CREDENTIAL "credential_schema"."vault_credential_name";
SQL> CREATE USER dbuser IDENTIFIED BY CREDENTIAL ADMIN.GOOGLECLOUD_SECRET_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@mymac ~ %
6. 動作確認
1.で作成したシークレット「MySecret」の「シークレットの値」に入力した値(ここではDemo#1Demo#1)をパスワードに指定して、dbuserとしてAutonomous AI Databaseに接続してみます。
user@mymac ~ % sqlplus dbuser/Demo#1Demo#1@adb
SQL*Plus: Release 23.0.0.0.0 - Production on Thu Apr 23 12:22:30 2026
Version 23.3.0.23.09
Copyright (c) 1982, 2023, Oracle. All rights reserved.
Connected to:
Oracle AI Database 26ai Enterprise Edition Release 23.26.2.1.0 - Production
Version 23.26.2.1.0
SQL>
Google Cloud Secret Managerのシークレット「MySecret」のシークレットの値をパスワードに使用して、dbuserとしてAutonomous AI データベースに接続することができました。
なお、シークレットの新しいバージョンを作成してローテーションを行った場合は、以下のSQLを実行して、パスワードが新しいシークレットを参照するようにする必要があります。
ALTER USER database_username IDENTIFIED BY CREDENTIAL "credential_schema"."credential_name";
この例では、以下のSQLになります。
ALTER USER dbuser IDENTIFIED BY CREDENTIAL ADMIN.GOOGLECLOUD_SECRET_CREDENTIAL;
参考情報
・Googleサービス・アカウントを使用したGoogle Cloud Platformリソースへのアクセス
・Create Users with Secret-Based Password Authentication
・Use Vault Secret Credential with GCP Secret Manager





