DBMS_CLOUD-URI-Formate

Beschreibt das Format der Quelldatei-URIs bei Operationen mit DBMS_CLOUD. Das Format ist von dem verwendeten Object Storage Service abhängig.

DBMS_CLOUD gewährleistet eine sichere Kommunikation, und jeder von Ihnen angegebene URI muss HTTPS mit https:// als Präfix für die URI verwenden.

Natives URI-Format für Oracle Cloud Infrastructure Object Storage

Wenn sich Ihre Quelldateien in Oracle Cloud Infrastructure Object Storage in der kommerziellen Realm (OC1) befinden, wird empfohlen, das folgende URI-Format zu verwenden, das dedizierte Object Storage-Endpunkte verwendet. Weitere Informationen finden Sie unter Dedizierte Object Storage-Endpunkte.

https://namespace-string.objectstorage.region.oci.customer-oci.com/n/namespace-string/b/bucketname/o/filename
Hinweis

Für OCI Object Store dedizierte Endpunkt-URLs werden nur in kommerziellen Realms unterstützt (OC1).

Wenn sich die Quelldateien in Oracle Cloud Infrastructure Object Storage befinden und nicht in der kommerziellen Realm (OC1) enthalten sind, müssen Sie das folgende Format verwenden:

https://objectstorage.region.oraclecloud.com/n/namespace-string/b/bucket/o/filename

Beispiel: In der kommerziellen Realm (OC1) lautet die native URI für die Datei channels.txt im Bucket bucketname im Data Center Phoenix:

https://namespace.objectstorage.region.oci.customer-oci.com/n/namespace/b/bucketname/o/channels.txt

In diesem Beispiel ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.

Sie finden die URI in den Oracle Cloud Infrastructure Object Storage-Objektdetails im Auslassungsmenü auf der rechten Seite im Objektspeicher:

  1. Öffnen Sie die Oracle Cloud Infrastructure-Konsole, indem Sie neben "Oracle Cloud" auf Navigationssymbol klicken.
  2. Klicken Sie im linken Navigationsmenü von Oracle Cloud Infrastructure auf Coreinfrastruktur. Klicken Sie unter Objektspeicher auf Objektspeicher.
  3. Wählen Sie ein Compartment aus.
  4. Wählen Sie in der Spalte Name einen Bucket aus.
  5. Klicken Sie im Objektbereich auf Objektdetails anzeigen.
  6. Auf der Seite Objektdetails wird im Feld URLpfad (URI) die URI für den Zugriff auf das Objekt angezeigt.
Hinweis

Die Quelldateien müssen in einem Object Storage-Bucket gespeichert sein. Autonomous Database unterstützt keine Buckets in der Archive Storage-Tier. Weitere Informationen finden Sie unter Überblick über Object Storage.

Swift-URI-Format für Oracle Cloud Infrastructure Object Storage

Wenn sich Ihre Quelldateien in Oracle Cloud Infrastructure Object Storage in der kommerziellen Realm (OC1) befinden, wird empfohlen, das folgende URI-Format zu verwenden, das dedizierte Object Storage-Endpunkte verwendet. Weitere Informationen finden Sie unter Dedizierte Object Storage-Endpunkte.

https://namespace-string.swiftobjectstorage.region.oci.customer-oci.com/v1/namespace-string/bucket/filename
Hinweis

Für OCI Object Store dedizierte Endpunkt-URLs werden nur in den kommerziellen Realms unterstützt (OC1).

Wenn sich die Quelldateien in Oracle Cloud Infrastructure Object Storage befinden und nicht in der kommerziellen Realm (OC1) enthalten sind, müssen Sie das folgende Format verwenden:

https://swiftobjectstorage.region.oraclecloud.com/v1/namespace-string/bucket/filename

Beispiel: In der kommerziellen Realm (OC1) lautet die Swift-URI für die Datei channels.txt im Bucket bucketname im Data Center Phoenix:

https://namespace-string.swiftobjectstorage.us-phoenix-1.oci.customer-oci.com/v1/namespace-string/bucketname/channels.txt

In diesem Beispiel ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.

Hinweis

Die Quelldateien müssen in einem Object Storage-Bucket gespeichert sein. Autonomous Database unterstützt keine Buckets in der Archive Storage-Tier. Weitere Informationen finden Sie unter Überblick über Object Storage.

Oracle Cloud Infrastructure Object Storage-URI-Format mit vorab authentifizierter Anforderungs-URL

Wenn sich die Quelldateien im Oracle Cloud Infrastructure Object Storage befinden, können Sie vorab authentifizierte Oracle Cloud Infrastructure-URIs verwenden. Wenn Sie eine vorab authentifizierte Anforderung erstellen, wird eine eindeutige URL generiert. Anschließend können Sie Benutzern in Ihrer Organisation, Partnern oder Drittanbietern die eindeutige URL für den Zugriff auf das Object Storage-Ressourcenziel bereitstellen, das in der vorab authentifizierten Anforderung angegeben ist.

Hinweis

Bewerten Sie sorgfältig die Geschäftsanforderung und die Sicherheitsauswirkungen des vorab authentifizierten Zugriffs. Wenn Sie die URL der vorab authentifizierten Anforderung erstellen, beachten Sie den Ablauf und den Zugriffstyp, um sicherzustellen, dass sie für Ihre Verwendung geeignet sind.

Mit einer vorab authentifizierten Anforderungs-URL kann jeder, der die URL hat, auf die in der Anforderung angegebenen Ziele, solange die Anforderung aktiv ist. Neben der Prüfung des betrieblichen Erfordernisses des vorab authentifizierten Zugriffs muss auch seine Verteilung verwaltet werden.

Wenn sich Ihre Quelldateien in Oracle Cloud Infrastructure Object Storage in der kommerziellen Realm (OC1) befinden, wird empfohlen, das folgende URI-Format zu verwenden, das dedizierte Object Storage-Endpunkte verwendet. Weitere Informationen finden Sie unter Dedizierte Object Storage-Endpunkte.

https://namespace-string.objectstorage.region.oci.customer-oci.com/p/encrypted_string/n/namespace-string/b/bucket/o/filename
Hinweis

Für OCI Object Store dedizierte Endpunkt-URLs werden nur in den kommerziellen Realms unterstützt (OC1).

Wenn sich die Quelldateien in Oracle Cloud Infrastructure Object Storage befinden und nicht in der kommerziellen Realm (OC1) enthalten sind, müssen Sie das folgende Format verwenden:

https://objectstorage.region.oraclecloud.com.com/p/encrypted_string/n/namespace-string/b/bucket/o/filename

Beispiel für eine im Voraus authentifizierte URI für die Datei channels.txt im Bucket Bucketname im Data Center Phoenix in der kommerziellen Realm (OC1):

https://namespace-string.objectstorage.us-phoenix-1.oci.customer-oci.com/p/2xN-uDtWJNsiD910UCYGue/n/namespace-string/b/bucketname/o/channels.txt

In diesem Beispiel ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.

Sie können eine vorab authentifizierte URL in allen DBMS_CLOUD-Prozeduren verwenden, die eine URL für den Zugriff auf Dateien im Oracle Cloud Infrastructure-Objektspeicher annehmen, ohne Zugangsdaten erstellen zu müssen. Sie müssen den Parameter credential_name als NULL angeben oder keinen Parameter credential_name angeben.

Beispiele:

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;
/
Hinweis

Eine Liste mit kombinierten URLs ist gültig. Wenn die URL-Liste sowohl vorab authentifizierte URLs als auch URLs enthält, für die eine Authentifizierung erforderlich ist, greift DBMS_CLOUD mit dem angegebenen credential_name auf die URLs zu, für die eine Authentifizierung erforderlich ist. Für die vorab authentifizierten URLs wird der angegebene credential_name ignoriert.

Weitere Informationen finden Sie unter Im Voraus authentifizierte Anforderungen verwenden.

URI-Format mit öffentlicher URL

Wenn sich Ihre Quelldateien in einem Objektspeicher befinden, der öffentliche URLs bereitstellt, können Sie mit DBMS_CLOUD-Verfahren öffentliche URLs verwenden. "Öffentlich" bedeutet, dass der Object Storage-Service anonymen, nicht authentifizierten Zugriff auf die Objektspeicherdateien unterstützt. Einzelheiten dazu, wie Sie ein Objekt in einem unterstützten Objektspeicher öffentlich machen, finden Sie in Ihrem Cloud-Object Storage-Service.

Hinweis

Prüfen Sie die Geschäftsanforderungen und die Sicherheitsauswirkungen der Verwendung öffentlicher URLs sorgfältig. Wenn Sie öffentliche URLs verwenden, stellen Sie sicher, dass diese für Sie geeignet sind, da der Dateiinhalt nicht authentifiziert wird.

Sie können eine öffentliche URL in jeder DBMS_CLOUD-Anweisung verwenden, die eine URL für den Zugriff auf Dateien in Ihrem Objektspeicher annimmt, ohne Zugangsdaten erstellen zu müssen. Sie müssen den Parameter credential_name als NULL angeben oder keinen Parameter credential_name angeben.

Beispiel: Im Folgenden wird DBMS_CLOUD.COPY_DATA ohne credential_name verwendet:

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;
/

In diesem Beispiel ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.

Hinweis

Eine Liste mit kombinierten URLs ist gültig. Wenn die URL-Liste sowohl öffentliche URLs als auch URLs enthält, für die eine Authentifizierung erforderlich ist, verwendet DBMS_CLOUD den angegebenen credential_name, um auf die URLs zuzugreifen, für die eine Authentifizierung erforderlich ist. Für die öffentlichen URLs wird der angegebene credential_name ignoriert.

Informationen zur Verwendung öffentlicher Oracle Cloud Infrastructure-Buckets finden Sie unter Öffentliche Buckets.

URI-Format für Oracle Cloud Infrastructure Object Storage

Wenn sich die Quelldateien in Oracle Cloud Infrastructure Object Storage Classic befinden, finden Sie auf der REST-Seite eine Beschreibung des URI-Formats für den Zugriff auf die Dateien: REST-URLs für Oracle Cloud Infrastructure Object Storage Classic-Ressourcen.

Amazon S3-URI-Format

Wenn sich Ihre Quelldateien in Amazon S3 befinden, finden Sie eine Beschreibung des URI-Formats für den Zugriff auf Ihre Dateien unter Auf einen Bucket zugreifen.

Beispiel: Folgendes verweist auf die Datei channels.txt im Bucket adb in der Region us-west-2.

https://s3-us-west-2.amazonaws.com/adb/channels.txt 

Sie können eine vorab signierte URL in allen DBMS_CLOUD-Prozeduren verwenden, die eine URL für den Zugriff auf Dateien im Amazon S3-Objektspeicher annehmen, ohne Zugangsdaten erstellen zu müssen. Um eine vorab signierte URL in einer DBMS_CLOUD-Prozedur zu verwenden, geben Sie entweder den Parameter credential_name als NULL oder keinen credential_name-Parameter an.

Weitere Informationen finden Sie unter Objekt mit anderen gemeinsam verwenden.

Hinweis

DBMS_CLOUD unterstützt die standardmäßige Amazon S3-Endpunktsyntax für den Zugriff auf Ihre Buckets. DBMS_CLOUD unterstützt keine Amazon S3-Legacy-Endpunkte. Weitere Informationen finden Sie unter Legacy-Endpunkte.

Azure Blob Storage- oder Azure Data Lake Storage-URI-Format

Wenn sich Ihre Quelldateien in Azure Blob Storage oder Azure Data Lake Storage befinden, finden Sie eine Beschreibung des URI-Formats für den Zugriff auf Ihre Dateien hier: Ressourcen-URI-Syntax.

Beispiel: Folgendes verweist auf die Datei channels.txt im Container adb im Speicheraccount adb_user:

https://adb_user.blob.core.windows.net/adb/channels.txt
Hinweis

Sie können die Shared Access Signatures-(SAS-)URL in jeder DBMS_CLOUD-Prozedur verwenden, die eine URL für den Zugriff auf Dateien in Azure Blob Storage oder Azure Data Lake Storage annimmt, ohne Zugangsdaten erstellen zu müssen. Um eine Shared Access Signature-(SAS-)URL zu verwenden, geben Sie entweder den Parameter credential_name als NULL an, oder Sie geben keinen credential_name-Parameter an.

Weitere Informationen finden Sie unter Beschränkten Zugriff auf Azure-Speicherressourcen erteilen, die Shared Access Signatures (SAS) verwenden.

Amazon S3 kompatibles URI-Format

DBMS_CLOUD unterstützt Object Storage Service-Implementierungen, die mit Amazon S3 kompatible URLs unterstützen, einschließlich der folgenden Services:

  • Oracle Cloud Infrastructure Object Storage mit Amazon S3-fähiger URL
  • Google Cloud Storage mit Amazon S3-kompatibler URL
  • Wasabi Hot Cloud Storage mit Amazon S3-kompatibler URL
Hinweis

Um DBMS_CLOUD mit einem Amazon S3-fähigen Objektspeicher verwenden zu können, müssen Sie gültige Zugangsdaten angeben. Weitere Informationen finden Sie unter Prozedur CREATE_CREDENTIAL.

Wenn sich Ihre Quelldateien in einem Service befinden, der Amazon S3-kompatible URIs unterstützt, verwenden Sie das folgende URI-Format, um auf Ihre Dateien zuzugreifen:

  • S3-kompatible URL in Oracle Cloud Infrastructure Object Storage

    Wenn sich Ihre Quelldateien in Oracle Cloud Infrastructure Object Storage in der kommerziellen Realm (OC1) befinden, wird empfohlen, die unten aufgeführten Objekt-URL- und Bucket-URL-Formate für die kommerzielle Realm (OC1) zu verwenden. Weitere Informationen finden Sie unter Dedizierte Object Storage-Endpunkte.

    Hinweis

    Für OCI Object Store dedizierte Endpunkt-URLs werden nur in den kommerziellen Realms unterstützt (OC1).

    Objekt-URL-Formate

    • Wird nur in der kommerziellen Realm unterstützt (OC1):

      https://mynamespace.compat.objectstorage.region.oci.customer-oci.com/bucket_name/object_name
    • In allen Zonen unterstützt:

      https://mynamespace.compat.objectstorage.region.oraclecloud.com/bucket_name/object_name

    Bucket-URL-Formate:

    • Wird nur in der kommerziellen Realm unterstützt (OC1):

      https://mynamespace.compat.objectstorage.region.oci.customer-oci.com/bucket_name
    • In allen Zonen unterstützt:

      https://mynamespace.compat.objectstorage.region.oraclecloud.com/bucket_name

    Weitere Informationen finden Sie unter Amazon S3-Kompatibilität und Object Storage-Service-API.

  • Google Cloud Storage S3-kompatible URL

    Objekt-URL-Format:

    https://bucketname.storage.googleapis.com/object_name

    Bucket-URL-Format:

    https://bucketname.storage.googleapis.com/

    Weitere Informationen finden Sie unter Von Amazon S3 zu Cloud Storage migrieren und Anforderungsendpunkte.

  • Wasabi S3-kompatible URL

    Objekt-URL-Format:

    https://bucketname.s3.region.wasabisys.com/object_name

    Bucket-URL-Format:

    https://bucketname.s3.region.wasabisys.com/

    Weitere Informationen finden Sie unter Wasabi S3-API-Referenz und Service-URLs für die Speicherregionen von Wasabi.

GitHub-Raw-URL-Format

DBMS_CLOUD unterstützt GitHub-Raw-URLs für den Zugriff auf Daten aus einem GitHub-Repository.

Hinweis

Beim Zugriff mit DBMS_CLOUD und GitHub-Raw-URLs ist der Repository-Zugriff auf schreibgeschützte Funktionen beschränkt. Die DBMS_CLOUD-APIs wie DBMS_CLOUD.PUT_OBJECT, die Daten schreiben, werden mit DBMS_CLOUD-APIs in einem GitHub-Repository nicht unterstützt.

Alternativ können Sie DBMS_CLOUD_REPO.PUT_FILE verwenden, um Daten in ein GitHub-Repository hochzuladen.

Verwenden Sie GitHub-Raw-URLs mit DBMS_CLOUD-APIs, um auf Quelldateien zuzugreifen, die sich in einem GitHub-Repository befinden. Wenn Sie zu einer Datei in GitHub navigieren und auf den Link Raw klicken, wird die Raw-URL GitHub angezeigt. Die Domain raw.githubusercontent.com stellt nicht verarbeitete Versionen von Dateien bereit, die in GitHub-Repositorys gespeichert sind.

Zum Beispiel mit 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;
/

Zum Beispiel mit 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;

Für DBMS_CLOUD-Prozeduren, die eine URL für den Zugriff auf ein GitHub-Repository annehmen, sind keine Zugangsdaten für GitHub-Repositorys mit öffentlicher Sichtbarkeit erforderlich. Um eine URL mit öffentlicher Sichtbarkeit zu verwenden, können Sie den Parameter credential_name als NULL angeben oder keinen credential_name-Parameter angeben. Weitere Informationen finden Sie unter Sichtbarkeit für Repository festlegen.

Zusätzliche vom Kunden verwaltete URI-Formate

Zusätzlich zu dem vorkonfigurierten, erkannten URIs mit ihren vollqualifizierten Domainnamen (FQDNs) kann DBMS_CLOUD das richtige Authentifizierungsschema für vom Kunden verwaltete Endpunkte URIs nicht bestimmen. In diesen Fällen basiert DBMS_CLOUD auf dem richtigen URI-Schema, um das Authentifizierungsschema für den vom Kunden verwalteten Endpunkt zu identifizieren.
URI-Schema Authentifizierungstyp Zugriffsmethodenbeschreibung URI-Beispiel
Allgemein:// Einfache Authentifizierung Benutzername und Kennwort, die im Zugangsdatenobjekt der Datenbank gespeichert sind, werden zur Authentifizierung der HTTP-Anforderung verwendet basic://api.github.com/users/myaccount
bearer:// Authentifizierung von Trägertoken Mit dem Bearer-Token, das im Kennwortfeld im Datenbankzugangsdatenobjekt gespeichert ist, wird der Autorisierungsheader für die HTTP-Anforderung angegeben bearer://api.sendgrid.com/v3/resource
oci:// Nativ in OCI OCI-Signaturschlüssel, der aus dem Datenbankzugangsdatenobjekt abgerufen wurde, gespeichert und zum Signieren von Anforderungen mit dem OCI-Authentifizierungsprotokoll verwendet wird oci://objectstorage.us-ashburn-1.oraclecloud.com
öffentlich:// Keine Authentifizierung Öffentliche Adressen public://cms.data.gov/
s3:// Amazon Web Services S3-kompatibel Zugriff auf Schlüssel und Secret Key, die aus dem Feld "Benutzername/Kennwort" des Datenbankzugangsdatenobjekts abgerufen werden, und S3-kompatible Authentifizierung, die für die HTTP-Anforderung ausgeführt wird. s3://bucket.myprivatesite.com/file1.csv

Beispiele:

Vom Kunden verwalteter Endpunkt mit S3-kompatibler Authentifizierung.

Dieses Beispiel zeigt, wie Kunden für neue URIs das öffentliche oder private Hostnamensmuster mit dem Package DBMS_NETWORK_ACL_ADMIN hinzufügen können. Der Codeblock, der vom Benutzer ADMIN ausgeführt wird, ermöglicht den HTTPS-Zugriff für den Benutzer SCOTT auf Endpunkte in Domain *.myprivatesite.com. Anschließend wird angezeigt, wie der Benutzer SCOTT auf den neu aktivierten Endpunkt zugreift. Beachten Sie, dass die Zugangsdaten MY_CRED für den Benutzer SCOTT den Zugriffsschlüssel und den Secret Key für die S3-kompatible Authentifizierung speichern müssen, die für die HTTP-Anforderung ausgeführt wird, die mit dem Präfix URI angegeben wird.


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;
/

Vom Kunden verwalteter Endpunkt mit öffentlichem Zugriff

In diesem Beispiel wird gezeigt, wie Sie den Benutzer SCOTT für den Zugriff auf öffentliche REST-APIs registrieren. Der Benutzer ADMIN erstellt eine Netzwerk-ACL für den Host, um dem Benutzer SCOTT Zugriff zu erteilen.


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;
/