DBMS_CLOUD_FUNCTION_ADMINパッケージ
DBMS_CLOUD_FUNCTION_ADMINパッケージでは、Autonomous AI Databaseインスタンスからの汎用スクリプトの起動、およびデータベース・ツールでの外部認証のためのアイデンティティ・プロバイダの登録がサポートされています。
DBMS_CLOUD_FUNCTION_ADMINサブプログラムの要約
この表は、DBMS_CLOUD_FUNCTION_ADMINパッケージに含まれるサブプログラムの概要を示しています。
| サブプログラム | 摘要 |
|---|---|
| DEREGISTER_REMOTE_EXECUTION_ENVプロシージャ | このプロシージャは、以前に登録されたエンドポイントを削除します。 |
| GRANT_REMOTE_EXECUTION_ENVプロシージャ | このプロシージャを使用すると、ADMINユーザーは、登録済エンドポイントの権限をADMIN以外のユーザーに付与できます。 |
| REGISTER_REMOTE_EXECUTION_ENVプロシージャ | このプロシージャは、リモート・エンドポイント環境を登録します。 |
| REVOKE_REMOTE_EXECUTION_ENVプロシージャ | このプロシージャを使用すると、ADMINユーザーは、ADMIN以外のユーザーから登録済エンドポイントの権限を取り消すことができます。 |
| CREATE_IDPプロシージャ | このプロシージャにより、ADMINユーザーは外部認証用の新しいアイデンティティ・プロバイダを作成できます。この手順は、OCI IAMアイデンティティ・プロバイダ登録には使用されません。 |
| UPDATE_IDPプロシージャ | このプロシージャにより、ADMINユーザーは、idp_idで識別される既存のアイデンティティ・プロバイダ・エントリを更新できます。 |
| DELETE_IDPプロシージャ | このプロシージャにより、ADMINユーザーはデータベースからアイデンティティ・プロバイダ登録を削除できます。 |
DEREGISTER_REMOTE_EXECUTION_ENVプロシージャ
このプロシージャは、以前に登録されたエンドポイントを削除します。
構文
DBMS_CLOUD_FUNCTION_ADMIN.DEREGISTER_REMOTE_EXECUTION_ENV(
remote_endpoint_name IN VARCHAR2
);パラメータ
| パラメータ | 摘要 |
|---|---|
remote_endpoint_name |
削除するリモート・エンドポイントを指定します。 このパラメータは必須です。 |
例
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.DEREGISTER_REMOTE_EXECUTION_ENV(
remote_endpoint_name => 'REM_EXECUTABLE');
END;
/使用上のノート
- このプロシージャを実行するには、
ADMINユーザーとしてログインする必要があります。
GRANT_REMOTE_EXECUTION_ENVプロシージャ
このプロシージャを使用すると、ADMINユーザーは、登録済エンドポイントの権限をADMIN以外のユーザーに付与できます。
構文
DBMS_CLOUD_FUNCTION_ADMIN.GRANT_REMOTE_EXECUTION_ENV(
remote_endpoint_name IN VARCHAR2,
user_name IN VARCHAR2
);パラメータ
| パラメータ | 摘要 |
|---|---|
remote_endpoint_name |
登録されているリモート・エンドポイント名を指定します。 このパラメータは必須です。 |
user_name |
ユーザー名を指定します。 このパラメータは必須です。 |
例
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.GRANT_REMOTE_EXECUTION_ENV(
remote_endpoint_name => 'REM_EXECUTABLE',
user_name => '<username>');
END;
/使用上のノート
- このプロシージャを実行するには、
ADMINユーザーとしてログインする必要があります。
REGISTER_REMOTE_EXECUTION_ENVプロシージャ
このプロシージャは、リモート・エンドポイントを登録します。
構文
DBMS_CLOUD_FUNCTION_ADMIN.REGISTER_REMOTE_EXECUTION_ENV(
remote_endpoint_name IN VARCHAR2,
remote_endpoint_url IN CLOB,
wallet_dir IN VARCHAR2,
remote_cert_dn IN CLOB
);パラメータ
| パラメータ | 摘要 |
|---|---|
remote_endpoint_name |
登録するリモート・エンドポイントを指定します。 このパラメータは必須です。 |
remote_endpoint_url |
ライブラリのリモート位置を指定します。 パラメータは、 たとえば: このパラメータは必須です。 |
wallet_dir |
自己署名ウォレットが格納されるディレクトリを指定します。 このパラメータは必須です。 |
remote_cert_dn |
サーバー証明書識別名(DN)を指定します。 このパラメータは必須です。 |
例
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.REGISTER_REMOTE_EXECUTION_ENV(
remote_endpoint_name => 'REM_EXECUTABLE',
remote_endpoint_url => 'remote_hostname:16000',
wallet_dir => 'WALLET_DIR',
remote_cert_dn => 'CN=VM Hostname');
END;
/使用上のノート
- このプロシージャを実行するには、
ADMINユーザーとしてログインする必要があります。
REVOKE_REMOTE_EXECUTION_ENVプロシージャ
このプロシージャを使用すると、ADMINユーザーは、ADMIN以外のユーザーから登録済エンドポイントの権限を取り消すことができます。
構文
DBMS_CLOUD_FUNCTION_ADMIN.REVOKE_REMOTE_EXECUTION_ENV(
remote_endpoint_name IN VARCHAR2,
user_name IN VARCHAR2
);パラメータ
| パラメータ | 摘要 |
|---|---|
remote_endpoint_name |
登録されているリモート・エンドポイント名を指定します。 このパラメータは必須です。 |
user_name |
ユーザー名を指定します。 このパラメータは必須です。 |
例
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.REVOKE_REMOTE_EXECUTION_ENV(
remote_endpoint_name => 'REM_EXECUTABLE',
user_name => '<username>');
END;
/使用上のノート
- このプロシージャを実行するには、
ADMINユーザーとしてログインする必要があります。
CREATE_IDPプロシージャ
このプロシージャは、Autonomous AI Databaseに外部アイデンティティ・プロバイダ(IDP)を登録します。この手順は、OCI IAMアイデンティティ・プロバイダ情報の登録には使用されません。
構文
DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP(
idp_name IN VARCHAR2,
client_id IN VARCHAR2,
client_secret IN VARCHAR2,
params IN JSON
);パラメータ
| パラメータ | 摘要 |
|---|---|
idp_name |
アイデンティティ・プロバイダ登録の一意の名前を指定します。このパラメータは必須です。 |
client_id |
アイデンティティ・プロバイダに登録されたアプリケーションからのクライアント識別子を指定します。このパラメータは必須です。 |
client_secret |
登録されたアプリケーションのクライアント・シークレットを指定します。このパラメータは必須です。 |
params |
アイデンティティ・プロバイダ構成値を含むJSONオブジェクトを指定します。このパラメータは必須です。 |
サポートされているJSONパラメータ
| パラメータ | 摘要 |
|---|---|
discovery_url |
認証メタデータの取得に使用されるOpenID Connect検出エンドポイント。 Microsoft Entra IDの場合: https://login.microsoftonline.com/<tenant-id>/v2.0/.well-known/openid-configurationOCI IAMでは、この手順で CREATE_IDP登録またはdiscovery_url値は必要ありません。 |
例: Microsoft Entra IDの登録
この例では、テナント固有のOpenID Connect検出URLを使用して、Microsoft Entra IDを外部アイデンティティ・プロバイダとして登録する方法を示します。
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP(
idp_name => 'AZURE_AD',
client_id => '<client-id>',
client_secret => '<client-secret>',
params => JSON_OBJECT(
'discovery_url' VALUE
'https://login.microsoftonline.com/<tenant-id>/v2.0/.well-known/openid-configuration'));
END;
/例: AWS Cognitoの登録
この例は、Amazon Cognito OpenID Connect検出URLを使用して、AWS Cognitoを外部IDプロバイダとして登録する方法を示しています。
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP(
idp_name => 'AWS',
client_id => '<client-id>',
client_secret => '<client-secret>',
params => JSON_OBJECT(
'discovery_url' VALUE
'https://cognito-idp.<region>.amazonaws.com/<user-pool-id>/.well-known/openid-configuration'
));
END;
/例: Google Cloud Platform (GCP)の登録
この例では、Google OpenID Connect検出URLを使用して、Google Cloudを外部アイデンティティ・プロバイダとして登録する方法を示します。
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP(
idp_name => 'GCP',
client_id => '<client-id>',
client_secret => '<client-secret>',
params => JSON_OBJECT(
'discovery_url' VALUE
'https://accounts.google.com/.well-known/openid-configuration'
));
END;
/例: Oktaの登録
この例では、Okta認可サーバーのOpenID Connect検出URLを使用して、Oktaを外部アイデンティティ・プロバイダとして登録する方法を示します。
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP(
idp_name => 'OKTA',
client_id => '<client-id>',
client_secret => '<client-secret>',
params => JSON_OBJECT(
'discovery_url' VALUE
'https://<okta-domain>/oauth2/default/.well-known/openid-configuration'
));
END;
/登録を更新または置換する必要がないかぎり、データベースに対してアイデンティティ・プロバイダを1回登録する必要があります。
| プロバイダ | CREATE_IDPは必須ですか。 |
検出URLパターン |
|---|---|---|
| OCI IAM | いいえ | 該当なし。OCI IAMは、DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATIONで有効になっており、CREATE_IDPを使用しません。 |
| Microsoft Entra ID(Azure) | はい | https://login.microsoftonline.com/<tenant-id>/v2.0/.well-known/openid-configuration |
| AWSコグニート | はい | https://cognito-idp.<region>.amazonaws.com/<user-pool-id>/.well-known/openid-configuration |
| Google Cloud Platform (GCP) | はい | https://accounts.google.com/.well-known/openid-configuration |
| Okta | はい | 組織サーバー: https://<okta-domain>/.well-known/openid-configurationデフォルト/カスタム・サーバー: https://<okta-domain>/oauth2/<authorization-server-id>/.well-known/openid-configuration |
UPDATE_IDPプロシージャ
このプロシージャは、既存のアイデンティティ・プロバイダ登録を変更します。クライアント資格証明、アイデンティティ・プロバイダ・メタデータ、またはその両方を更新できます。
構文
DBMS_CLOUD_FUNCTION_ADMIN.UPDATE_IDP(
idp_id IN VARCHAR2,
client_id IN VARCHAR2 DEFAULT NULL,
client_secret IN VARCHAR2 DEFAULT NULL,
params IN JSON DEFAULT NULL
);パラメータ
| パラメータ | 摘要 |
|---|---|
idp_id |
更新するアイデンティティ・プロバイダ登録の一意の識別子を指定します。 |
client_id |
更新されたクライアント識別子を指定します。このパラメータはオプション。 |
client_secret |
更新されたクライアント・シークレットを指定します。このパラメータはオプション。 |
params |
更新されたJSON構成パラメータを指定します。このパラメータはオプション。 |
例
この例では、既存のアイデンティティ・プロバイダ登録のクライアント資格証明およびOpenID Connect検出URLを更新する方法を示します。
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.UPDATE_IDP(
idp_id => '<idp-id>',
client_id => '<client-id>',
client_secret => '<client-secret>',
params => JSON_OBJECT(
'discovery_url' VALUE
'https://login.microsoftonline.com/<tenant-id>/v2.0/.well-known/openid-configuration'));
END;
/使用上のノート
client_idを指定する場合は、client_secretも指定する必要があります。client_secretを指定する場合は、client_idも指定する必要があります。idp_id値は、アイデンティティ・プロバイダの作成時に返されます。- 省略されたパラメータは、その現在の値を保持します。
- アイデンティティ・プロバイダを更新しても、外部認証用に構成された既存のデータベース・ユーザーには影響しません。
DELETE_IDPプロシージャ
このプロシージャは、登録済アイデンティティ・プロバイダをデータベースから削除します。
構文
DBMS_CLOUD_FUNCTION_ADMIN.DELETE_IDP(
idp_id IN VARCHAR2
);パラメータ
| パラメータ | 摘要 |
|---|---|
idp_id |
削除するアイデンティティ・プロバイダ登録の一意の識別子を指定します。このパラメータは必須です。 |
例
この例では、idp_idを使用して既存のアイデンティティ・プロバイダ登録を削除する方法を示します。
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.DELETE_IDP(
idp_id => 'AZURE-ID');
END;
/使用上のノート
- アイデンティティ・プロバイダを削除すると、データベース・ツールで外部認証に使用される登録情報が削除されます。
- アイデンティティ・プロバイダを削除する前に、認証のためにアプリケーションまたはユーザーがその登録に依存していないことを確認してください。
- 従来のデータベース認証用に構成されたユーザーは、アイデンティティ・プロバイダ登録の削除後も、データベースのユーザー名とパスワードで引き続き認証できます。
DBA_LIST_IDPビュー
DBA_LIST_IDPビューには、Autonomous AI Databaseで外部認証に登録されたアイデンティティ・プロバイダが表示されます。このビューを使用して、データベース・ツールおよび外部認証フローで使用されるアイデンティティ・プロバイダ名、クライアント識別子およびOpenID Connect検出メタデータをレビューします。
カラム
| カラム | 摘要 |
|---|---|
idp_id |
登録済アイデンティティ・プロバイダの一意の識別子。この値は、アイデンティティ・プロバイダの登録時に生成されます。 |
idp_name |
アイデンティティ・プロバイダの名前。たとえば、AZURE_ADは、Microsoft Entra IDをアイデンティティ・プロバイダとして識別します。 |
client_id |
アイデンティティ・プロバイダに登録されたアプリケーションのクライアント識別子。データベース・ツールは、外部認証のためにユーザーをリダイレクトするときにこの値を使用します。 |
params |
アイデンティティ・プロバイダ構成パラメータを格納するJSONオブジェクト。discovery_urlパラメータは、アイデンティティ・プロバイダのOpenID Connect検出エンドポイントを識別します。 |
PARAMS JSON属性
| 属性 | 摘要 |
|---|---|
discovery_url |
アイデンティティ・プロバイダのOpenID Connect検出URL。検出URLは、認可エンドポイント、トークン・エンドポイント、発行者、署名キーなどのメタデータを返します。Microsoft Entra IDの場合、このURLはテナント固有の.well-known/openid-configurationエンドポイントを使用します。 |
例
この例では、登録済アイデンティティ・プロバイダの選択された列をリストします。
SELECT idp_id,
idp_name,
client_id,
params
FROM dba_list_idp;サンプル出力:
IDP_ID IDP_NAME CLIENT_ID PARAMS
---------- ---------- ---------------------- ------------------------------------------------------------
AZURE-ID AZURE_AD 5691bae2-XXX-YYY-ZZZ {"discovery_url":"https://login.microsoftonline.com/XXXX-YYYY-ZZZ-KKK-/v2.0/.well-known/openid-configuration"}この例では、以下のようになります。
-
AZURE-IDは、生成されたアイデンティティ・プロバイダ識別子です。 -
AZURE_ADは、登録済アイデンティティ・プロバイダ名です。 -
CLIENT_IDは、Microsoft Entra IDのアプリケーション・クライアントIDです。 -
PARAMS値には、Entra IDテナントのOpenID Connect構成の検索に使用されるdiscovery_urlが含まれます。