DBMS_CLOUD_ADMINパッケージ
この項では、Autonomous Databaseで提供されるDBMS_CLOUD_ADMIN
サブプログラムについて説明します。
サブプログラム | 説明 |
---|---|
このプロシージャは、データベース上のディレクトリにファイル・システムをアタッチします。 |
|
このプロシージャは、ターゲット・データベースへのデータベース・リンクを作成します。別のAutonomous Databaseインスタンス、Autonomous DatabaseではないOracle Database、またはOracle管理の異種間接続を使用してOracle Database以外へのデータベース・リンクを作成するオプションがあります。 |
|
このプロシージャは、データベース上のディレクトリからファイル・システムをデタッチします。 |
|
このプロシージャは、Autonomous Databaseインスタンスの外部認証を無効にします。 |
|
このプロシージャは、データベース・リンクを削除します。 |
|
このプロシージャにより、ユーザーは、指定された外部認証スキームを使用してAutonomous 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
パラメータ | 説明 |
---|---|
|
ファイル・システムの名前を指定します。 このパラメータは必須です。 |
|
ファイル・システムの場所を指定します。
たとえば次のようにします。
このパラメータは必須です。 |
|
アタッチされたファイル・システムのディレクトリ名を指定します。ディレクトリは存在している必要があります。 このパラメータは必須です。 |
|
(オプション)タスクの説明を指定します。 |
|
ファイル・システムの追加パラメータを提供するJSON文字列。
|
次に例を示します:
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ファイル・ストレージ・サービスおよびデータベースにアクセスするための開発システムの構成を参照してください。
-
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
パラメータを使用)。これにより、Autonomous DatabaseがNFSv4サーバーにアクセスできるように、一致するプロトコルでNFSがアタッチされます。デタッチしてから再アタッチしないと、NFSサーバーにアクセスできなくなり、"Protocol not supported"
などのエラーが表示される場合があります。
CREATE_DATABASE_LINKプロシージャ
オーバーロードされたフォームでは、次のものがサポートされます。
-
gateway_params
パラメータを使用すると、サポートされているOracle以外のデータベースへのリンクがあるOracle管理の異種間接続を含むデータベース・リンクを作成できます。 -
rac_hostnames
パラメータを使用すると、プライベート・エンドポイントのAutonomous Databaseからターゲット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
パラメータ | 説明 |
---|---|
|
作成するデータベース・リンクの名前。 |
|
ターゲット・データベースのホスト名。
このパラメータまたは
|
|
ターゲットOracle RACデータベースのホスト名を指定します。値は、ターゲットOracle RACデータベースのノードに対して1つ以上の個別のホスト名を指定するJSON配列です。JSONでは、
ターゲットがOracle RACデータベースの場合、
このパラメータまたは
|
port |
ターゲット・データベースに接続するためのポートを指定します。
|
|
リンクするデータベースの
|
ssl_server_cert_dn |
サーバー証明書にあるDN値。 Oracle管理の異種間接続は、一般的な信頼できるルート証明書と中間SSL証明書の大部分を含むウォレットで事前構成されています。 Walletを使用しないAutonomous Databaseターゲットへのパブリック・エンドポイント・リンク: ウォレット(TLS)なしでパブリック・エンドポイント上のAutonomous Databaseターゲットに接続するには:
Walletを使用しないプライベート・エンドポイント・リンク: ウォレットなしでプライベート・エンドポイント上のOracle Databaseに接続するには:
|
credential_name |
|
directory_name |
Oracle管理の異種間接続は、一般的な信頼できるルート証明書と中間SSL証明書の大部分を含むウォレットで事前構成されています。 Walletを使用しないAutonomous Databaseターゲットへのパブリック・エンドポイント・リンク: ウォレット(TLS)なしでパブリック・エンドポイント上のAutonomous Databaseに接続するには:
また、TCPを使用してAutonomous Databaseに接続するには、 Walletを使用しないプライベート・エンドポイント・リンク: ウォレットなしでプライベート・エンドポイント上のターゲットOracle Databaseに接続するには:
|
gateway_link |
データベース・リンクが作成されるのが別のOracle Databaseに対してか、Oracle Database Gatewayに対してかを示します。
デフォルト値は |
public_link |
データベース・リンクがパブリック・データベース・リンクとして作成されるかどうかを示します。 このパラメータを デフォルト値は |
private_target |
VCN DNSサーバーで解決する必要があるホスト名にデータベース・リンクがアクセスする場合は、
デフォルト値は |
|
たとえば次のようにします。
|
使用上のノート
-
gateway_params
パラメータを指定すると、一部のdb_type
値に対して、追加のgateway_params
パラメータがサポートされます。db_type
追加 gateway_params
値google_analytics
db_type
がgoogle_analytics
の場合、指定する資格証明はGoogle OAuth資格証明である必要があります(詳細は、gcp_oauth2)
CREATE_CREDENTIALプロシージャを参照してください)。google_bigquery
db_type
がgoogle_bigquery
の場合、指定する資格証明はGoogle OAuth資格証明である必要があります(詳細は、gcp_oauth2)
CREATE_CREDENTIALプロシージャを参照してください)。db_type
がgoogle_bigquery
の場合、パラメータproject
は有効です。このパラメータは、google_bigquery
のプロジェクト名を指定します。これは必須です。Google BigQueryで
SELECT
を使用するときに指定する表名は引用符で囲む必要があります。たとえば次のようにします。SELECT * FROM "sales"@GOOGLE_BIGQUERY_LINK
hive
db_type
がhive
の場合、パラメータhttp_path
は有効です。このパラメータは、必要に応じて、Hiveインスタンスに接続するためのHttpPath値を指定します。salesforce
db_type
がsalesforce
の場合、パラメータsecurity_token
が有効です。セキュリティ・トークンは、大文字と小文字が区別される英数字コードです。Salesforceにアクセスするには、security_token
値を指定する必要があります。たとえば次のようにします。gateway_params => JSON_OBJECT( 'db_type' value 'salesforce', 'security_token' value 'security_token_value' )
詳細は、セキュリティ・トークンのリセットを参照してください。
servicenow
ServiceNowに接続してデータを取得するには、ゲートウェイ・パラメータ
directory_name
およびfile_name
を指定する必要があります。これらのパラメータは、JSONレスポンスをリレーショナル・モデルにマップするモデル・ファイル(REST構成ファイル)を指定します。モデル・ファイルは、JSONレスポンスを処理するためのエンドポイント、表マッピングおよびHTTPレスポンス・コードを指定します。詳細は、モデル・ファイルの構文およびモデル・ファイルの例を参照してください。db_type
servicenow
でgateway_params
パラメータを使用する場合、次の2つのオプションがサポートされています。-
基本認証:
gateway_params
パラメータdb_type
に値'servicenow'
を指定し、ユーザー名/パスワード・タイプの資格証明とともにdirectory_name
およびfile_name
パラメータを指定する必要があります。 -
OAuth 2.0認証:
gateway_params
パラメータdb_type
に値'servicenow'
を指定し、directory_name
、file_name
およびtoken_uri
パラメータをOAuth型の資格証明とともに指定する必要があります。
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
"に設定します。その後、基本認証またはOAuth2.0でServiceNow REST構成ファイルを使用できます。
snowflake
db_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 Databaseからプライベート・エンドポイントにあるデータベース・サービスへのデータベース・リンクは、商用リージョンおよびUS Governmentリージョンでのみサポートされます。この機能は、すべての商用リージョンでデフォルトで有効になっています。
この機能は、新しくプロビジョニングされたデータベースに対してUS Governmentリージョンでデフォルトで有効になっています。
プライベート・エンドポイントにある既存のUS Governmentデータベースでは、Autonomous DatabaseからUS Governmentリージョン内のターゲットへのデータベース・リンクを作成する場合、Oracle Cloud Supportでサービス・リクエストを提出し、Governmentリージョンのデータベース・リンク機能でプライベート・エンドポイントを有効にするようにリクエストしてください。
US Governmentリージョンには次が含まれます:
- Oracle以外のデータベースに接続する場合、データベース・リンクは、パブリックIPまたはパブリック・ホスト名を介してターゲット・データベースにアクセスできる場合にのみサポートされます。
-
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK
をADMIN以外のユーザーで実行するには、そのユーザーに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 Databaseのディレクトリの作成を参照してください。
-
Autonomous Databaseへのデータベース・リンクを作成するには、ソース・データベース(Autonomous Database以外)で
GLOBAL_NAMES
をFALSE
に設定します。SQL> ALTER SYSTEM SET GLOBAL_NAMES = FALSE; System altered. SQL> SHOW PARAMETER GLOBAL_NAMES NAME 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_id',
'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
パラメータ | 説明 |
---|---|
|
ファイル・システムの名前を指定します。 このパラメータは必須です。 |
次に例を示します:
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ファイル・ストレージ・サービスおよびデータベースにアクセスするための開発システムの構成を参照してください。
-
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
パラメータ | 説明 |
---|---|
|
削除するデータベース・リンクの名前。 |
|
デフォルト値は |
例
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
);
パラメータ
パラメータ | 説明 |
---|---|
|
外部認証タイプを指定します。有効な値: または。
|
|
(オプション)現在有効になっている外部認証スキームをオーバーライドします。有効な値は、 デフォルト値は |
params |
外部認証の追加パラメータを提供するJSON文字列。
|
例外
例外 | エラー・コード | 説明 |
---|---|---|
invalid_ext_auth |
ORA-20004 |
詳細な説明は、付随するメッセージを参照してください。 |
使用上のノート
-
type
がOCI_IAM
で、リソース・プリンシパルがAutonomous 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;
/
PL/SQL procedure successfully completed.
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;
/
PL/SQL procedure successfully completed.
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;
/
PL/SQL procedure successfully completed.
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;
/
PL/SQL procedure successfully completed.
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;
/
PL/SQL procedure successfully completed.
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 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 |
オラ-0000 |
プロシージャに引数が提供されています。予期されるエラー・メッセージ: このプロシージャに引数は必要ありません。 |