DBMS_CLOUD Formats d'URI
Décrit le format des URI de fichier source dans les opérations avec DBMS_CLOUD
. Le format dépend du service de stockage d'objets que vous utilisez.
DBMS_CLOUD
garantit la sécurité des communications. Les URI que vous indiquez doivent utiliser HTTPS, avec https://
comme préfixe de l'URI.
- Format d'URI natif Oracle Cloud Infrastructure Object Storage
- Format d'URI Swift Oracle Cloud Infrastructure Object Storage
- Format d'URI Oracle Cloud Infrastructure Object Storage utilisant une URL de demande préauthentifiée
- Format d'URI utilisant une URL publique
- Format d'URI Oracle Cloud Infrastructure Object Storage Classic
- Format d'URI Amazon S3
- Format d'URI Azure Blob Storage ou Azure Data Lake Storage
- Format d'URI compatible avec Amazon S3
- GitHub Format d'URL brute
DBMS_CLOUD
prend en charge les URL brutes GitHub pour accéder aux données d'un référentiel GitHub. - Formats d'URI supplémentaires gérés par le client
Outre le fichierURIs
préconfiguré et reconnu avec leurs noms de domaine complets (FQDNs
),DBMS_CLOUD
ne peut pas déterminer le modèle d'authentification approprié pour les adresses gérées par le clientURIs
. Dans ce cas,DBMS_CLOUD
s'appuie sur le modèleURI
approprié pour identifier le modèle d'authentification de l'adresse gérée par le client.
Thème parent : Package DBMS_CLOUD
Format d'URI natif Oracle Cloud Infrastructure Object Storage
Si vos fichiers source résident sur Oracle Cloud Infrastructure Object Storage dans le domaine commercial (OC1), il est recommandé d'utiliser le format d'URI suivant qui utilise des adresses dédiées Object Storage. Pour plus d'informations, reportez-vous à Adresses dédiées Object Storage.
https://namespace-string.objectstorage.region.oci.customer-oci.com/n/namespace-string/b/bucketname/o/filename
Les URL d'adresse dédiées de banque d'objets OCI sont uniquement prises en charge dans les domaines commerciaux (OC1).
Si les fichiers source résident sur Oracle Cloud Infrastructure Object Storage et ne se trouvent pas dans le domaine commercial (OC1), vous devez utiliser le format suivant :
https://objectstorage.region.oraclecloud.com/n/namespace-string/b/bucket/o/filename
Par exemple, dans le domaine commercial (OC1), l'URI natif du fichier channels.txt
dans le bucket bucketname
du centre de données Phoenix
est le suivant :
https://namespace.objectstorage.region.oci.customer-oci.com/n/namespace/b/bucketname/o/channels.txt
Dans cet exemple, namespace-string
est l'espace de noms de stockage d'objet Oracle Cloud Infrastructure et bucketname
est le nom du bucket. Pour plus d'informations, reportez-vous à Présentation des espaces de noms Object Storage.
L'URI se trouve dans les détails d'objet d'Oracle Cloud Infrastructure Object Storage dans le menu représenté à droite dans la banque d'objets :
- Ouvrez la console Oracle Cloud Infrastructure en cliquant sur
en regard d'Oracle Cloud.
- Dans le menu de navigation de gauche d'Oracle Cloud Infrastructure, cliquez sur Infrastructure de base. Sous Object Storage, cliquez sur Object Storage.
- Sous Portée de la liste, sélectionnez un compartiment.
- Dans la colonne Nom, sélectionnez un bucket.
- Dans la zone Objets, cliquez sur Afficher les détails d'objet.
- Sur la page Détails d'objet, le champ Chemin d'URL (URI affiche l'URI permettant d'accéder à l'objet.
Les fichiers source doivent être stockés dans un bucket de niveau Object Storage. Autonomous Database ne prend pas en charge les buckets de niveau Archive Storage. Pour plus d'informations, reportez-vous à Présentation d'Object Storage.
Rubrique parent : Formats d'URI DBMS_CLOUD
Format d'URI Swift Oracle Cloud Infrastructure Object Storage
Si vos fichiers source résident sur Oracle Cloud Infrastructure Object Storage dans le domaine commercial (OC1), il est recommandé d'utiliser le format d'URI suivant qui utilise des adresses dédiées Object Storage. Pour plus d'informations, reportez-vous à Adresses dédiées Object Storage.
https://namespace-string.swiftobjectstorage.region.oci.customer-oci.com/v1/namespace-string/bucket/filename
Les URL d'adresse dédiées de banque d'objets OCI sont uniquement prises en charge dans les domaines commerciaux (OC1).
Si les fichiers source résident sur Oracle Cloud Infrastructure Object Storage et ne se trouvent pas dans le domaine commercial (OC1), vous devez utiliser le format suivant :
https://swiftobjectstorage.region.oraclecloud.com/v1/namespace-string/bucket/filename
Par exemple, dans le domaine commercial (OC1), l'URI Swift du fichier channels.txt
dans le bucket bucketname
du centre de données Phoenix
est le suivant :
https://namespace-string.swiftobjectstorage.us-phoenix-1.oci.customer-oci.com/v1/namespace-string/bucketname/channels.txt
Dans cet exemple, namespace-string
est l'espace de noms de stockage d'objet Oracle Cloud Infrastructure et bucketname
est le nom du bucket. Pour plus d'informations, reportez-vous à Présentation des espaces de noms Object Storage.
Les fichiers source doivent être stockés dans un bucket de niveau Object Storage. Autonomous Database ne prend pas en charge les buckets de niveau Archive Storage. Pour plus d'informations, reportez-vous à Présentation d'Object Storage.
Rubrique parent : Formats d'URI DBMS_CLOUD
Format d'URI Oracle Cloud Infrastructure Object Storage utilisant une URL de demande préauthentifiée
Si les fichiers source résident sur Oracle Cloud Infrastructure Object Storage, vous pouvez utiliser des URI préauthentifiés Oracle Cloud Infrastructure. Lorsque vous créez une demande préauthentifiée, une URL unique est générée. Vous pouvez ensuite fournir l'URL unique aux utilisateurs de votre organisation, à vos partenaires ou à des tiers afin qu'ils puissent accéder à la cible de ressource Object Storage identifiée dans la demande préauthentifiée.
Évaluez soigneusement les exigences métier et les implications en matière de sécurité de l'accès pré-authentifié. Lorsque vous créez l'URL de demande pré-authentifiée, notez l'expiration et le type d'accès pour vous assurer qu'ils sont appropriés pour votre utilisation.
Une URL de demande préauthentifiée fournit à toute personne disposant de l'URL un accès aux cibles identifiées dans la demande tant que celle-ci est active. En plus de prendre en compte les besoins opérationnels de l'accès préauthentifié, il est tout aussi important de gérer sa distribution.
Si vos fichiers source résident sur Oracle Cloud Infrastructure Object Storage dans le domaine commercial (OC1), il est recommandé d'utiliser le format d'URI suivant qui utilise des adresses dédiées Object Storage. Pour plus d'informations, reportez-vous à Adresses dédiées Object Storage.
https://namespace-string.objectstorage.region.oci.customer-oci.com/p/encrypted_string/n/namespace-string/b/bucket/o/filename
Les URL d'adresse dédiées de banque d'objets OCI sont uniquement prises en charge dans les domaines commerciaux (OC1).
Si les fichiers source résident sur Oracle Cloud Infrastructure Object Storage et ne se trouvent pas dans le domaine commercial (OC1), vous devez utiliser le format suivant :
https://objectstorage.region.oraclecloud.com.com/p/encrypted_string/n/namespace-string/b/bucket/o/filename
Par exemple, dans le domaine commercial (OC1), voici un exemple d'URI préauthentifié pour le fichier channels.txt
dans le bucket bucketname du centre de données Phoenix
:
https://namespace-string.objectstorage.us-phoenix-1.oci.customer-oci.com/p/2xN-uDtWJNsiD910UCYGue/n/namespace-string/b/bucketname/o/channels.txt
Dans cet exemple, namespace-string
est l'espace de noms de stockage d'objet Oracle Cloud Infrastructure et bucketname
est le nom du bucket. Pour plus d'informations, reportez-vous à Présentation des espaces de noms Object Storage.
Vous pouvez utiliser une URL préauthentifiée dans n'importe quelle procédure DBMS_CLOUD
qui utilise une URL pour accéder aux fichiers dans la banque d'objets Oracle Cloud Infrastructure, sans avoir à créer d'informations d'identification. Vous devez définir le paramètre credential_name
sur NULL
ou ne pas indiquer de paramètre credential_name
.
Exemple :
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;
/
Une liste d'URL mixtes est valide. Si la liste d'URL contient des URL préauthentifées et des URL qui doivent être authentifiées,
DBMS_CLOUD
utilise la valeur credential_name
indiquée pour accéder aux URL qui doivent être authentifiées. Pour les URL préauthentifiées, la valeur credential_name
indiquée est ignorée.
Pour plus d'informations sur l'utilisation de demandes pré-authentifiées.
Rubrique parent : Formats d'URI DBMS_CLOUD
Format d'URI utilisant une URL publique
Si les fichiers source résident dans une banque d'objets qui fournit des URL publiques, vous pouvez utiliser ces URL publiques avec les procédures DBMS_CLOUD
. Le terme "publique" signifie que le service de stockage d'objet prend en charge l'accès anonyme et non authentifié aux fichiers de la banque d'objets. Pour plus de détails sur la procédure de définition d'un objet public dans une banque d'objets prise en charge, reportez-vous à votre service de stockage d'objet cloud.
Évaluez soigneusement les besoins de l'entreprise et les implications de sécurité liés à l'utilisation d'URL publiques. Lorsque vous utilisez des URL publiques, le contenu du fichier n'étant pas authentifié, assurez-vous qu'il est adapté à votre utilisation.
Vous pouvez utiliser une URL publique dans toute procédure DBMS_CLOUD
qui utilise une URL pour accéder aux fichiers dans votre banque d'objets, sans avoir à créer d'informations d'identification. Vous devez définir le paramètre credential_name
sur NULL
ou ne pas indiquer de paramètre credential_name
.
Par exemple, la commande suivante utilise DBMS_CLOUD.COPY_DATA
sans valeur credential_name
:
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;
/
Dans cet exemple, namespace-string
est l'espace de noms de stockage d'objet Oracle Cloud Infrastructure et bucketname
est le nom du bucket. Pour plus d'informations, reportez-vous à Présentation des espaces de noms Object Storage.
Une liste d'URL mixtes est valide. Si la liste des URL contient des URL publiques et des URL qui doivent être authentifiées,
DBMS_CLOUD
utilise la valeur credential_name
indiquée pour accéder aux URL qui doivent l'être. Pour les URL publiques, la valeur credential_name
indiquée est ignorée.
Reportez-vous à Buckets publics pour plus d'informations sur l'utilisation des buckets publics Oracle Cloud Infrastructure
Rubrique parent : Formats d'URI DBMS_CLOUD
Format d'URI Oracle Cloud Infrastructure Object Storage Classic
Si les fichiers source résident dans Oracle Cloud Infrastructure Object Storage Classic, reportez-vous à la page REST pour obtenir la description du format d'URI permettant d'accéder à vos fichiers : A propos des URL REST pour les ressources Oracle Cloud Infrastructure Object Storage Classic.
Rubrique parent : Formats d'URI DBMS_CLOUD
Format d'URI Amazon S3
Si les fichiers source résident dans Amazon S3, reportez-vous à Accès à un bucket pour obtenir une description du format d'URI permettant d'accéder à vos fichiers.
L'exemple suivant fait référence au fichier channels.txt
dans le bucket adb
de la région us-west-2
.
https://s3-us-west-2.amazonaws.com/adb/channels.txt
Vous pouvez utiliser une URL présignée dans n'importe quelle procédure DBMS_CLOUD
qui utilise une URL pour accéder aux fichiers dans la banque d'objets d'Amazon S3, sans avoir à créer d'informations d'identification. Pour utiliser une URL présignée dans une procédure DBMS_CLOUD
, définissez le paramètre credential_name
sur NULL
ou n' fournissez pas de paramètre credential_name
.
Pour plus d'informations, reportez-vous à Partage d'un objet avec d'autres utilisateurs.
DBMS_CLOUD
prend en charge la syntaxe d'adresse Amazon S3 standard pour accéder aux buckets. DBMS_CLOUD
ne prend pas en charge les adresses héritées d'Amazon S3. Pour plus d'informations, reportez-vous à Points de fin hérités.
Rubrique parent : Formats d'URI DBMS_CLOUD
Format d'URI Azure Blob Storage ou Azure Data Lake Storage
Si les fichiers source résident dans Azure Blob Storage ou Azure Data Lake Storage, reportez-vous à Syntaxe d'URI de ressource pour obtenir une description du format d'URI permettant d'accéder à vos fichiers.
L'exemple suivant fait référence au fichier channels.txt
dans le conteneur adb
du compte de stockage adb_user
:
https://adb_user.blob.core.windows.net/adb/channels.txt
Vous pouvez utiliser une URL avec signature d'accès partagé dans n'importe quelle procédure
DBMS_CLOUD
qui utilise une URL pour accéder aux fichiers dans Azure Blob Storage ou Azure Data Lake Storage, sans avoir à créer d'informations d'identification. Pour utiliser une URL avec signature d'accès partagé, définissez le paramètre credential_name
sur NULL
ou n'indiquez pas de paramètre credential_name
.
Pour plus d'informations, reportez-vous à Accorder un accès limité aux ressources du stockage Azure à l'aide des signatures d'accès partagé.
Rubrique parent : Formats d'URI DBMS_CLOUD
Format d'URI compatible avec Amazon S3
DBMS_CLOUD
prend en charge les implémentations de service de stockage d'objet qui prennent en charge les URL compatibles avec Amazon S3, y compris les services suivants :
- Oracle Cloud Infrastructure Object Storage avec URL compatible avec Amazon S3
- Google Cloud Storage avec une URL compatible avec Amazon S3
- Wasabi Hot Cloud Storage avec une URL compatible avec Amazon S3
Pour utiliser
DBMS_CLOUD
avec une banque d'objets compatible avec Amazon S3, vous devez fournir des informations d'identification valides. Pour plus d'informations, reportez-vous à Procédure CREATE_CREDENTIAL.
Si les fichiers source résident sur un service qui prend en charge les URI compatibles avec Amazon S3, utilisez le format d'URI suivant pour accéder aux fichiers :
-
URL Oracle Cloud Infrastructure Object Storage S3 compatible
Si vos fichiers source résident sur Oracle Cloud Infrastructure Object Storage dans le domaine commercial (OC1), il est recommandé d'utiliser les formats d'URL d'objet et d'URL de bucket répertoriés ci-dessous pour le domaine commercial (OC1). Pour plus d'informations, reportez-vous à Adresses dédiées Object Storage.
Remarque
Les URL d'adresse dédiées de banque d'objets OCI sont uniquement prises en charge dans les domaines commerciaux (OC1).Formats d'URL d'objet
-
Prise en charge uniquement dans le domaine commercial (OC1) :
https://mynamespace.compat.objectstorage.region.oci.customer-oci.com/bucket_name/object_name
-
Prise en charge dans toutes les zones :
https://mynamespace.compat.objectstorage.region.oraclecloud.com/bucket_name/object_name
Formats d'URL de bucket :
-
Prise en charge uniquement dans le domaine commercial (OC1) :
https://mynamespace.compat.objectstorage.region.oci.customer-oci.com/bucket_name
-
Prise en charge dans toutes les zones :
https://mynamespace.compat.objectstorage.region.oraclecloud.com/bucket_name
Pour plus d'informations, reportez-vous à API de compatibilité Amazon S3 et à API du service Object Storage.
-
-
URL Google Cloud Storage compatible avec S3
Format d'URL d'objet :
https://bucketname.storage.googleapis.com/object_name
Format d'URL de bucket :
https://bucketname.storage.googleapis.com/
Pour plus d'informations, reportez-vous à Migration d'Amazon S3 vers Cloud Storage et à Adresses de demande.
-
URL Wasabi S3 compatible
Format d'URL d'objet :
https://bucketname.s3.region.wasabisys.com/object_name
Format d'URL de bucket :
https://bucketname.s3.region.wasabisys.com/
Pour plus d'informations, reportez-vous à Référence d'API Wasabi S3 et à URL de service des régions de stockage de Wasabi.
Rubrique parent : Formats d'URI DBMS_CLOUD
GitHub Format d'URL brute
DBMS_CLOUD
prend en charge les URL brutes GitHub pour accéder aux données d'un référentiel GitHub.
Pour l'accès de
DBMS_CLOUD
avec des URL brutes GitHub, l'accès au référentiel est limité à la lecture seule. Les API DBMS_CLOUD
telles que DBMS_CLOUD.PUT_OBJECT
qui écrivent des données ne sont pas prises en charge avec les API DBMS_CLOUD
sur un référentiel GitHub.
Sinon, utilisez DBMS_CLOUD_REPO.PUT_FILE
pour télécharger des données vers un référentiel GitHub.
Utilisez les URL brutes GitHub avec les API DBMS_CLOUD
pour accéder aux fichiers source qui résident dans un référentiel GitHub. Lorsque vous accédez à un fichier sur GitHub et que vous cliquez sur le lien Brut, l'URL brute GitHub apparaît. Le domaine raw.githubusercontent.com
fournit des versions non traitées des fichiers stockés dans les référentiels GitHub.
Voici un exemple utilisant 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;
/
Voici un exemple utilisant 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;
Les procédures DBMS_CLOUD
qui utilisent une URL pour accéder à un référentiel GitHub ne nécessitent pas d'informations d'identification avec des référentiels GitHub de visibilité publique. Pour utiliser une URL de visibilité publique, vous pouvez définir le paramètre credential_name
sur NULL
ou ne fournissez pas de paramètre credential_name
. Pour plus d'informations, reportez-vous à Définition de la visibilité du référentiel.
Rubrique parent : Formats d'URI DBMS_CLOUD
Formats d'URI supplémentaires gérés par le client
URIs
préconfiguré et reconnu avec leurs noms de domaine complets (FQDNs
), DBMS_CLOUD
ne peut pas déterminer le modèle d'authentification approprié pour les adresses gérées par le client URIs
. Dans ces cas, DBMS_CLOUD
s'appuie sur le modèle URI
approprié pour identifier le modèle d'authentification de l'adresse gérée par le client.
Modèle d'URI | Type d'authentification | Description du mode d'accès | Exemple d'URI |
---|---|---|---|
basic :// | Authentification de base | Le nom utilisateur et le mot de passe stockés dans l'objet d'informations d'identification de base de données sont utilisés pour authentifier la demande HTTP | basic://api.github.com/users/myaccount |
bearer :// | Authentification par jeton de porteur | Le jeton de porteur stocké dans le champ de mot de passe de l'objet d'informations d'identification de base de données est utilisé pour indiquer l'en-tête d'autorisation de la demande HTTP | bearer://api.sendgrid.com/v3/resource |
oci :// | Natif d'OCI | Clé de signature OCI obtenue à partir de l'objet d'informations d'identification de base de données stocké et utilisé pour signer des demandes à l'aide du protocole d'authentification OCI | oci://objectstorage.us-ashburn-1.oraclecloud.com |
public.// | Pas d'authentification | URL publiques | public://cms.data.gov/ |
s3:// | Compatible avec Amazon Web Services S3 | Clé d'accès et clé secrète obtenues à partir du champ nom utilisateur/mot de passe de l'objet d'informations d'identification de base de données, et authentification compatible S3 effectuée pour la demande HTTP. | s3://bucket.myprivatesite.com/file1.csv |
Exemples :
Adresse gérée par le client à l'aide de l'authentification compatible S3.
Cet exemple montre comment, pour le nouveau URIs
, les clients peuvent ajouter le modèle de nom d'hôte public ou privé à l'aide du package DBMS_NETWORK_ACL_ADMIN
. Le bloc de code, exécuté par l'utilisateur ADMIN
, active l'accès HTTPS
pour l'utilisateur SCOTT
aux adresses du domaine *.myprivatesite.com
. Il indique ensuite comment l'utilisateur SCOTT
accède à l'adresse qui vient d'être activée. Les informations d'identification MY_CRED
de l'utilisateur SCOTT
doivent stocker la clé d'accès et la clé secrète pour l'authentification compatible S3 exécutée pour la demande HTTP
indiquée par le préfixe URI
.
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;
/
Adresse gérée par le client avec accès public
Cet exemple montre comment inscrire l'utilisateur SCOTT
pour accéder aux API REST publiques. L'utilisateur ADMIN
crée une ACL réseau pour l'hôte afin de fournir l'accès à l'utilisateur SCOTT
.
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;
/
Rubrique parent : Formats d'URI DBMS_CLOUD