DBMS_CLOUD_ADMINパッケージ
この項では、Autonomous AI Databaseで提供されるDBMS_CLOUD_ADMINサブプログラムについて説明します.
| サブプログラム | 説明 |
|---|---|
| ATTACH_FILE_SYSTEMプロシージャ | このプロシージャは、データベース上のディレクトリにファイル・システムをアタッチします。 |
| CREATE_DATABASE_LINKプロシージャ | このプロシージャは、ターゲット・データベースに対するデータベース・リンクを作成します。別のAutonomous AI Databaseインスタンスへのデータベース・リンク、Autonomous AI DatabaseではないOracle Databaseへのデータベース・リンク、またはOracle管理の異機種間接続を使用したOracle Database以外のデータベースへのデータベース・リンクを作成するオプションがあります。 |
| DETACH_FILE_SYSTEMプロシージャ | このプロシージャは、データベース上のディレクトリからファイル・システムをデタッチします。 |
| DISABLE_EXTERNAL_AUTHENTICATIONプロシージャ | このプロシージャは、Autonomous AI Databaseインスタンスの外部認証を無効にします。 |
| DROP_DATABASE_LINKプロシージャ | このプロシージャは、データベース・リンクを削除します。 |
| ENABLE_EXTERNAL_AUTHENTICATIONプロシージャ | このプロシージャにより、ユーザーは、指定された外部認証スキームを使用してAutonomous AI Databaseにログオンできます。 |
ATTACH_FILE_SYSTEMプロシージャ
このプロシージャは、データベース内のファイル・システムをアタッチします。
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEMプロシージャは、データベースにファイル・システムをアタッチし、ファイル・システムに関する情報をDBA_CLOUD_FILE_SYSTEMSビューに格納します。
構文
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (
file_system_name IN VARCHAR2,
file_system_location IN VARCHAR2,
directory_name IN VARCHAR2,
description IN VARCHAR2 DEFAULT NULL,
params IN CLOB DEFAULT NULL
);
Parameters
| パラメータ | 説明 |
|---|---|
file_system_name |
ファイル・システムの名前を指定します。 このパラメータは必須です。 |
file_system_location |
ファイルシステムのロケーションを指定します。
ノート: FQDNまたはIPアドレスを使用できます。 たとえば:
このパラメータは必須です。 |
directory_name |
添付ファイル・システムのディレクトリ名を指定します。ディレクトリは存在している必要があります。 このパラメータは必須です。 |
description |
(オプション)タスクの説明を提供します。 |
params |
ファイル・システムの追加パラメータを提供するJSON文字列。
デフォルト値: 3 |
例
例: NFSv3ファイル・システムにアタッチします。
BEGIN
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (
file_system_name => 'FSS',
file_system_location => 'myhost.sub000445.myvcn.oraclevcn.com:/results',
directory_name => 'FSS_DIR',
description => 'Source NFS for sales data'
);
END;
/
例: NFSv4ファイル・システムにアタッチします。
BEGIN
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (
file_system_name => 'FSS',
file_system_location => 'myhost.sub000445.myvcn.oraclevcn.com:/results',
directory_name => 'FSS_DIR',
description => 'Source NFS for sales data',
params => JSON_OBJECT('nfs_version' value 4)
);
END;
/
使用上のノート
-
このプロシージャを実行するには、ADMINユーザーとしてログインしているか、
DBMS_CLOUD_ADMINに対するEXECUTE権限を持っている必要があります。 -
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEMを使用してファイル・システムをアタッチするには、データベース内のディレクトリ・オブジェクトに対するWRITE権限が必要です。 -
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEMプロシージャでは、プライベート・エンドポイントが有効になっているデータベースでのみプライベート・ファイル・ストレージ・サービスをアタッチできます。詳細は、OCI File Storageサービスおよび開発システムのデータベースへのアクセスの構成を参照してください。
-
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEMプロシージャは、顧客の仮想クラウド・ネットワーク(VCN)上のネットワーク・ファイル・システムのホスト名を検索します。エラー"ORA-20000: Mounting NFS fails"は、その場所に指定したホスト名が見つからない場合に返されます。 -
Oracle Cloud Infrastructure File Storageで共有にNFSv3を使用
-
Oracle Cloud Infrastructure File Storage以外のシステムにアタッチする場合、この手順ではNFSv3およびNFSv4がサポートされます
-
NFSv3を使用する接続されたNFSサーバーがあり、NFSバージョンがNFSサーバーでNFSv4に更新される場合は、
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEMを実行してからDBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEMを実行する必要があります(nfs_versionを4に設定したparamsパラメータを使用)。これにより、一致プロトコルでNFSがアタッチされ、Autonomous AI DatabaseがNFSv4サーバーにアクセスできるようになります。デタッチしてから再アタッチしないと、NFSサーバーにアクセスできなくなり、"Protocol not supported"などのエラーが表示される場合があります。
CREATE_DATABASE_LINKプロシージャ
このプロシージャは、APIをコールするスキーマ内のターゲット・データベースへのデータベース・リンクを作成します。
オーバーロードされたフォームでは、次のものがサポートされます。
-
gateway_paramsパラメータを使用すると、サポートされている非OracleデータベースへのリンクであるOracle管理の異機種間接続を使用して、データベース・リンクを作成できます。 -
rac_hostnamesパラメータを使用すると、プライベート・エンドポイントのAutonomous AIデータベースからターゲットOracle RACデータベースへのデータベース・リンクを作成できます。この場合、rac_hostnamesパラメータを使用して、ターゲットOracle RACデータベースの1つ以上の個別のノードのホスト名を指定します。
構文
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
db_link_name IN VARCHAR2,
hostname IN VARCHAR2,
port IN NUMBER,
service_name IN VARCHAR2,
ssl_server_cert_dn IN VARCHAR2 DEFAULT,
credential_name IN VARCHAR2 DEFAULT,
directory_name IN VARCHAR2 DEFAULT,
gateway_link IN BOOLEAN DEFAULT,
public_link IN BOOLEAN DEFAULT,
private_target IN BOOLEAN DEFAULT
gateway_params IN CLOB DEFAULT);
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
db_link_name IN VARCHAR2,
rac_hostnames IN CLOB,
port IN NUMBER,
service_name IN VARCHAR2,
ssl_server_cert_dn IN VARCHAR2 DEFAULT,
credential_name IN VARCHAR2 DEFAULT,
directory_name IN VARCHAR2 DEFAULT,
gateway_link IN BOOLEAN DEFAULT,
public_link IN BOOLEAN DEFAULT,
private_target IN BOOLEAN DEFAULT);
Parameters
| パラメータ | 説明 |
|---|---|
db_link_name |
作成するデータベース・リンクの名前。 |
hostname |
ターゲット・データベースのホスト名。
このパラメータまたは
|
rac_hostnames |
ターゲットOracle RACデータベースのホスト名を指定します。この値は、ターゲットOracle RACデータベースのノードに対して1つ以上の個別のホスト名を指定するJSON配列です。JSONで複数のホスト名を" ターゲットがOracle RACデータベースの場合は、
このパラメータまたは
|
port |
ターゲット・データベースへの接続のポートを指定します。
|
service_name |
データベースのリンク先の
|
ssl_server_cert_dn |
サーバー証明書にあるDN値。 Oracle管理の異機種間接続は、一般的な信頼できるルートおよび中間SSL証明書の大部分を含むウォレットで事前構成されています。 Walletを使用しないAutonomous AIデータベース・ターゲットへのパブリック・エンドポイント・リンク: ウォレット(TLS)なしでパブリック・エンドポイント上のAutonomous AI Databaseターゲットに接続するには:
Walletを使用しないプライベート・エンドポイント・リンク: ウォレットなしでプライベート・エンドポイント上のOracle Databaseに接続するには:
|
credential_name |
DBMS_CLOUD.CREATE_CREDENTIALで作成された格納済資格証明の名前。これは、ターゲット・データベースにアクセスするための資格証明です。 |
directory_name |
Oracle管理の異機種間接続は、一般的な信頼できるルートおよび中間SSL証明書の大部分を含むウォレットで事前構成されています。 Walletを使用しないAutonomous AIデータベース・ターゲットへのパブリック・エンドポイント・リンク: ウォレット(TLS)なしでパブリック・エンドポイント上のAutonomous AIデータベースに接続するには:
また、TCPを使用してAutonomous AIデータベースに接続するには、 Walletを使用しないプライベート・エンドポイント・リンク: ウォレットなしでプライベート・エンドポイント上のターゲットOracle Databaseに接続するには:
|
gateway_link |
データベース・リンクが別のOracle DatabaseまたはOracle Database Gatewayのどちらのどちらに対して作成されているのかを示します。
このパラメータのデフォルト値は |
public_link |
データベース・リンクがパブリック・データベース・リンクとして作成されているかどうかを示します。 このパラメータを このパラメータのデフォルト値は |
private_target |
データベース・リンクがVCN DNSサーバーで解決する必要があるホスト名にアクセスする場合は、
このパラメータのデフォルト値は |
gateway_params |
たとえば:
|
使用上のノート
-
gateway_paramsパラメータを指定すると、db_type値によっては、追加のgateway_paramsパラメータがサポートされます。db_type追加の gateway_params値google_analyticsdb_typeがgoogle_analyticsの場合、指定する資格証明はGoogle OAuth資格証明(gcp_oauth2)である必要があります。詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。google_bigquerydb_typeがgoogle_bigqueryの場合、指定する資格証明はGoogle OAuth資格証明である必要があります(gcp_oauth2)詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください)。db_typeがgoogle_bigqueryの場合、パラメータprojectは有効です。このパラメータは、google_bigqueryのプロジェクト名を指定します。これは必須です。Google BigQueryで
SELECTを使用する場合に指定する表名は、引用符で囲む必要があります。たとえば:sql SELECT * FROM "sales"@GOOGLE_BIGQUERY_LINKhivedb_typeがhiveの場合、パラメータhttp_pathは有効です。このパラメータは、必要に応じて、Hiveインスタンスに接続するためのHttpPath値を指定します。salesforcedb_typeがsalesforceの場合、パラメータsecurity_tokenは有効です。セキュリティ・トークンは、大/小文字が区別される英数字コードです。Salesforceにアクセスするには、security_token値を指定する必要があります。たとえば:gateway_params => JSON_OBJECT(
'db_type' value 'salesforce',
'security_token' value 'security_token_value' )詳細は、セキュリティ・トークンのリセットを参照してください。
servicenowServiceNowに接続してデータを取得するには、ゲートウェイ・パラメータ
directory_nameおよびfile_nameを指定する必要があります。これらのパラメータは、JSONレスポンスをリレーショナル・モデルにマップするモデル・ファイル(REST構成ファイル)を指定します。モデル・ファイルは、JSONレスポンスを処理するためのエンドポイント、表マッピングおよびHTTPレスポンス・コードを指定します。詳細は、モデル・ファイル構文およびモデル・ファイルの例を参照してください。gateway_paramsパラメータをdb_typeservicenowとともに使用する場合、次の2つのオプションがサポートされています。基本認証:
gateway_paramsパラメータdb_typeに値'servicenow'を指定し、directory_nameおよびfile_nameパラメータをユーザー名/パスワード・タイプの資格証明とともに指定する必要があります。OAuth 2.0認証: OAuthタイプの資格証明とともに、
gateway_paramsパラメータdb_typeに値'servicenow'、directory_name、file_nameおよびtoken_uriパラメータを指定する必要があります。
directory_nameパラメータでは、ServiceNow REST構成ファイルを含むディレクトリを指定します。このディレクトリは次のように作成できます。create or replace directory servicenow_dir as 'SERVICENOW_DIR';ServiceNow REST構成ファイルを取得して、指定したディレクトリにダウンロードします。たとえば:
exec DBMS_CLOUD.get_object('servicenow_dir_cred',
'https://objectstorage.<...>/servicenow.rest','SERVICENOW_DIR');file_name値を、ダウンロードしたREST構成ファイルservicenow.restの名前に設定します。その後、Basic認証またはOAuth2.0のいずれかでServiceNow REST構成ファイルを使用できます。
snowflakedb_typeがSNOWFLAKEの場合、オプション・パラメータrole、schemaおよびwarehouseが有効です。これらの値は、デフォルト以外の異なるスキーマ、ロールまたはウェアハウス値を指定します。たとえば:gateway_params => JSON_OBJECT(
'db_type' value 'snowflake',
'role' value 'ADMIN',
'schema' value 'PUBLIC',
'warehouse' value 'TEST'
) -
private_targetパラメータを使用する場合、Autonomous AI Databaseからプライベート・エンドポイント上のデータベース・サービスへのデータベース・リンクは、商用リージョンおよびUS Governmentリージョンでのみサポートされます。この機能は、すべての商用リージョンでデフォルトで有効になっています。
この機能は、新しくプロビジョニングされたデータベースのUS Governmentリージョンでデフォルトで有効になっています。
プライベート・エンドポイント上の既存のUS Governmentデータベースの場合、Autonomous AI DatabaseからUS Governmentリージョンのターゲットへのデータベース・リンクを作成する場合は、Oracle Cloud Supportでサービス・リクエストを送信し、政府リージョンのデータベース・リンク機能でのプライベート・エンドポイントの有効化をリクエストしてください。
米国政府リージョンには、次のものがあります。
-
Oracle以外のデータベースに接続する場合、データベース・リンクは、ターゲット・データベースがパブリックIPまたはパブリック・ホスト名を介してアクセス可能な場合にのみサポートされます。
-
ADMIN以外のユーザーで
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを実行するには、そのユーザーにEXECUTEおよびCREATE DATABASE LINK権限を付与する必要があります。たとえば、ADMINとして次のコマンドを実行して、atpc_userに権限を付与します:GRANT EXECUTE ON DBMS_CLOUD_ADMIN TO atpc_user; GRANT CREATE DATABASE LINK TO atpc_user;また、ADMINスキーマ以外のスキーマ(たとえば、
atpc_userという名前のスキーマ)にデータベース・リンクを作成する場合、atpc_userスキーマは、DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKで使用する資格証明を所有している必要があります。 -
directory_nameパラメータで指定されたディレクトリごとに有効なウォレット・ファイルは1つのみです。ウォレット・ファイル用に選択したディレクトリに一度にアップロードできるのは1つのcwallet.ssoだけです。つまり、ディレクトリ内のcwallet.ssoでは、そのディレクトリのウォレットが有効なデータベースへのデータベース・リンクのみ作成できます。データベース・リンクで複数のcwallet.ssoファイルを使用するには、追加のディレクトリを作成し、各cwallet.ssoを異なるディレクトリに配置する必要があります。ディレクトリの作成の詳細は、「Autonomous AI Databaseでのディレクトリの作成」を参照してください。
-
Autonomous AI Databaseへのデータベース・リンクを作成するには、ソース・データベース(非Autonomous AI Database)で
GLOBAL_NAMESをFALSEに設定します。ALTER SYSTEM SET GLOBAL_NAMES = FALSE;System altered.SHOW PARAMETER GLOBAL_NAMESNAME TYPE VALUE ---------------------- ----------- ----------- global_names boolean FALSE -
private_targetパラメータがTRUEの場合、hostnameパラメータはVCN内のプライベート・ホストを指定します。
例
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'DB_LINK_CRED',
username => 'adb_user',
password => 'password');
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
db_link_name => 'SALESLINK',
hostname => 'adb.eu-frankfurt-1.oraclecloud.com',
port => '1522',
service_name => 'example_medium.atpc.example.oraclecloud.com',
ssl_server_cert_dn => 'CN=atpc.example.oraclecloud.com,OU=Oracle BMCS FRANKFURT,O=Oracle Corporation,L=Redwood City,ST=California,C=US',
credential_name => 'DB_LINK_CRED');
END;
/
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'AWS_REDSHIFT_LINK_CRED',
username => 'NICK',
password => '*password*'
);
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
db_link_name => 'AWSREDSHIFT_LINK',
hostname => 'example.com',
port => '5439',
service_name => '*example_service_name*',
ssl_server_cert_dn => NULL,
credential_name => 'AWS_REDSHIFT_LINK_CRED',
gateway_params => JSON_OBJECT('db_type' value 'awsredshift'));
END;
/
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'PRIVATE_ENDPOINT_CRED',
username => 'db_user',
password => '*password*'
);
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
db_link_name => 'PRIVATE_ENDPOINT_DB_LINK',
hostname => '*exampleHostname*',
port => '1521',
service_name => '*exampleServiceName*',
credential_name => 'PRIVATE_ENDPOINT_CRED',
ssl_server_cert_dn => NULL,
directory_name => NULL,
private_target => TRUE);
END;
/
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'GOOGLE_BIGQUERY_CRED',
params => JSON_OBJECT( 'gcp_oauth2' value JSON_OBJECT(
'client_id' value 'client_i*',
'client_secret' value 'client_secret',
'refresh_token' value 'refresh_token' )));
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
db_link_name => 'GOOGLE_BIGQUERY_LINK',
hostname => 'example.com',
port => '443',
service_name => 'example_service_name',
credential_name => 'GOOGLE_BIGQUERY_CRED',
gateway_params => JSON_OBJECT(
'db_type' value 'google_bigquery',
'project' value 'project_name1' ));
END;
/
Google BigQueryまたはGoogle AnalyticsでSELECTを使用する場合に指定する表名は、引用符で囲む必要があります。たとえば:
SELECT * FROM "sales"@GOOGLE_BIGQUERY_LINK
rac_hostnamesパラメータは、プライベート・エンドポイント上のターゲットOracle RACデータベースとともに使用します。
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'DB_LINK_CRED1',
username => 'adb_user',
password => 'password');
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
db_link_name => 'SALESLINK',
rac_hostnames => '["sales1-svr1.example.adb.us-ashburn-1.oraclecloud.com",
"sales1-svr2.example.adb.us-ashburn-1.oraclecloud.com",
"sales1-svr3.example.adb.us-ashburn-1.oraclecloud.com"]',
port => '1522',
service_name => 'example_high.adb.oraclecloud.com',
ssl_server_cert_dn => 'CN=adb.example.oraclecloud.com,OU=Oracle BMCS FRANKFURT,O=Oracle Corporation,L=Redwood City,ST=California,C=US',
credential_name => 'DB_LINK_CRED1',
directory_name => 'EXAMPLE_WALLET_DIR',
private_target => TRUE);
END;
/
DETACH_FILE_SYSTEMプロシージャ
このプロシージャは、データベースからファイル・システムをデタッチします。
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEMプロシージャは、データベースからファイル・システムをデタッチします。さらに、DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEMプロシージャは、DBA_CLOUD_FILE_SYSTEMSビューからファイル・システムに関する情報も削除します。
構文
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM(
file_system_name IN VARCHAR2
);
Parameters
| パラメータ | 説明 |
|---|---|
file_system_name |
ファイル・システムの名前を指定します。 このパラメータは必須です。 |
例
BEGIN
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM (
file_system_name => 'FSS'
);
END;
/
使用上のノート
-
このプロシージャを実行するには、ADMINユーザーとしてログインしているか、
DBMS_CLOUD_ADMINに対するEXECUTE権限を持っている必要があります。 -
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEMプロシージャを使用してディレクトリからファイル・システムをデタッチするには、データベース内のディレクトリ・オブジェクトに対するWRITE権限が必要です。 -
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEMプロシージャでは、プライベート・エンドポイントが有効になっているデータベースでのみプライベート・ファイル・ストレージ・サービスをデタッチできます。詳細は、OCI File Storageサービスおよびデータベースにアクセスするための開発システムの構成を参照してください。
-
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEMプロシージャは、顧客の仮想クラウド・ネットワーク(VCN)上のネットワーク・ファイル・システムのホスト名を検索します。エラー"ORA-20000: Mounting NFS fails"は、その場所に指定したホスト名が見つからない場合に返されます。
DISABLE_EXTERNAL_AUTHENTICATIONプロシージャ
データベースの外部認証スキームによるユーザー認証を無効にします。
構文
DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
例外
| 例外 | エラー・コード | 説明 |
|---|---|---|
invalid_ext_auth |
ORA-20004 |
詳細は、付随するメッセージを参照してください。 |
例
BEGIN
DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
END;
/
PL/SQL procedure successfully completed.
DROP_DATABASE_LINKプロシージャ
このプロシージャは、データベース・リンクを削除します。
構文
DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK(
db_link_name IN VARCHAR2,
public_link IN BOOLEAN DEFAULT);
Parameters
| パラメータ | 説明 |
|---|---|
db_link_name |
削除するデータベース・リンクの名前。 |
public_link |
このパラメータのデフォルト値は |
例
BEGIN
DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK(
db_link_name => 'SALESLINK' );
END;
/
使用上のノート
データベース・リンクの使用が完了したら、DBMS_CLOUD_ADMIN.DROP_DATABASE_LINKを実行して、Oracleデータベースのセキュリティを確保し、格納されているウォレット・ファイルを削除します。たとえば:
- オブジェクト・ストア内のウォレット・ファイルを削除します。
DBMS_CLOUD.DELETE_FILEを使用して、ウォレット・ファイルをdata_pump_dirディレクトリから、またはウォレット・ファイルがアップロードされたユーザー定義ディレクトリから削除します。
ENABLE_EXTERNAL_AUTHENTICATIONプロシージャ
ユーザーが外部認証スキームを使用してデータベースにログインできるようにします。
構文
DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
type IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE,
params IN CLOB DEFAULT NULL
);
Parameters
| パラメータ | 説明 |
|---|---|
type |
外部認証タイプを指定します。有効な値: または。
|
force |
(オプション)現在有効な外部認証スキームをオーバーライドします。有効な値は、 デフォルト値は |
params |
外部認証の追加パラメータを提供するJSON文字列。
|
例外
| 例外 | エラー・コード | 説明 |
|---|---|---|
invalid_ext_auth |
ORA-20004 |
詳細は、付随するメッセージを参照してください。 |
使用上のノート
-
typeOCI_IAMでは、リソース・プリンシパルがAutonomous AI Databaseインスタンスで有効になっていない場合、このルーチンはDBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPALでリソース・プリンシパルを有効にします。 -
このプロシージャは、システム・パラメータ
IDENTITY_PROVIDER_TYPEおよびIDENTITY_PROVIDER_CONFIGを、Oracle Cloud Infrastructure Identity and Access Managementの認証および認可を使用してインスタンスにアクセスするために必要なユーザーに設定します。
例
例: OCI_IAM認証の有効化
BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
type => 'OCI_IAM',
force=> TRUE );
END;
/
例: Microsoft Active DirectoryのCMU認証の有効化
params JSON引数を使用して、CMU構成ファイルを含むディレクトリ名を渡します。
BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
type => 'CMU',
force => TRUE,
params => JSON_OBJECT('directory_name' value 'CMU_DIR'); // CMU_DIR directory object already exists
END;
/
params JSON引数を使用して、CMU構成ファイルを含むオブジェクト・ストレージの場所を指す場所URIを渡します。
BEGIN
DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
type => 'CMU',
params => JSON_OBJECT('location_uri' value 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
'credential_name' value 'my_credential_name')
);
END;
/
例: Azure AD認証の有効化
BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
type => 'AZURE_AD',
force => TRUE,
params => JSON_OBJECT( 'tenant_id' VALUE '....',
'application_id' VALUE '...',
'application_id_uri' VALUE '.....' ));
END;
/
例: Kerberos認証の有効化
params JSON引数を使用して、Kerberos構成ファイルを含むディレクトリ名を渡します。
BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
type => 'KERBEROS',
force => TRUE,
params => JSON_OBJECT('directory_name' value 'KERBEROS_DIR'); // KERBEROS_DIR directory object already exists
END;
/
params JSON引数を使用して、Kerberos構成ファイルを含むオブジェクト・ストレージの場所を指すロケーションURIを渡します:
BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
type => 'KERBEROS',
force => TRUE,
params => JSON_OBJECT('location_uri' value 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
'credential_name' value 'my_credential_name');
END;
/
params JSON引数にkerberos_service_nameを使用してサービス名を渡します。
BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
type => 'KERBEROS',
force => TRUE,
params => JSON_OBJECT('directory_name' value 'KERBEROS_DIR', // KERBEROS_DIR directory object already exists
'kerberos_service_name' value 'oracle' ));
END;
/
Autonomous AI DatabaseインスタンスでKerberosを有効にした後、次の問合せを使用してKerberosサービス名を表示します:
SELECT SYS_CONTEXT('USERENV','KERBEROS_SERVICE_NAME') FROM DUAL;
DBMS_CLOUD_ADMINの例外
次の表は、DBMS_CLOUD_ADMINの例外を示しています。
| 例外 | コード | 説明 |
|---|---|---|
invalid_service |
20001 | 無効なサービスが指定されました。 |
service_not_exist |
20002 | 指定されたサービスは存在しません。 |
default_service |
20003 | 指定したサービスは変更できません。 |
invalid_char_set |
20029 | 事前条件がないか、無効な(各国語)文字セットです。 |
invalid_enc_key_attr |
20030 | キー管理の引数がないか無効です。 |
Already Using Oracle Managed Key |
000000 | データベースはすでにOracle管理キーを使用しています。Oracle管理キーをすでに使用しているときにプロシージャをコールしようとしています。 |
Argument Provided for the procedure |
ORA-0000 | プロシージャに引数が提供されています。予期されるエラー・メッセージ: このプロシージャに引数は必要ありません。 |