Package DBMS_CLOUD_ADMIN

Cette section traite des sous-programmes DBMS_CLOUD_ADMIN fournis avec Autonomous Database.

Sous-programme Description

Procédure ATTACH_FILE_SYSTEM

Cette procédure joint un système de fichiers dans un répertoire de votre base de données.

Procédure CREATE_DATABASE_LINK

Cette procédure crée un lien de base de données vers une base de données cible. Vous pouvez créer un lien de base de données vers une autre instance Autonomous Database, vers une instance Oracle Database qui n'est pas une instance Autonomous Database ou vers une instance autre qu'Oracle Database à l'aide de la connectivité hétérogène gérée par Oracle.

Procédure DETACH_FILE_SYSTEM

Cette procédure détache un système de fichiers d'un répertoire de votre base de données.

Procédure DISABLE_EXTERNAL_AUTHENTICATION

Cette procédure désactive l'authentification externe pour l'instance Autonomous Database.

Procédure DROP_DATABASE_LINK

Cette procédure supprime un lien de base de données.

Procédure ENABLE_EXTERNAL_AUTHENTICATION

Cette procédure permet à un utilisateur d'ouvrir une session Autonomous Database à l'aide du modèle d'authentification externe indiqué.

Procédure ATTACH_FILE_SYSTEM

Cette procédure joint un système de fichiers dans la base de données.

La procédure DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM joint un système de fichiers dans la base de données et stocke les informations sur le système de fichiers dans la vue DBA_CLOUD_FILE_SYSTEMS.

Syntaxe

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

Paramètres

Paramètre Description

file_system_name

Indique le nom du système de fichiers.

Ce paramètre est obligatoire.

file_system_location

Indique l'emplacement du système de fichiers.

La valeur que vous fournissez avec file_system_location se compose d'un nom de domaine qualifié complet et d'un chemin de fichier au format suivant : FQDN:file_path.

Exemple :

  • FQDN : myhost.sub000445.myvcn.oraclevcn.com

    Pour Oracle Cloud Infrastructure File Storage, définissez le nom de domaine qualifié complet dans Afficher les options avancées lorsque vous créez un système de fichiers. Pour plus d'informations, reportez-vous à Création de systèmes de fichiers.

  • Chemin du fichier : /results

Ce paramètre est obligatoire.

directory_name

Spécifie le nom du répertoire du système de fichiers joint. Ce répertoire doit être créé.

Ce paramètre est obligatoire.

description

(Facultatif) Fournit une description de la tâche.

params

Chaîne JSON qui fournit un paramètre supplémentaire pour le système de fichiers.

  • nfs_version : indique la version de NFS à utiliser lorsque NFS est attaché (NFSv3 ou NFSv4). Valeurs valides : 3, 4.

    Valeur par défaut : 3

Exemples :

Attachez-le à un système de fichiers 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;
/     

Attachez-le à un système de fichiers 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;                                                        
/

Remarques sur l'utilisation

  • Pour exécuter cette procédure, vous devez être connecté en tant qu'utilisateur ADMIN ou disposer du privilège EXECUTE sur DBMS_CLOUD_ADMIN.

  • Vous devez disposer du privilège WRITE sur l'objet de répertoire dans la base de données pour attacher un système de fichiers à l'aide de DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM.

  • La procédure DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM peut uniquement attacher un service File Storage privé dans les bases de données pour lesquelles les adresses privées sont activées.

    Pour plus d'informations, reportez-vous à Service OCI File Storage et à Configuration d'un système de développement pour accéder à la base de données.

  • La procédure DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM recherche le nom d'hôte du système de fichiers réseau sur le réseau cloud virtuel (VCN) du client. L'erreur "ORA-20000: Mounting NFS fails" est renvoyée si le nom d'hôte spécifié dans l'emplacement ne peut pas être localisé.

  • Oracle Cloud Infrastructure File Storage utilise NFSv3 pour le partage

  • Si vous êtes attaché à des systèmes autres qu'Oracle Cloud Infrastructure File Storage, la procédure prend en charge NFSv3 et NFSv4

  • Si vous disposez d'un serveur NFS connecté qui utilise NFSv3 et que la version NFS est mise à jour vers NFSv4 dans le serveur NFS, vous devez exécuter DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM, puis DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (à l'aide du paramètre params avec nfs_version défini sur 4). Cette opération attache NFS avec le protocole correspondant afin qu'Autonomous Database puisse accéder au serveur NFSv4. Sans détachement puis rattachement, le serveur NFS sera inaccessible et vous risquez de voir une erreur telle que : "Protocol not supported".

Procédure CREATE_DATABASE_LINK

Cette procédure crée un lien de base de données vers une base de données cible dans le schéma appelant l'API.

Les formulaires surchargés prennent en charge les éléments suivants :

  • Lorsque vous utilisez le paramètre gateway_params, cela vous permet de créer un lien de base de données avec une connectivité hétérogène gérée par Oracle où le lien est vers une base de données autre qu'Oracle prise en charge.

  • Lorsque vous utilisez le paramètre rac_hostnames, cela vous permet de créer un lien de base de données d'une Autonomous Database sur une adresse privée vers une base de données Oracle RAC cible. Dans ce cas, vous utilisez le paramètre rac_hostnames pour indiquer les noms d'hôte des noeuds individuels de la base de données Oracle RAC cible.

Syntaxe

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

Paramètres

Paramètre Description

db_link_name

Nom du lien de base de données à créer.

hostname

Nom d'hôte pour la base de données cible.

La spécification de localhost pour hostname n'est pas autorisée.

Lorsque vous indiquez une connexion avec une connectivité hétérogène gérée par Oracle en fournissant le paramètre gateway_params, tenez compte du point suivant :

  • Lorsque la valeur db_type est google_bigquery, hostname n'est pas utilisé et vous pouvez fournir une valeur telle que example.com.

  • Lorsque la valeur db_type est snowflake, hostname est l'identificateur de compte Snowflake. Pour rechercher votre identificateur de compte Snowflake, reportez-vous à Formats d'identificateur de compte par région et plate-forme cloud.

Utilisez ce paramètre ou rac_hostnames, n'utilisez pas les deux.

L'entrée DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK doit mentionner le nom d'analyse de l'instance Autonomous Database dédiée cible en tant que paramètre de nom d'hôte.

rac_hostnames

Spécifie les noms d'hôte de la base de données Oracle RAC cible. La valeur est un tableau JSON qui indique des noms d'hôte individuels pour les noeuds de la base de données Oracle RAC cible. Plusieurs noms d'hôte peuvent être transmis au format JSON, séparés par un ",". Exemple :

'["sales1-svr1.domain", "sales1-svr2.domain",
      "sales1-svr3.domain"]'

Lorsque la cible est une base de données Oracle RAC, utilisez le paramètre rac_hostnames pour indiquer des noms d'hôte avec DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK. Cela vous permet de tirer parti des fonctionnalités de haute disponibilité d'Oracle RAC. L'utilisation d'une adresse IP, d'une adresse IP SCAN ou d'un nom d'hôte SCAN dans la valeur rac_hostnames n'est pas prise en charge.

Lorsque vous indiquez la liste des noms d'hôte dans le paramètre rac_hostnames, CREATE_DATABASE_LINK utilise tous les noms d'hôte indiqués comme adresses dans la chaîne de connexion. Si l'un des hôtes indiqués n'est pas disponible sur la base de données Oracle RAC cible, Autonomous Database tente automatiquement de se connecter à l'aide d'un autre nom d'hôte de la liste.

Utilisez ce paramètre ou hostname, n'utilisez pas les deux.

La spécification de localhost pour une valeur rac_hostname n'est pas autorisée.

port

Indique le port pour les connexions à la base de données cible.

Lorsque vous indiquez une connexion avec une connectivité hétérogène gérée par Oracle à l'aide du paramètre gateway_params, définissez le port en fonction de la valeur db_type :

  • awsredshift : utilisez le port 5439
  • azure : utilisez le port 1433
  • db2 : utilisez le port 2500 pour les versions de Db2 >= 11.5.6
  • db2 : utilisez le port 5000 pour les versions de Db2 <= 11.5.5
  • google_analytics : utilisez le port 443
  • google_bigquery : utilisez le port 443
  • hive : utilisez le port 433
  • mongodb : utilisez le port 27017
  • mysql : utilisez le port 3306
  • mysql_community : utilisez le port 3306
  • postgres : utilisez le port 5432
  • salesforce : utilisez le port 19937
  • servicenow : utilisez le port 443
  • snowflake : utilisez le port 443

service_name

service_name auquel lier la base de données. Pour une instance Autonomous Database cible, recherchez le nom de service à l'aide de l'une des méthodes suivantes :

  • Recherchez-le dans le fichier tnsnames.ora du fichier wallet.zip que vous téléchargez à partir d'une instance Autonomous Database pour votre connexion.

  • Cliquez sur Connexion de base de données sur la console Oracle Cloud Infrastructure. Chaque chaîne de connexion répertoriée dans la colonne Chaîne de connexion comprend une entrée service_name avec la chaîne de connexion du service correspondant. Pour plus d'informations, reportez-vous à Affichage des chaînes de connexion pour une instance Autonomous Database.

  • Interrogez la vue V$SERVICES. Exemple :

    SELECT name FROM V$SERVICES;

Lorsque vous indiquez une connexion avec une connectivité hétérogène gérée par Oracle à l'aide du paramètre gateway_params, service_name est le nom de la base de données autre qu'Oracle.

ssl_server_cert_dn

Valeur de nom distinctif trouvée dans le certificat de serveur.

La connectivité hétérogène gérée par Oracle est préconfigurée avec un portefeuille qui contient la plupart des certificats SSL intermédiaires et racine sécurisés les plus courants. La valeur ssl_server_cert_dn doit être NULL lorsque vous indiquez le paramètre gateway_params ou que vous n'incluez pas le paramètre ssl_server_cert_dn (la valeur par défaut est NULL).

Lien d'adresse publique vers une cible Autonomous Database sans portefeuille :

Pour vous connecter à une cible Autonomous Database sur une adresse publique sans portefeuille (TLS), procédez comme suit :

  • Le paramètre directory_name doit être défini sur NULL.
  • Le paramètre ssl_server_cert_dn doit être défini sur NULL ou ne pas inclure ce paramètre (la valeur par défaut est NULL).

Lien d'adresse privée sans portefeuille :

Pour vous connecter à Oracle Database sur une adresse privée sans portefeuille, procédez comme suit :

  • La base de données cible doit se trouver sur une adresse privée.
  • Le paramètre directory_name doit être défini sur NULL.
  • Le paramètre ssl_server_cert_dn doit être défini sur NULL ou ne pas inclure ce paramètre (la valeur par défaut est NULL).
  • Le paramètre private_target doit être défini sur TRUE.
credential_name

Nom d'informations d'identification stockées, créées avec DBMS_CLOUD.CREATE_CREDENTIAL. Il s'agit des informations d'identification permettant d'accéder à la base de données cible.

directory_name

Répertoire du fichier cwallet.sso. La valeur par défaut de ce paramètre est data_pump_dir.

La connectivité hétérogène gérée par Oracle est préconfigurée avec un portefeuille qui contient la plupart des certificats SSL intermédiaires et racine sécurisés les plus courants. Le paramètre directory_name n'est pas requis lorsque vous indiquez le paramètre gateway_params.

Lien d'adresse publique vers une cible Autonomous Database sans portefeuille :

Pour vous connecter à une instance Autonomous Database sur une adresse publique sans portefeuille (TLS), procédez comme suit :

  • Le paramètre directory_name doit être défini sur NULL.
  • Le paramètre ssl_server_cert_dn doit être défini sur NULL ou ne pas inclure ce paramètre (la valeur par défaut est NULL).

En outre, pour se connecter à une instance Autonomous Database avec TCP, le paramètre ssl_server_cert_dn doit être NULL ou ne pas inclure ce paramètre (la valeur par défaut est NULL).

Lien d'adresse privée sans portefeuille :

Pour vous connecter à une base de données Oracle Database cible sur une adresse privée sans portefeuille, procédez comme suit :

  • La base de données cible doit se trouver sur une adresse privée.
  • Le paramètre directory_name doit être défini sur NULL.
  • Le paramètre ssl_server_cert_dn doit être défini sur NULL ou ne pas inclure ce paramètre (la valeur par défaut est NULL).
  • Le paramètre private_target doit être défini sur TRUE.
gateway_link

Indique si le lien de base de données est créé vers une autre base de données Oracle ou vers une passerelle de base de données Oracle.

Si gateway_link est défini sur FALSE, cela indique un lien de base de données vers une autre instance Autonomous Database ou une autre base de données Oracle.

Si gateway_link est défini sur TRUE, cela indique un lien de base de données vers un système autre qu'Oracle. Un descripteur de connexion est ainsi créé dans la définition du lien de base de données, indiquant (HS=OK).

Lorsque gateway_link est défini sur TRUE et que gateway_params est défini sur NULL, cela indique un lien de base de données vers une passerelle Oracle gérée par le client.

La valeur par défaut de ce paramètre est FALSE.

public_link

Indique si le lien de base de données est créé en tant que lien de base de données public.

Pour exécuter DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK avec ce paramètre défini sur TRUE, l'utilisateur appelant la procédure doit disposer du privilège EXECUTE sur les informations d'identification associées au lien de base de données public et du privilège système CREATE PUBLIC DATABASE LINK. Le privilège EXECUTE sur les informations d'identification peut être accordé par l'utilisateur ADMIN ou par le propriétaire des informations d'identification.

La valeur par défaut de ce paramètre est FALSE.

private_target

Lorsqu'un lien de base de données accède à un nom d'hôte qui doit être résolu dans le serveur DNS d'un réseau cloud virtuel, indiquez le paramètre private_target avec la valeur TRUE.

Lorsque private_target a la valeur TRUE, le paramètre hostname doit être un nom d'hôte unique (sur une adresse privée, à l'aide d'une adresse IP, d'une adresse IP SCAN ou d'un nom d'hôte SCAN non pris en charge).

La valeur par défaut de ce paramètre est FALSE.

gateway_params

db_type Ce paramètre indique le type de base de données cible pour la connectivité hétérogène gérée par Oracle afin de se connecter à des bases de données non Oracle. La valeur db_type est l'une des suivantes :

  • awsredshift
  • azure
  • db2
  • google_analytics
  • google_bigquery

    * Reportez-vous aux notes d'utilisation pour obtenir des informations supplémentaires prises en charge sur gateway_params lorsque db_type est google_bigquery.

  • hive

    * Reportez-vous aux notes d'utilisation pour obtenir des informations supplémentaires prises en charge sur gateway_params lorsque db_type est hive.

  • mongodb
  • mysql
  • postgres
  • salesforce

    * Reportez-vous aux notes d'utilisation pour obtenir des informations supplémentaires prises en charge sur gateway_params lorsque db_type est salesforce.

  • servicenow

    * Reportez-vous aux notes d'utilisation pour obtenir des informations supplémentaires prises en charge sur gateway_params lorsque db_type est servicenow.

  • snowflake

    * Reportez-vous aux notes d'utilisation pour obtenir des informations supplémentaires prises en charge sur gateway_params lorsque db_type est snowflake.

  • NULL

    Lorsque gateway_params est défini sur NULL et que gateway_link est défini sur TRUE, cela indique un lien de base de données vers une passerelle Oracle gérée par le client.

Indiquez le paramètre avec le formulaire json_object.

Exemple :

gateway_params => json_object('db_type' value 'awsredshift')

Lorsque gateway_params est NULL et private_target est TRUE, si directory_name est NULL, un lien de base de données basé sur TCP est créé.

Lorsque gateway_params est NULL et private_target est TRUE, si directory_name est NULL, un lien de base de données basé sur TCPS est créé.

Remarques sur l'utilisation

  • Lorsque vous indiquez le paramètre gateway_params, pour certaines valeurs db_type, des paramètres gateway_params supplémentaires sont pris en charge :

    db_type Valeurs gateway_params supplémentaires
    google_analytics

    Lorsque la valeur db_type est google_analytics, les informations d'identification que vous indiquez doivent être des informations d'identification Google OAuth (gcp_oauth2) Pour plus d'informations, reportez-vous à Procédure CREATE_CREDENTIAL).

    google_bigquery

    Lorsque la valeur db_type est google_bigquery, les informations d'identification que vous indiquez doivent être des informations d'identification Google OAuth (gcp_oauth2) Pour plus d'informations, reportez-vous à Procédure CREATE_CREDENTIAL).

    Lorsque db_type a la valeur google_bigquery, le paramètre project est valide. Ce paramètre indique le nom de projet pour google_bigquery et est obligatoire.

    Le nom de table que vous indiquez lorsque vous utilisez SELECT avec Google BigQuery doit être entre guillemets. Exemple :

    SELECT * FROM "sales"@GOOGLE_BIGQUERY_LINK
    hive

    Lorsque db_type a la valeur hive, le paramètre http_path est valide. Ce paramètre indique la valeur HttpPath, si nécessaire, pour la connexion à l'instance Hive.

    salesforce

    Lorsque la valeur db_type est salesforce, le paramètre security_token est valide. Un jeton de sécurité est un code alphanumérique sensible à la casse. Vous devez fournir une valeur security_token pour accéder à Salesforce. Exemple :

    gateway_params => JSON_OBJECT(
         'db_type' value 'salesforce',
         'security_token' value 'security_token_value' )

    Pour plus d'informations, reportez-vous à Réinitialisation du jeton de sécurité.

    servicenow

    Pour vous connecter à ServiceNow et obtenir des données, vous devez fournir les paramètres de passerelle directory_name et file_name. Ces paramètres spécifient un fichier de modèle (fichier de configuration REST) qui met en correspondance la réponse JSON avec le modèle relationnel. Le fichier de modèle indique les adresses, le mapping de table et le code de réponse HTTP pour le traitement de la réponse JSON. Pour plus d'informations, reportez-vous aux sections Syntaxe des fichiers de modèle et Exemple de fichier de modèle.

    Lorsque vous utilisez le paramètre gateway_params avec db_type servicenow, deux options sont prises en charge :

    • Authentification de base : vous devez fournir le paramètre gateway_params db_type avec la valeur 'servicenow', et fournir les paramètres directory_name et file_name avec les informations d'identification de type nom utilisateur/mot de passe.

    • Authentification OAuth 2.0 : vous devez fournir au paramètre gateway_params db_type la valeur 'servicenow', ainsi que les paramètres directory_name, file_name et token_uri, ainsi que les informations d'identification de type OAuth.

    Le paramètre directory_name indique le répertoire avec le fichier de configuration REST ServiceNow. Vous pouvez créer ce répertoire comme suit :

    create or replace directory servicenow_dir as 'SERVICENOW_DIR';

    Obtenez et téléchargez le fichier de configuration REST ServiceNow vers le répertoire indiqué. Exemple :

    exec DBMS_CLOUD.get_object('servicenow_dir_cred',
         'https://objectstorage.<...>/servicenow.rest','SERVICENOW_DIR');

    Définissez la valeur file_name sur le nom du fichier de configuration REST téléchargé, "servicenow.rest".

    Vous pouvez ensuite utiliser le fichier de configuration REST ServiceNow avec l'authentification de base ou OAuth2.0.

    snowflake

    Lorsque la valeur db_type est SNOWFLAKE, les paramètres facultatifs role, schema et warehouse sont valides. Ces valeurs indiquent une valeur de schéma, de rôle ou d'entrepôt différente de la valeur par défaut. Exemple :

    gateway_params => JSON_OBJECT(
         'db_type' value 'snowflake',
         'role' value 'ADMIN',
         'schema' value 'PUBLIC',
         'warehouse' value 'TEST' )
  • Lorsque vous utilisez le paramètre private_target, les liens de base de données d'Autonomous Database vers un service de base de données situé sur une adresse privée ne sont pris en charge que dans les régions commerciales et les régions US Government.

    Cette fonctionnalité est activée par défaut dans toutes les régions commerciales.

    Cette fonctionnalité est activée par défaut dans les régions US Government pour les bases de données nouvellement provisionnées.

    Pour les bases de données US Government existantes situées sur une adresse privée, si vous voulez créer des liens de base de données d'une instance Autonomous Database vers une cible dans une région US Government, enregistrez une demande de service auprès du support technique Oracle Cloud et demandez l'activation de l'adresse privée dans la fonctionnalité de liaison de base de données des régions gouvernementales.

    Les régions US Government sont les suivantes :

  • Lors de la connexion à une base de données autre qu'Oracle, la liaison de base de données est prise en charge uniquement si la base de données cible est accessible via une adresse IP publique ou un nom d'hôte public.
  • Pour exécuter DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK avec un utilisateur autre qu'ADMIN, vous devez accorder à cet utilisateur les privilèges EXECUTE et CREATE DATABASE LINK.Par exemple, exécutez la commande suivante en tant qu'ADMIN pour accorder des privilèges à atpc_user :

    GRANT EXECUTE ON DBMS_CLOUD_ADMIN TO atpc_user;
    GRANT CREATE DATABASE LINK TO atpc_user;

    De plus, lorsque vous créez un lien de base de données dans un schéma autre que le schéma ADMIN, par exemple dans un schéma nommé atpc_user, le schéma atpc_user doit posséder les informations d'identification que vous utilisez avec DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

  • Un seul fichier de portefeuille est valide par répertoire indiqué avec le paramètre directory_name. Vous ne pouvez télécharger qu'un seul fichier cwallet.sso à la fois vers le répertoire choisi pour les fichiers de portefeuille. Ainsi, avec un fichier cwallet.sso dans un répertoire, vous pouvez uniquement créer des liens de base de données vers les bases de données pour lesquelles le portefeuille de ce répertoire est valide. Pour utiliser plusieurs fichiers cwallet.sso avec des liens de base de données, vous devez créer des répertoires supplémentaires et placer chaque fichier cwallet.sso dans un répertoire différent.

    Pour plus d'informations sur la création de répertoires, reportez-vous à Création d'un répertoire dans Autonomous Database.

  • Pour créer un lien de base de données vers une instance Autonomous Database, définissez GLOBAL_NAMES sur FALSE sur la base de données source (autre qu'Autonomous Database).

    SQL> ALTER SYSTEM SET GLOBAL_NAMES = FALSE;
     
    System altered.
    
    SQL> SHOW PARAMETER GLOBAL_NAMES
    NAME                     TYPE        VALUE
    ----------------------   ----------- -----------
    global_names             boolean     FALSE
    
  • Lorsque le paramètre private_target est défini sur TRUE, le paramètre hostname indique un hôte privé dans le réseau cloud virtuel.

Exemples 

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

Le nom de table que vous indiquez lorsque vous utilisez SELECT avec Google BigQuery ou Google Analytics doit être entre guillemets. Exemple :

SELECT * FROM "sales"@GOOGLE_BIGQUERY_LINK

Utilisez le paramètre rac_hostnames avec une base de données Oracle RAC cible sur une adresse privée.

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

Procédure DETACH_FILE_SYSTEM

Cette procédure détache un système de fichiers de la base de données.

La procédure DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM détache un système de fichiers de votre base de données. En outre, la procédure DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM supprime également les informations sur le système de fichiers de la vue DBA_CLOUD_FILE_SYSTEMS.

Syntaxe

DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM(
    file_system_name         IN VARCHAR2
);

Paramètres

Paramètre Description

file_system_name

Indique le nom du système de fichiers.

Ce paramètre est obligatoire.

Par exemple :

BEGIN
   DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM (
    file_system_name      => 'FSS'                                       
  );                                                                          
END;                                                                          
/     

Remarques sur l'utilisation

  • Pour exécuter cette procédure, vous devez être connecté en tant qu'utilisateur ADMIN ou disposer du privilège EXECUTE sur DBMS_CLOUD_ADMIN.

  • Vous devez disposer du privilège WRITE sur l'objet de répertoire dans la base de données pour détacher un système de fichiers d'un répertoire à l'aide de la procédure DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM.

  • La procédure DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM peut uniquement détacher un service File Storage privé dans les bases de données pour lesquelles les adresses privées sont activées.

    Pour plus d'informations, reportez-vous à Service OCI File Storage et à Configuration d'un système de développement pour accéder à la base de données.

  • La procédure DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM recherche le nom d'hôte du système de fichiers réseau sur le réseau cloud virtuel (VCN) du client. L'erreur "ORA-20000: Mounting NFS fails" est renvoyée si le nom d'hôte spécifié dans l'emplacement ne peut pas être localisé.

Procédure DISABLE_EXTERNAL_AUTHENTICATION

Désactive l'authentification des utilisateurs avec des modèles d'authentification externes pour la base de données.

Syntaxe

DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;

Exceptions

Exception Erreur Description
invalid_ext_auth ORA-20004

Reportez-vous au message associé pour obtenir une explication détaillée.

Exemple

BEGIN 
   DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
END;
/

PL/SQL procedure successfully completed.

Procédure DROP_DATABASE_LINK

Cette procédure supprime un lien de base de données.

Syntaxe

DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK(
        db_link_name      IN VARCHAR2,
        public_link       IN BOOLEAN DEFAULT);

Paramètres

Paramètre Description

db_link_name

Nom du lien de base de données à supprimer.

public_link

Pour exécuter DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK avec public_link défini sur TRUE, vous devez disposer du privilège système DROP PUBLIC DATABASE LINK.

La valeur par défaut de ce paramètre est FALSE.

Exemple

BEGIN
    DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK(
        db_link_name => 'SALESLINK' );
END;
/

Remarques sur l'utilisation

Après avoir utilisé un lien de base de données et exécuté DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK, pour assurer la sécurité de votre base de données Oracle, enlevez les fichiers de portefeuille stockés. Exemple :

  • Enlevez le fichier de portefeuille dans la banque d'objets.

  • Utilisez DBMS_CLOUD.DELETE_FILE pour enlever le fichier de portefeuille du répertoire data_pump_dir ou du répertoire défini par l'utilisateur dans lequel le fichier de portefeuille a été téléchargé.

Procédure ENABLE_EXTERNAL_AUTHENTICATION

Permettez aux utilisateurs de se connecter à la base de données avec des modèles d'authentification externes.

Syntaxe

DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
   type         IN VARCHAR2,
   force        IN BOOLEAN DEFAULT FALSE,
   params       IN CLOB DEFAULT NULL
);

Paramètre

Paramètre Description

type

Indique le type d'authentification externe. Valeurs valides : ou .

  • 'OCI_IAM'
  • 'AZURE_AD'
  • 'CMU'
  • 'KERBEROS'

force

(Facultatif) Remplace un modèle d'authentification externe actuellement activé. Les valeurs valides sont TRUE et FALSE.

La valeur par défaut est FALSE.

params

Chaîne JSON fournissant des paramètres supplémentaires pour l'authentification externe.

Paramètres CMU :

  • location_uri : indique l'URI de stockage cloud du bucket dans lequel les fichiers requis pour la fonctionnalité Utilisateurs gérés centralement sont stockés.

    Si vous indiquez le paramètre location_uri, un objet de répertoire de nom fixe CMU_WALLET_DIR est créé dans la base de données au chemin cmu_wallet pour enregistrer les fichiers de configuration de la fonctionnalité Utilisateurs gérés centralement. Dans ce cas, vous n'avez pas besoin d'indiquer le paramètre directory_name.

  • credential_name : indique les informations d'identification utilisées pour télécharger les fichiers de configuration de la fonctionnalité Utilisateurs gérés centralement de la banque d'objets vers l'objet de répertoire.

    La valeur par défaut est NULL, ce qui vous permet de fournir une URL publique, préauthentifiée ou présignée pour le bucket ou le sous-dossier de la banque d'objets.

  • directory_name : indique le nom du répertoire dans lequel les fichiers de configuration requis pour la fonctionnalité Utilisateurs gérés centralement sont stockés. Si directory_name est indiqué, vous devez copier les fichiers de configuration de la fonctionnalité Utilisateurs gérés centralement dsi.ora et cwallet.sso dans cet objet de répertoire.

Paramètres KERBEROS :

  • location_uri : indique l'URI de stockage cloud du bucket dans lequel les fichiers requis pour Kerberos sont stockés.

    Si vous indiquez le paramètre location_uri, un objet de répertoire de nom fixe KERBEROS_DIR est créé dans la base de données pour enregistrer les fichiers de configuration Kerberos. Dans ce cas, vous n'avez pas besoin d'indiquer le paramètre directory_name.

  • credential_name : indique les informations d'identification utilisées pour télécharger les fichiers de configuration Kerberos de l'emplacement de la banque d'objets vers l'objet de répertoire.

    La valeur par défaut est NULL, ce qui vous permet de fournir une URL publique, préauthentifiée ou présignée pour le bucket ou le sous-dossier de la banque d'objets.

  • directory_name : indique le nom du répertoire dans lequel les fichiers requis pour Kerberos sont stockés. Si directory_name est indiqué, vous devez copier les fichiers de configuration Kerberos dans cet objet de répertoire.
  • kerberos_service_name : indique un nom à utiliser comme nom de service Kerberos. Ce paramètre est facultatif.

    Valeur par défaut : si aucune valeur n'est indiquée, la valeur kerberos_service_name est définie sur le GUID de l'instance Autonomous Database.

Paramètres AZURE_AD :

  • tenant_id : ID de locataire du compte Azure. L'ID de locataire indique l'inscription d'application Azure AD de l'instance Autonomous Database.
  • application_id : ID d'application Azure créé dans Azure AD permettant d'affecter des rôles/mises en correspondance de schéma pour l'authentification externe dans l'instance Autonomous Database.
  • application_id_uri : URI unique affecté à l'application Azure.

    Il s'agit de l'identificateur de l'instance Autonomous Database. Ce doit être un nom qualifié de domaine (il prend en charge l'accès aux ressources interlocations).

    La longueur maximale pour ce paramètre est de 256 caractères.

Exceptions

Exception Erreur Description
invalid_ext_auth ORA-20004

Reportez-vous au message associé pour obtenir une explication détaillée.

Remarques sur l'utilisation

  • Avec le type OCI_IAM, si le principal de ressource n'est pas activé sur l'instance Autonomous Database, cette routine active le principal de ressource avec DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL.

  • Cette procédure définit les paramètres système IDENTITY_PROVIDER_TYPE et IDENTITY_PROVIDER_CONFIG sur les utilisateurs requis pour accéder à l'instance avec l'authentification et l'autorisation Oracle Cloud Infrastructure Identity and Access Management.

Exemples 

Activation de l'authentification OCI_IAM

BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
     type => 'OCI_IAM',
     force=> TRUE );
END;
/

PL/SQL procedure successfully completed.

Activation de l'authentification CMU pour Microsoft Active Directory

Transmettez un nom de répertoire contenant les fichiers de configuration de la fonctionnalité Utilisateurs gérés centralement via l'argument JSON params.

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.

Transmettez un URI d'emplacement pointant vers un emplacement Object Storage contenant les fichiers de configuration de la fonctionnalité Utilisateurs gérés centralement via l'argument JSON params.

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.

Activation de l'authentification 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.

Activation de l'authentification Kerberos

Transmettez un nom de répertoire contenant les fichiers de configuration Kerberos via l'argument JSON params.

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.

Vous transmettez un URI d'emplacement pointant vers un emplacement Object Storage qui contient des fichiers de configuration Kerberos via l'argument JSON params :

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

Vous transmettez un nom de service avec kerberos_service_name dans l'argument JSON params :

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

Une fois que Kerberos est activé sur votre instance Autonomous Database, utilisez la requête suivante pour afficher le nom de service Kerberos :

SELECT SYS_CONTEXT('USERENV','KERBEROS_SERVICE_NAME') FROM DUAL;

Exceptions DBMS_CLOUD_ADMIN

Le tableau suivant décrit les exceptions pour DBMS_CLOUD_ADMIN.

Exception d'enregistrement Description
invalid_service 20 001 Le service indiqué n'est pas valide.
service_not_exist 20 002 Le service indiqué n'existe pas.
default_service 20 003 Le service indiqué ne peut pas être modifié.
invalid_char_set 20 029 Condition préalable manquante ou jeu de caractères (national) non valide.
invalid_enc_key_attr 20 030 Un argument est manquant ou n'est pas valide pour la gestion des clés.
Already Using Oracle Managed Key 0

La base de données utilise déjà une clé gérée par Oracle. Vous essayez d'appeler la procédure alors que vous utilisez déjà une clé gérée par Oracle.

Argument Provided for the procedure ORA-0000

Un argument est indiqué pour la procédure. Message d'erreur attendu : No arguments required for cette procédure.