DBMS_CLOUD URI書式
DBMS_CLOUD
での操作におけるソース・ファイルURIの形式について説明します。 形式は、使用しているオブジェクト・ストレージ・サービスによって異なります。
DBMS_CLOUD
により、セキュアな通信および指定したURIが、https://
をURIのプレフィクスとして使用したHTTPSを使用していることが保証されます。
- Oracle Cloud Infrastructure Object StorageのネイティブURI形式
- Oracle Cloud Infrastructure Object StorageのSwift URI形式
- 事前認証済リクエストのURLを使用したOracle Cloud Infrastructure Object StorageのURI形式
- パブリックURLを使用したURI形式
- Oracle Cloud Infrastructure Object Storage ClassicのURI形式
- Amazon S3 URI形式
- Azure BlobストレージまたはAzure Data LakeストレージURI形式
- Amazon S3互換のURI形式
- GitHub Raw URLフォーマット
DBMS_CLOUD
は、「GitHubリポジトリ」からデータにアクセスするためのGitHub Raw URLをサポートしています。 - 追加の顧客管理URIフォーマット
DBMS_CLOUD
は、完全修飾ドメイン名(FQDNs
)を持つ事前構成済の認識済URIs
に加えて、顧客管理エンドポイントURIs
の適切な認証スキームを決定できません。 このような場合、DBMS_CLOUD
は、顧客管理エンドポイントの認証スキームを識別するために、適切なURI
スキームに依存します。
親トピック: DBMS_CLOUDパッケージ
Oracle Cloud Infrastructure Object StorageネイティブURIフォーマット
ソース・ファイルが商用レルム(OC1)のOracle Cloud Infrastructure Object Storageにある場合は、オブジェクト・ストレージ専用エンドポイントを使用する次のURI形式を使用することをお薦めします。 詳細は、「オブジェクト・ストレージ専用エンドポイント」を参照してください。
https://namespace-string.objectstorage.region.oci.customer-oci.com/n/namespace-string/b/bucketname/o/filename
ノート:
OCIオブジェクト・ストアの専用エンドポイント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は、オブジェクト・ストアの右側の省略記号メニューのOracle Cloud Infrastructure Object Storageオブジェクトの詳細から見つけることができます:
- Oracle Cloudの横にある
をクリックして、Oracle Cloud Infrastructureコンソールを開きます。
- Oracle Cloud Infrastructure左側のナビゲーション・メニューから、「コア・インフラストラクチャ」をクリックします。 「オブジェクト・ストレージ」で、「オブジェクト・ストレージ」をクリックします。
- リスト範囲で、「コンパートメント」を選択します。
- 「名前」列から、バケットを選択します。
- オブジェクト領域で、「オブジェクト詳細の表示」をクリックします。
- 「オブジェクトの詳細」ページの「URLパス(URI)」フィールドに、オブジェクトにアクセスするためのURIが表示されます。
ノート:
ソース・ファイルはオブジェクト・ストレージ層バケットに格納する必要があります。 Autonomous Databaseでは、アーカイブ・ストレージ層のバケットはサポートされていません。 詳細については、「オブジェクト・ストレージの概要」を参照してください。
親トピック: DBMS_CLOUD URIの書式
Oracle Cloud Infrastructure Object Storage Swift URI形式
ソース・ファイルが商用レルム(OC1)のOracle Cloud Infrastructure Object Storageにある場合は、オブジェクト・ストレージ専用エンドポイントを使用する次のURI形式を使用することをお薦めします。 詳細は、「オブジェクト・ストレージ専用エンドポイント」を参照してください。
https://namespace-string.swiftobjectstorage.region.oci.customer-oci.com/v1/namespace-string/bucket/filename
ノート:
OCIオブジェクト・ストアの専用エンドポイントURLは、商用レルム(OC1)でのみサポートされています。ソース・ファイルがOracle Cloud Infrastructure Object Storageに存在し、商用レルム(OC1)にない場合は、次の形式を使用する必要があります:
https://swiftobjectstorage.region.oraclecloud.com/v1/namespace-string/bucket/filename
たとえば、商用レルム(OC1)では、Phoenix
データ・センターのbucketname
バケット内のファイルchannels.txt
のSwift URIは次のようになります:
https://namespace-string.swiftobjectstorage.us-phoenix-1.oci.customer-oci.com/v1/namespace-string/bucketname/channels.txt
この例では、namespace-string
がOracle Cloud Infrastructureオブジェクト・ストレージのネームスペースで、bucketname
がバケット名です。 詳細については、「オブジェクト・ストレージのネームスペースについて」を参照してください。
ノート:
ソース・ファイルはオブジェクト・ストレージ層バケットに格納する必要があります。 Autonomous Databaseでは、アーカイブ・ストレージ層のバケットはサポートされていません。 詳細については、「オブジェクト・ストレージの概要」を参照してください。
親トピック: DBMS_CLOUD URIの書式
認証前リクエスト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形式を使用することをお薦めします。 詳細は、「オブジェクト・ストレージ専用エンドポイント」を参照してください。
https://namespace-string.objectstorage.region.oci.customer-oci.com/p/encrypted_string/n/namespace-string/b/bucket/o/filename
ノート:
OCIオブジェクト・ストアの専用エンドポイント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
データ・センターの「バケット名」バケットにあるファイル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
がバケット名です。 詳細については、「オブジェクト・ストレージのネームスペースについて」を参照してください。
資格証明を作成する必要なく、Oracle Cloud Infrastructureオブジェクト・ストアのファイルにアクセスするためのURLを渡すDBMS_CLOUD
プロシージャでは、認証前のURLを使用できます。 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リストに含まれる場合、DBMS_CLOUD
は指定されたcredential_name
を使用して、認証が必要なURLおよび指定されたcredential_name
が無視される認証前のURLにアクセスします。
詳細については、「事前認証済リクエストの使用」を参照してください。
親トピック: DBMS_CLOUD URIの書式
パブリックURLを使用したURI書式
パブリックUrlを提供するオブジェクト・ストアにソース・ファイルが存在する場合は、DBMS_CLOUD
プロシージャでパブリックurlを使用できます。 パブリックは、オブジェクト・ストレージ・サービスがオブジェクト・ストア・ファイルへの匿名の認証されないアクセスをサポートすることを意味します。 サポートされるオブジェクト・ストアにオブジェクトを公開する方法の詳細は、クラウド・オブジェクト・ストレージ・サービスを参照してください。
ノート:
公開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
が無視されるパブリックURLにアクセスします。
Oracle Cloud Infrastructureパブリック・バケットの使用の詳細は、「パブリック・バケット」を参照してください。
親トピック: DBMS_CLOUD URIの書式
Oracle Cloud Infrastructure Object Storage ClassicのURI形式
ソース・ファイルがOracle Cloud Infrastructure Object Storage Classicに存在する場合、ファイルにアクセスするためのURI形式の説明についてRESTページを参照してください: Oracle Cloud Infrastructure Object Storage ClassicリソースのREST URLについてに関する項。
親トピック: DBMS_CLOUD URIの書式
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レガシー・エンドポイントをサポートしていません。 詳細については、「レガシー・エンドポイント」を参照してください。
親トピック: DBMS_CLOUD URIの書式
「Azure BlobストレージまたはAzure Data Lakeストレージ」 URI形式
ソース・ファイルがAzure BlobストレージまたはAzure Data Lakeストレージにある場合は、ファイルにアクセスするためのURI形式の説明を次を参照してください: リソースURI構文。
たとえば、以下は、ストレージ・アカウントadb_user
のadb
コンテナ内のファイルchannels.txt
を参照しています:
https://adb_user.blob.core.windows.net/adb/channels.txt
ノート:
資格証明を作成せずに、「Azure BlobストレージまたはAzure Data Lakeストレージ」のファイルにアクセスするためのURLを取得するDBMS_CLOUD
プロシージャで、共有アクセス・シグネチャ(SAS) URLを使用できます。 共有アクセス・シグネチャ(SAS) URLを使用するには、credential_name
パラメータをNULL
として指定するか、credential_name
パラメータを指定しないでください。
詳細については、「共有アクセス・シグネチャ(SAS)を使用したAzureストレージ・リソースへの制限付きアクセス権の付与」を参照してください。
親トピック: DBMS_CLOUD URIの書式
Amazon S3互換のURI形式
DBMS_CLOUD
は、次のサービスを含む、Amazon S3互換のURLをサポートするオブジェクト・ストレージ・サービス実装をサポートしています:
- Amazon S3互換のURLを使用したOracle Cloud Infrastructure Object Storage
- Google Cloud StorageとAmazon S3互換のURL
- Wasabi Hot Cloud StorageとAmazon S3互換のURL
ノート:
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オブジェクト・ストアの専用エンドポイント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.s3.region.wasabisys.com/object_name
バケットURLフォーマット:
https://bucketname.s3.region.wasabisys.com/
詳細については、「Wasabi S3 APIリファレンス」と「Wasabiのストレージ・リージョンのサービスURL」を参照してください。
親トピック: DBMS_CLOUD URIの書式
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
パラメータを指定しません。 詳細については、「リポジトリ表示の設定」を参照してください。
親トピック: DBMS_CLOUD URIの書式
追加の顧客管理URIフォーマット
DBMS_CLOUD
は、完全修飾ドメイン名(FQDNs
)を持つ事前構成済の認識済URIs
に加えて、顧客管理エンドポイントURIs
の適切な認証スキームを決定できません。 このような場合、DBMS_CLOUD
は、適切なURI
スキームに依存して、顧客管理エンドポイントの認証スキームを識別します。
URIスキーム | 認証タイプ | アクセス・メソッド摘要 | URIの例 |
---|---|---|---|
basic:// | Basic認証 | データベース資格証明オブジェクトに格納されているユーザー名とパスワードは、HTTPリクエストの認証に使用されます | basic://api.github.com/users/myaccount |
bearer:// | 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-compatible | データベース資格証明オブジェクトのユーザー名/パスワード・フィールドから取得したアクセス・キーと秘密キー、およびHTTPリクエストに対して実行されるS3互換認証。 | s3://bucket.myprivatesite.com/file1.csv |
例:
S3互換認証を使用した顧客管理エンドポイント。
この例は、新しいURIs
の場合、顧客はDBMS_NETWORK_ACL_ADMIN
パッケージを使用してパブリックまたはプライベートのホスト名パターンを追加する方法を示しています。 コード・ブロックは、ユーザーADMIN
によって実行され、ドメイン*.myprivatesite.com
のエンドポイントへのユーザーSCOTT
のHTTPS
アクセスを有効にします。 次に、ユーザー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;
/
親トピック: DBMS_CLOUD URIの書式