DBMS_CLOUD URI形式
DBMS_CLOUDでの操作におけるソース・ファイルURIの形式について説明します。この形式は、使用しているオブジェクト・ストレージ・サービスによって異なります。
DBMS_CLOUDでは、セキュアな通信は保証され、指定するURIではHTTPS (URIの接頭辞はhttps://)を使用する必要があります。
Oracle Cloud Infrastructure Object StorageのネイティブURI形式
商用レルム(OC1)のOracle Cloud Infrastructure Object Storageにソース・ファイルが存在する場合は、次のURI形式を使用することをお薦めします。このURI形式は、Object Storage専用エンドポイントを使用します。詳細は、オブジェクト・ストレージの専用エンドポイントを参照してください。
https://namespace-string.objectstorage.region.oci.customer-oci.com/n/namespace-string/b/bucketname/o/filenameノート
ノート: OCI Object Store専用エンドポイントURLは、商用レルム(OC1)でのみサポートされています。
ソース・ファイルがOracle Cloud Infrastructure Object Storageに存在し、商用レルム(OC1)に存在しない場合は、次の形式を使用する必要があります。
https://objectstorage.region.oraclecloud.com/n/namespace-string/b/bucket/o/filenameたとえば、商用レルム(OC1)では、Phoenixデータ・センターのbucketnameバケット内のファイルchannels.txtのネイティブURIは、次のとおりです:
https://namespace.objectstorage.region.oci.customer-oci.com/n/namespace/b/bucketname/o/channels.txtこの例では、namespace-stringはOracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースで、bucketnameはバケット名です。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。
事前定義済のプレースホルダ変数を含むURIを指定できます。リクエストが送信されると、これらの変数はシームレスに解決され、対応する実際の値に置き換えられます。次に、DBMS_CLOUDパッケージ・サブルーチンでサポートされているプレースホルダのリストを示します。
-
my$home_region: Oracle Cloud Infrastructure (OCI)テナンシのホーム・リージョンを指定します。my$home_region置換変数は、次の資格証明タイプでのみサポートされます。-
OCI API署名キー
-
OCIのリソース・プリンシパル
-
-
my$region: Autonomous AI DatabaseのOracle Cloud Infrastructure (OCI)リージョンを指定します。my$region置換変数は、次の資格証明タイプでのみサポートされます。-
OCI API署名キー
-
OCIのリソース・プリンシパル
-
認証トークン/Swift資格証明
-
-
my$cloud_domain: Oracle Cloud Infrastructure (OCI)のOracle Cloud Infrastructure (OCI)ドメイン名を指定します。my$cloud_domain置換変数は、次の資格証明タイプでのみサポートされます。-
OCI API署名キー
-
OCIのリソース・プリンシパル
-
認証トークン/Swift資格証明
-
-
my$namespace: Oracle Cloud Infrastructure (OCI) Object Storageネームスペースを指定します。my$namespace置換変数は、次の資格証明タイプでのみサポートされます。-
OCI API署名キー
-
OCIのリソース・プリンシパル
-
-
my$compartment: コンパートメントのOCIDを指定します。my$compartment置換変数は、次の資格証明タイプでのみサポートされます。-
OCI API署名キー
-
OCIのリソース・プリンシパル
-
認証トークン/Swift資格証明
-
-
my$tenancy: テナンシのOCIDを指定します。my$tenancy置換変数は、次の資格証明タイプでのみサポートされます。-
OCI API署名キー
-
OCIのリソース・プリンシパル
-
認証トークン/Swift資格証明の例:
-
object_uri => 'https://objectstorage.my$region.my$cloud_domain/n/my$namespace/b/bucket_name/o/file_nameURIはオブジェクト・ストアの右側の省略記号メニューにあるOracle Cloud Infrastructure Object Storageの「オブジェクトの詳細」から確認できます:
-
Oracle Cloudの横にある
をクリックして、Oracle Cloud Infrastructureコンソールを開きます。 -
Oracle Cloud Infrastructureの左側のナビゲーション・メニューから、「コア・インフラストラクチャ」をクリックします。「オブジェクト・ストレージ」で、「オブジェクト・ストレージ」をクリックします。
-
「リスト範囲」で、コンパートメントを選択します。
-
「名前」列からバケットを選択します。
-
「オブジェクト」領域では、「オブジェクト詳細の表示」をクリックします。

-
「オブジェクトの詳細」ページで、「URLパス(URI)」フィールドに、オブジェクトにアクセスするためのURIが表示されます。
ノート
ノート:ソース・ファイルは、オブジェクト・ストレージ層バケットに格納されている必要があります。Autonomous AI Databaseでは、アーカイブ・ストレージ層のバケットはサポートされていません。詳細は、「オブジェクト・ストレージの概要」を参照してください。
Oracle Cloud Infrastructure Object Storage SwiftのURI形式
商用レルム(OC1)のOracle Cloud Infrastructure Object Storageにソース・ファイルが存在する場合は、次のURI形式を使用することをお薦めします。このURI形式は、Object Storage専用エンドポイントを使用します。詳細は、オブジェクト・ストレージの専用エンドポイントを参照してください。
https://namespace-string.swiftobjectstorage.region.oci.customer-oci.com/v1namespace-stringbucket/filenameノート
ノート: OCI Object Store専用エンドポイントURLは、商用レルム(OC1)でのみサポートされています。
ソース・ファイルがOracle Cloud Infrastructure Object Storageに存在し、商用レルム(OC1)に存在しない場合は、次の形式を使用する必要があります。
https://swiftobjectstorage.region.oraclecloud.com/v1namespace-stringbucket/filenameたとえば、商用レルム(OC1)では、Phoenixデータ・センターのbucketnameバケット内のファイルchannels.txtのSwift URIは、次のとおりです:
https://namespace-string.swiftobjectstorage.us-phoenix-
1.oci.customer-oci.com/v1namespace-stringbucketname/channels.txtこの例では、namespace-stringはOracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースで、bucketnameはバケット名です。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。
ノート
ノート:ソース・ファイルは、オブジェクト・ストレージ層バケットに格納されている必要があります。Autonomous AI Databaseは、アーカイブ・ストレージ層のバケットをサポートしていません。詳細は、「オブジェクト・ストレージの概要」を参照してください。
指定するURIには、事前定義されたプレースホルダ変数を含めることもできます。リクエストが送信されると、これらの変数は対応する実際の値に置き換えられます。Autonomous AI Databaseでサポートされているプレースホルダのリストを次に示します:
-
my$home_region: Oracle Cloud Infrastructure (OCI)テナンシのホーム・リージョンを指定します。my$home_region置換変数は、次の資格証明タイプでのみサポートされます。-
OCI API署名キー
-
OCIのリソース・プリンシパル
-
-
my$region: Autonomous AI DatabaseのOracle Cloud Infrastructure (OCI)リージョンを指定します。my$region置換変数は、次の資格証明タイプでのみサポートされます。-
OCI API署名キー
-
OCIのリソース・プリンシパル
-
認証トークン/Swift資格証明
-
-
my$cloud_domain: Oracle Cloud Infrastructure (OCI)のOracle Cloud Infrastructure (OCI)ドメイン名を指定します。my$cloud_domain置換変数は、次の資格証明タイプでのみサポートされます。-
OCI API署名キー
-
OCIのリソース・プリンシパル
-
認証トークン/Swift資格証明
-
-
my$namespace: Oracle Cloud Infrastructure (OCI) Object Storageネームスペースを指定します。my$namespace置換変数は、次の資格証明タイプでのみサポートされます。-
OCI API署名キー
-
OCIのリソース・プリンシパル
-
-
my$compartment: コンパートメントのOCIDを指定します。my$compartment置換変数は、次の資格証明タイプでのみサポートされます。-
OCI API署名キー
-
OCIのリソース・プリンシパル
-
認証トークン/Swift資格証明
-
-
my$tenancy: テナンシのOCIDを指定します。my$tenancy置換変数は、次の資格証明タイプでのみサポートされます。-
OCI API署名キー
-
OCIのリソース・プリンシパル
-
認証トークン/Swift資格証明
-
事前認証済リクエストのURLを使用したOracle Cloud Infrastructure Object StorageのURI形式
ソース・ファイルがOracle Cloud Infrastructure Object Storageにある場合は、Oracle Cloud Infrastructureの事前認証済URIを使用することができます。事前認証済リクエストを作成すると、一意のURLが生成されます。この一意のURLを組織内のユーザー、パートナまたはサード・パーティに提供して、事前認証済リクエストで識別されたオブジェクト・ストレージ・リソース・ターゲットにアクセスできるようにします。
ノート
ノート:事前認証済アクセスに関するビジネス要件およびセキュリティの問題を慎重に評価してください。事前認証済リクエストURLを作成する場合は、有効期限とアクセス・タイプがに注意して、それらが使用に適していることを確認します。事前認証済リクエストURLでは、リクエストはアクティブであるかぎり、リクエストで識別されたターゲットへのURLアクセス権を持つすべてのユーザーに付与されます。事前認証済アクセスの運用ニーズを考慮することに加えて、その配布を管理することも同様に重要です。
商用レルム(OC1)のOracle Cloud Infrastructure Object Storageにソース・ファイルが存在する場合は、次のURI形式を使用することをお薦めします。このURI形式は、Object Storage専用エンドポイントを使用します。詳細は、オブジェクト・ストレージの専用エンドポイントを参照してください。
https://namespace-string.objectstorage.region.oci.customer-oci.com/p/encrypted_string/n/namespace-string/b/bucket/o/filenameノート
ノート: OCI Object Store専用エンドポイントURLは、商用レルム(OC1)でのみサポートされています。
ソース・ファイルがOracle Cloud Infrastructure Object Storageに存在し、商用レルム(OC1)に存在しない場合は、次の形式を使用する必要があります。
https://objectstorage.region.oraclecloud.com.com/p/encrypted_string/n/namespace-string/b/bucket/o/filenameたとえば、商用レルム(OC1)では、Phoenixデータ・センターのbucketnameバケット内のファイルchannels.txtの事前認証済URIの例を次に示します:
https://namespace-string.objectstorage.us-phoenix-
1.oci.customer-oci.com/p/2xN-uDtWJNsiD910UCYGue/n/namespace-string/b/bucketname/o/channels.txtこの例では、namespace-stringはOracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースで、bucketnameはバケット名です。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。
事前認証済URLは、資格証明を作成する必要なく、Oracle Cloud Infrastructureオブジェクト・ストア内のファイルにアクセスするためのURLを取得する任意のDBMS_CLOUDプロシージャで使用できます。credential_nameパラメータをNULLとして指定するか、credential_nameパラメータを指定しないようにする必要があります。
たとえば:
BEGIN
DBMS_CLOUD.COPY_DATA(
table_name =>'CHANNELS',
file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/p/unique-pre-authenticated-string/n/namespace-string/b/bucketname/o/channels.txt',
format => json_object('delimiter' value ',') );
END;
/ノート
ノート:混合URLのリストが有効です。URLリストに事前認可済URLと認証を必要とするURLの両方がURLリストに含まれている場合、DBMS_CLOUDは、指定されたcredential_nameを使用して、認証を必要とするURLにアクセスし、事前認可済URLについては指定されたcredential_nameが無視されます。
詳細は、事前認証済リクエストの使用を参照してください。
事前定義済のプレースホルダ変数を含むURIを指定できます。リクエストが送信されると、これらの変数は対応する実際の値に置き換えられます。次に、DBMS_CLOUDパッケージ・サブルーチンでサポートされているプレースホルダのリストを示します。
-
my$home_region: Oracle Cloud Infrastructure (OCI)テナンシのホーム・リージョンを指定します。my$home_region置換変数は、次の資格証明タイプでのみサポートされます。-
OCI API署名キー
-
OCIのリソース・プリンシパル
-
-
my$region: Autonomous AI DatabaseのOracle Cloud Infrastructure (OCI)リージョンを指定します。my$region置換変数は、次の資格証明タイプでのみサポートされます。-
OCI API署名キー
-
OCIのリソース・プリンシパル
-
認証トークン/Swift資格証明
-
-
my$cloud_domain: Oracle Cloud Infrastructure (OCI)のOracle Cloud Infrastructure (OCI)ドメイン名を指定します。my$cloud_domain置換変数は、次の資格証明タイプでのみサポートされます。-
OCI API署名キー
-
OCIのリソース・プリンシパル
-
認証トークン/Swift資格証明
-
-
my$namespace: Oracle Cloud Infrastructure (OCI) Object Storageネームスペースを指定します。my$namespace置換変数は、次の資格証明タイプでのみサポートされます。-
OCI API署名キー
-
OCIのリソース・プリンシパル
-
-
my$compartment: コンパートメントのOCIDを指定します。my$compartment置換変数は、次の資格証明タイプでのみサポートされます。-
OCI API署名キー
-
OCIのリソース・プリンシパル
-
認証トークン/Swift資格証明
-
-
my$tenancy: テナンシのOCIDを指定します。my$tenancy置換変数は、次の資格証明タイプでのみサポートされます。-
OCI API署名キー
-
OCIのリソース・プリンシパル
-
認証トークン/Swift資格証明
-
たとえば:
object_uri => 'https://objectstorage.my$region.my$cloud_domain/n/my$namespace/b/bucket_name/o/file_nameパブリックURLを使用したURI形式
パブリックURLを提供するオブジェクト・ストア上にソース・ファイルが存在する場合は、DBMS_CLOUDプロシージャでパブリックURLを使用できます。パブリックとは、オブジェクト・ストレージ・サービスが、オブジェクト・ストア・ファイルへの匿名の未認証アクセスをサポートすることを意味します。サポートされているオブジェクト・ストアでオブジェクトをパブリックにする方法の詳細は、Cloud Object Storageサービスを参照してください。
ノート
ノート:パブリックURLの使用に関するビジネス要件およびセキュリティへの影響は慎重に評価してください。パブリックURLを使用する場合は、ファイル・コンテンツが認証されなくなるため、これが使用に適していることを確認してください。
パブリックURLは、資格証明を作成する必要なく、オブジェクト・ストア内のファイルにアクセスするためのURLを取得する任意のDBMS_CLOUDプロシージャで使用できます。credential_nameパラメータをNULLとして指定するか、credential_nameパラメータを指定しないようにする必要があります。
たとえば、次の場合、credential_nameの指定なしでDBMS_CLOUD.COPY_DATAを使用しています:
BEGIN
DBMS_CLOUD.COPY_DATA(
table_name =>'CHANNELS',
file_uri_list =>'https://objectstorage.us-ashburn-
1.oraclecloud.com/n/namespace-string/b/bucketname/o/chan_v3.dat',
format => json_object('delimiter' value ',') );
END;
/この例では、namespace-stringはOracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースで、bucketnameはバケット名です。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。
ノート
ノート:混合URLのリストが有効です。パブリックURLと認証を必要とするURLの両方がURLリストに含まれている場合、DBMS_CLOUDは、指定されたcredential_nameを使用して、認証を必要とするURLにアクセスし、指定されたcredential_nameが無視されます。
Oracle Cloud Infrastructureのパブリック・バケットの使用方法の詳細は、パブリック・バケットを参照してください。
事前定義済のプレースホルダ変数を含むURIを指定できます。リクエストが送信されると、これらの変数は対応する実際の値に置き換えられます。次に、DBMS_CLOUDパッケージ・サブルーチンでサポートされているプレースホルダのリストを示します。
-
my$home_region: Oracle Cloud Infrastructure (OCI)テナンシのホーム・リージョンを指定します。my$home_region置換変数は、次の資格証明タイプでのみサポートされます。-
OCI API署名キー
-
OCIのリソース・プリンシパル
-
-
my$region: Autonomous AI DatabaseのOracle Cloud Infrastructure (OCI)リージョンを指定します。my$region置換変数は、次の資格証明タイプでのみサポートされます。-
OCI API署名キー
-
OCIのリソース・プリンシパル
-
認証トークン/Swift資格証明
-
-
my$cloud_domain: Oracle Cloud Infrastructure (OCI)のOracle Cloud Infrastructure (OCI)ドメイン名を指定します。my$cloud_domain置換変数は、次の資格証明タイプでのみサポートされます。-
OCI API署名キー
-
OCIのリソース・プリンシパル
-
認証トークン/Swift資格証明
-
-
my$namespace: Oracle Cloud Infrastructure (OCI) Object Storageネームスペースを指定します。my$namespace置換変数は、次の資格証明タイプでのみサポートされます。-
OCI API署名キー
-
OCIのリソース・プリンシパル
-
-
my$compartment: コンパートメントのOCIDを指定します。my$compartment置換変数は、次の資格証明タイプでのみサポートされます。-
OCI API署名キー
-
OCIのリソース・プリンシパル
-
認証トークン/Swift資格証明
-
-
my$tenancy: テナンシのOCIDを指定します。my$tenancy置換変数は、次の資格証明タイプでのみサポートされます。-
OCI API署名キー
-
OCIのリソース・プリンシパル
-
認証トークン/Swift資格証明の例:
-
object_uri => 'https://objectstorage.my$region.my$cloud_domain/n/my$namespace/b/bucket_name/o/file_nameOracle Cloud Infrastructure Object Storage ClassicのURIフォーマット
ソース・ファイルがOracle Cloud Infrastructure Object Storage Classicに存在する場合は、RESTページを参照して、ファイルにアクセスするためのURIフォーマットの説明を確認してください: Oracle Cloud Infrastructure Object Storage ClassicリソースのREST URLについて。
Oracle Cloud Infrastructure (OCI) URLの代替変数
DBMS_CLOUDプロシージャおよびファンクションのobject_uriパラメータにURIを指定する場合は、Oracle Cloud Infrastructure (OCI) URLに事前定義の代替変数を指定できます。
これらの置換変数は、my$home_regionやmy$tenancyなどの事前定義済のプレースホルダで、Autonomous AI Databaseのランタイム・コンテキストに基づいて解決され、対応する実際の値に置き換えられます。テナンシのOCIDやネームスペースなどの環境固有の値はハード・コーディングされないため、SQLコードは動的で移植性が高く、複数のリージョン(OCI REST APIの場合)にデプロイできます。
OCI URLで置換変数を使用する利点は次のとおりです。
-
置換変数によってハード・コードされた値を指定する必要がなくなるため、SQLコードはエラーの発生が少なくなります。これは、長い識別子を使用するときに特に役立ちます。
-
SQLコードは移植可能で、リージョンや環境に固有ではありません。現在のリージョンを識別しなくても、OCI REST APIの複数のリージョンで同じSQLコードを再利用してデプロイできます。
-
OCI REST APIを使用した自律型AIデータベースのクロスリージョン・フェイルオーバーは便利で、エラーの発生率が低くなります。
次の表に、各置換変数と、対応するサポートされている資格証明タイプおよび値の例を示します。
| パラメータ名 | 摘要 | サポートされている資格証明のタイプ | 値の例 |
|---|---|---|---|
my$home_region |
Oracle Cloud Infrastructure (OCI)テナンシのホーム・リージョンを指定します。 |
|
us-ashburn-1 |
my$region |
自律型AIデータベースのOracle Cloud Infrastructure (OCI)リージョンを指定します。 |
|
us-phoenix-1 |
my$cloud_domain |
Oracle Cloud Infrastructure (OCI)のOracle Cloud Infrastructure (OCI)ドメイン名を指定します。 |
|
oraclecloud.com |
my$namespace |
Oracle Cloud Infrastructure (OCI)オブジェクト・ストレージ・ネームスペースを指定します。 |
|
yzsfanzztmfw |
my$compartment |
コンパートメントのOCIDを指定します。 |
|
ocid1.compartment.oc1..aaacdddddeeeffffffff123456 |
my$tenancy |
テナンシのOCIDを指定します。 |
|
ocid1.tenancy.oc1..aaaaddddddeeeeeeeeffffffff123678 |
事前定義済の置換変数を使用してオブジェクト・ストレージ・ファイルにアクセスする例:
SELECT TO_CLOB(DBMS_CLOUD.GET_OBJECT (
credential_name => credential_name,
object_uri => 'https://objectstorage.my$region.my$cloud_domain/n/my$namespace/b/bucket_name/o/file_name))
FROM DUAL;事前定義済の置換変数を使用してOCIコスト・レポート・ファイルにアクセスする例:
SELECT TO_CLOB(DBMS_CLOUD.GET_OBJECT (
credential_name => credential_name,
object_uri => 'https://objectstorage.my$home_region.my$cloud_domain/n/namespace-string/b/my$tenancy/o/reports/cost-csv/file_name.csv.gz',
compression => DBMS_CLOUD.COMPRESS_GZIP))
FROM DUAL;Amazon S3 URI形式
ソース・ファイルがAmazon S3に存在する場合、ファイルにアクセスするためのURI形式の説明は、「バケットへのアクセス」を参照してください。
たとえば、次の例は、us-west-2リージョン内のadbバケットにあるファイルchannels.txtを参照します。
https://s3-us-west-2.amazonaws.com/adb/channels.txt事前署名済URLは、資格証明を作成する必要なく、Amazon S3オブジェクト・ストア内のファイルにアクセスするためのURLを取得する任意のDBMS_CLOUDプロシージャで使用できます。DBMS_CLOUDプロシージャで事前署名済URLを使用するには、credential_nameパラメータをNULLとして指定するか、credential_nameパラメータを指定しないでください。
詳細は、「他のユーザーとのオブジェクトの共有」を参照してください。
ノート
ノート: DBMS_CLOUDでは、バケットにアクセスするための標準のAmazon S3エンドポイント構文がサポートされています。DBMS_CLOUDでは、Amazon S3のレガシー・エンドポイントはサポートされていません。詳細は、「レガシー・エンドポイント」を参照してください。
Azure Blob StorageまたはAzure Data Lake Storage URI形式
ソース・ファイルがAzure Blob StorageまたはAzure Data Lake Storageに存在する場合、ファイルにアクセスするためのURI形式の説明については、「Resource URI Syntax」を参照してください。
たとえば、次の例は、ストレージ・アカウントadb_userのadbコンテナ内にあるファイルchannels.txtを参照します。
https://adb_user.blob.core.windows.net/adb/channels.txtノート
ノート: Shared Access Signatures (SAS) URLは、資格証明を作成する必要なく、Azure Blob StorageまたはAzure Data Lake Storage内のファイルにアクセスするためのURLを取得する任意のDBMS_CLOUDプロシージャで使用できます。Shared Access Signature (SAS) URLを使用するには、credential_nameパラメータをNULLとして指定するか、credential_nameパラメータを指定しないようにします。詳細は、「Shared Access Signatures (SAS)を使用したAzure Storageリソースへの制限付きアクセスの付与」を参照してください。
Amazon S3互換のURI形式
DBMS_CLOUDは、次のサービスを含むAmazon S3互換URLをサポートするオブジェクト・ストレージ・サービス実装をサポートしています:
-
Amazon S3互換URLを使用したOracle Cloud Infrastructure Object Storage
-
Amazon S3互換URLを使用したGoogle Cloud Storage
-
Amazon S3互換URLを使用したWasabi Hot Cloud Storage
ノート
ノート: Amazon S3互換オブジェクト・ストアでDBMS_CLOUDを使用する場合は、有効な資格証明を指定する必要があります。詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。
Amazon S3互換URIをサポートするサービス上にソース・ファイルが存在する場合は、次のURI形式を使用してファイルにアクセスします:
-
Oracle Cloud Infrastructure Object StorageのS3互換URL
商用レルム(OC1)のOracle Cloud Infrastructure Object Storageにソース・ファイルが存在する場合は、商用レルム(OC1)に次に示すオブジェクトURLおよびバケットURL形式を使用することをお薦めします。詳細は、オブジェクト・ストレージの専用エンドポイントを参照してください。
ノート
ノート: OCI Object Store専用エンドポイントURLは、商用レルム(OC1)でのみサポートされています。オブジェクトURLフォーマット
- 商用レルム(OC1)でのみサポートされます。
https://mynamespace.compat.objectstorage.region.oci.customer-oci.com/bucket_name/object_name-
すべてのゾーンでサポート:
https://*mynamespace*.*compat.objectstorage*.*region*.oraclecloud.com/bucket_name/*object_name*
バケットURL形式:
-
商用レルム(OC1)でのみサポートされます。
https://*mynamespace*.*compat.objectstorage*.*region*.oci.customer-oci.com/bucket_name -
すべてのゾーンでサポート:
https://*mynamespace*.*compat.objectstorage*.*region*.oraclecloud.com/bucket_name
詳細は、「Amazon S3互換」および「オブジェクト・ストレージ・サービスAPI」を参照してください。
-
Google Cloud Storage S3互換URL
オブジェクトURL形式:
https://bucketname.storage.googleapis.com/object_nameバケットURL形式:
https://bucketname.storage.googleapis.com/詳細は、「Amazon S3からクラウド・ストレージへの移行」および「リクエスト・エンドポイント」を参照してください。
-
Wasabi S3互換URL
オブジェクトURL形式:
https://bucketname.s 3.region.wasabisys.com/object_nameバケットURL形式:
https://bucketname.s3.region.wasabisys.com/詳細は、Wasabi S3 APIリファレンスおよびWasabiのストレージ・リージョンのサービスURLを参照してください。
GitHub RAW URL形式
DBMS_CLOUDは、GitHubリポジトリからデータにアクセスするためのGitHub RAW URLをサポートしています。
ノート
ノート: GitHub RAW URLを使用したDBMS_CLOUDアクセスの場合、リポジトリ・アクセスは読取り専用機能に制限されます。データを書き込むDBMS_CLOUD.PUT_OBJECTなどのDBMS_CLOUD APIは、GitHubリポジトリのDBMS_CLOUD APIではサポートされていません。別の方法として、DBMS_CLOUD_REPO.PUT_FILEを使用してGitHubリポジトリにデータをアップロードします。
GitHub RAW URLをDBMS_CLOUD APIとともに使用して、GitHubリポジトリに存在するソース・ファイルにアクセスします。GitHubでファイルを参照し、「Raw」リンクをクリックすると、GitHubのRAW URLが表示されます。raw.githubusercontent.comドメインは、GitHubリポジトリに格納されている未処理バージョンのファイルを提供します。
たとえば、DBMS_CLOUD.GET_OBJECTを使用すると、次のようになります。
BEGIN
DBMS_CLOUD.GET_OBJECT(
credential_name => 'MY_CRED',
object_uri => 'https://raw.githubusercontent.com/myaccount/myrepo/master/data-management-library/autonomous-database/adb-loading.csv',
directory_name => 'DATA_PUMP_DIR'
);
END;
/たとえば、DBMS_CLOUD.CREATE_EXTERNAL_TABLEを使用すると、次のようになります。
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
credential_name => 'MY_CRED',
table_name => 'EMPLOYEES_EXT',
file_uri_list => 'https://raw.githubusercontent.com/myaccount/myrepo/master/data-management-library/autonomous-database/*.csv',
column_list => 'name varchar2(30), gender varchar2(30), salary number',
format => JSON_OBJECT('type' value 'csv')
);
END;
/
SELECT * FROM employees_ext;GitHubリポジトリにアクセスするためにURLを取るDBMS_CLOUDプロシージャは、パブリック表示GitHubリポジトリを含む資格証明を必要としません。パブリック表示URLを使用するには、credential_nameパラメータをNULLとして指定することも、credential_nameパラメータを指定することもできません。詳細は、リポジトリの表示設定を参照してください。
追加の顧客管理URI形式
DBMS_CLOUDは、事前構成済で認識されたURIsとその完全修飾ドメイン名(FQDNs)に加えて、顧客管理エンドポイントURIsの適切な認証スキームを決定できません。このような場合、DBMS_CLOUDは、適切なURIスキームを使用して、顧客管理エンドポイントの認証スキームを識別します。
| URIスキーム | 認証タイプ | アクセス方法摘要 | URIの例 |
|---|---|---|---|
| 基本:// | Basic認証 | データベース資格証明オブジェクトに格納されているユーザー名とパスワードは、HTTPリクエストの認証に使用されます | basic://api.github.com/users/myaccount |
| ベアラー:// | Bearerトークンの認証 | データベース資格証明オブジェクトのパスワード・フィールドに格納されているBearerトークンは、HTTPリクエストの認可ヘッダーを指定するために使用されます | bearer://api.sendgrid.com/v3/resource |
| oci:// | OCIネイティブ | OCI認証プロトコルを使用してリクエストに署名するために格納および使用されるデータベース資格証明オブジェクトから取得されるOCI署名キー | oci://objectstorage.us-ashburn-1.oraclecloud.com |
| public:// | 認証なし | パブリックURL | public://cms.data.gov/ |
| s3:// | Amazon Web Services S3互換 | データベース資格証明オブジェクトのユーザー名/パスワード・フィールドから取得されたアクセス・キーと秘密キー、およびHTTPリクエストに対して実行されるS3互換認証。 | s3://bucket.myprivatesite.com/file1.csv |
例:
S3互換認証を使用する顧客管理エンドポイント。
この例では、新しいURIsについて、DBMS_NETWORK_ACL_ADMINパッケージを使用してパブリックまたはプライベートのホスト名パターンを追加する方法を示します。ユーザーADMINによって実行されるコード・ブロックにより、ユーザーSCOTTのHTTPSアクセスがドメイン*.myprivatesite.comのエンドポイントに対して有効になります。次に、ユーザーSCOTTが新しく有効化されたエンドポイントにアクセスする方法を示します。ユーザーSCOTTの資格証明MY_CREDには、URI接頭辞で示されるHTTPリクエストに対して実行されるS3互換認証のアクセス・キーおよび秘密キーを格納する必要があることに注意してください。
BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
host => '*.myprivatesite.com',
ace => xs$ace_type(privilege_list => xs$name_list('http'),
principal_name => 'SCOTT',
principal_type => xs_acl.ptype_db),
private_target => TRUE );
END;
/
BEGIN
DBMS_CLOUD.get_object(
credential_name => 'MY_CRED',
object_uri => 's3://bucket.myprivatesite.com/file1.csv',
directory_name => 'MY_DIR' );
END;
/パブリック・アクセスを持つ顧客管理エンドポイント
この例では、SCOTTユーザーを登録してパブリックREST APIにアクセスする方法を示します。ADMINユーザーは、SCOTTユーザーにアクセスできるように、ホストのネットワークACLを作成します。
BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
host => 'data.cms.gov',
ace => xs$ace_type(privilege_list => xs$name_list('http'),
principal_name => 'SCOTT',
principal_type => xs_acl.ptype_db)
);
END;
/
SELECT DBMS_CLOUD.get_response_text(
DBMS_CLOUD.send_request(
uri => 'public://data.cms.gov/provider-data/api/1/datastore/imports/a',
method => DBMS_CLOUD.METHOD_GET,
headers => JSON_OBJECT('Accept' VALUE 'application/json')
)
)
FROM DUAL;
/