Ensemble DBMS_CLOUD_ADMIN

Cette section couvre les 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. Il existe des options pour créer un lien de base de données vers une autre instance Autonomous Database, vers une base Oracle Database qui n'est pas une base Autonomous Database ou vers une base non Oracle Database à l'aide d'une 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 de base de données autonome.

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 de se connecter à la base de données autonome à l'aide du modèle d'authentification externe spécifié.

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 associe un système de fichiers dans votre base de données et stocke des 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

Spécifie 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 est constituée d'un nom de domaine complet et d'un chemin d'accès au fichier sous la forme : FQDN:file_path.

Par exemple :

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

    Pour le service de stockage de fichiers pour Oracle Cloud Infrastructure, définissez le nom de domaine complet dans Afficher les options avancées lorsque vous créez un système de fichiers. Voir Création de systèmes de fichiers pour plus d'informations.

  • Chemin du fichier : /results

Ce paramètre est obligatoire.

directory_name

Indique le nom du répertoire du système de fichiers joint. Le répertoire doit exister.

Ce paramètre est obligatoire.

description

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

params

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

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

    Valeur par défaut : 3

Exemples :

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

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

Notes d'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 ne peut attacher un service de stockage de fichiers privé que dans les bases de données pour lesquelles les points d'extrémité privés sont activés.

    Pour plus d'informations, voir Service de stockage de fichiers OCI et Configurer 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 en nuage virtuel (VCN) du client. L'erreur "ORA-20000: Mounting NFS fails" est retournée si le nom d'hôte spécifié dans l'emplacement ne peut pas être localisé.

  • Le service de stockage de fichiers pour Oracle Cloud Infrastructure utilise NFSv3 pour le partage

  • Si vous l'associez à des systèmes autres que le service de stockage de fichiers pour Oracle Cloud Infrastructure, la procédure prend en charge NFSv3 et NFSv4

  • Si vous avez un serveur NFS attaché qui utilise NFSv3 et que la version NFS est mise à jour à 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 réglé à 4). Cette opération associe NFS au protocole de mise en correspondance afin qu'Autonomous Database puisse accéder au serveur NFSv4. Sans le détachement, puis le rattachement, le serveur NFS sera inaccessible et vous verrez peut-être 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 à l'aide de la connectivité hétérogène gérée par Oracle, où le lien est vers une base de données non 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 à partir d'une base Autonomous Database sur un point d'extrémité privé vers une base de données Oracle RAC cible. Dans ce cas, vous utilisez le paramètre rac_hostnames pour spécifier les noms d'hôte d'un ou de plusieurs 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 de la base de données cible.

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

Lorsque vous spécifiez une connexion avec la connectivité hétérogène gérée par Oracle en fournissant le paramètre gateway_params, notez les points suivants :

  • 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 de db_type est snowflake, hostname est l'identificateur de compte Snowflake. Pour trouver l'identificateur de votre compte Snowflake, voir Formats d'identificateur de compte par plate-forme en nuage et région.

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 de balayage de la base de données Autonomous Database dédiée cible en tant que paramètre 'hostname'.

rac_hostnames

Indique les noms d'hôte de la base de données Oracle RAC cible. La valeur est un tableau JSON qui indique un ou plusieurs 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 dans JSON, séparés par un ",". Par 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 spécifier un ou plusieurs noms d'hôte avec DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK. Vous pouvez ainsi 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 spécifiez une liste de noms d'hôte dans le paramètre rac_hostnames, CREATE_DATABASE_LINK utilise tous les noms d'hôte spécifiés comme adresses dans la chaîne de connexion. Si l'un des hôtes spécifiés n'est pas disponible dans 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 spécifiez une connexion avec la 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 de db_type :

  • awsredshift : Utilisez le port 5439
  • azure : Utilisez le port 1433
  • db2 : Utilisez le port 2500 pour les versions Db2 >= 11.5.6
  • db2 : Utilisez le port 5000 pour les versions 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 de la base de données à lier. Pour une base de données autonome cible, recherchez le nom du service à l'aide de l'une des méthodes suivantes :

  • Recherchez dans le fichier tnsnames.ora inclus dans le fichier wallet.zip que vous téléchargez à partir d'une base de données autonome pour votre connexion.

  • Cliquez sur Connexion à la base de données dans la console Oracle Cloud Infrastructure. Chaque chaîne de connexion listé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, voir Voir les chaînes de connexion pour une base de données Autonomous Database.

  • Interrogez la vue V$SERVICES. Par exemple :

    SELECT name FROM V$SERVICES;

Lorsque vous spécifiez une connexion avec la 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 non Oracle.

ssl_server_cert_dn

Valeur de nom distinctif trouvée dans le certificat du 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 racines et intermédiaires approuvés courants. La valeur de ssl_server_cert_dn doit être NULL lorsque vous fournissez 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 de point d'extrémité public vers une cible Autonomous Database sans portefeuille :

Pour vous connecter à une cible Autonomous Database sur un point d'extrémité public sans portefeuille (TLS) :

  • Le paramètre directory_name doit être NULL.
  • 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 de point d'extrémité privé sans portefeuille :

Pour vous connecter à Oracle Database sur un point d'extrémité privé sans portefeuille :

  • La base de données cible doit se trouver sur un point d'extrémité privé.
  • Le paramètre directory_name doit être NULL.
  • Le paramètre ssl_server_cert_dn doit être NULL ou ne pas l'inclure (la valeur par défaut est NULL).
  • Le paramètre private_target doit être TRUE.
credential_name

Nom de données d'identification stockées créées avec DBMS_CLOUD.CREATE_CREDENTIAL. Il s'agit des données d'identification utilisées pour 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 racines et intermédiaires approuvés courants. Le paramètre directory_name n'est pas requis lorsque vous fournissez le paramètre gateway_params.

Lien de point d'extrémité public vers une cible Autonomous Database sans portefeuille :

Pour vous connecter à une base de données Autonomous Database sur un point d'extrémité public sans portefeuille (TLS) :

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

De plus, pour vous connecter à une base de données 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 de point d'extrémité privé sans portefeuille :

Pour vous connecter à une base de données Oracle Database cible sur un point d'extrémité privé sans portefeuille :

  • La base de données cible doit se trouver sur un point d'extrémité privé.
  • Le paramètre directory_name doit être NULL.
  • Le paramètre ssl_server_cert_dn doit être NULL ou ne pas inclure ce paramètre (la valeur par défaut est NULL).
  • Le paramètre private_target doit être 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 Oracle Database.

Si gateway_link est réglé à FALSE, cela indique un lien de base de données vers une autre base de données autonome ou vers une autre base de données Oracle.

Si gateway_link est réglé à TRUE, cela indique un lien de base de données vers un système non Oracle. Un descripteur de connexion est créé dans la définition du lien de base de données qui spécifie (HS=OK).

Lorsque gateway_link est réglé à TRUE et que gateway_params est réglé à NULL, cela spécifie 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 réglé à TRUE, l'utilisateur appelant la procédure doit disposer du privilège EXECUTE sur les données d'identification associées au lien de base de données public et du privilège de système CREATE PUBLIC DATABASE LINK. Le privilège EXECUTE sur les données d'identification peut être accordé par l'utilisateur ADMIN ou par le responsable des données 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 un serveur DNS du VCN, spécifiez le paramètre private_target avec la valeur TRUE.

Lorsque private_target est TRUE, le paramètre hostname doit être un nom d'hôte unique (sur un point d'extrémité privé, à l'aide d'une adresse IP, d'une adresse IP SCAN ou d'un nom d'hôte SCAN n'est pas pris en charge).

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

gateway_params

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

  • awsredshift
  • azure
  • db2
  • google_analytics
  • google_bigquery

    * Voir les notes d'utilisation pour plus d'informations sur gateway_params prises en charge lorsque db_type est google_bigquery.

  • hive

    * Voir les notes d'utilisation pour plus d'informations sur gateway_params prises en charge lorsque db_type est hive.

  • mongodb
  • mysql
  • postgres
  • salesforce

    * Voir les notes d'utilisation pour plus d'informations sur gateway_params prises en charge lorsque db_type est salesforce.

  • servicenow

    * Voir les notes d'utilisation pour plus d'informations sur gateway_params prises en charge lorsque db_type est servicenow.

  • snowflake

    * Voir les notes d'utilisation pour plus d'informations sur gateway_params prises en charge lorsque db_type est snowflake.

  • NULL

    Lorsque gateway_params est NULL et que gateway_link est réglé à TRUE, cela spécifie un lien de base de données vers une passerelle Oracle gérée par le client.

Spécifiez le paramètre avec le formulaire json_object.

Par exemple :

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

Lorsque gateway_params est NULL et que 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 que private_target est TRUE, si directory_name est NULL, un lien de base de données basé sur TCPS est créé.

Notes d'utilisation

  • Lorsque vous spécifiez 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 db_type est google_analytics, les données d'identification que vous spécifiez doivent être des données d'identification Google OAuth (gcp_oauth2) Voir Procédure CREATE_CREDENTIAL pour plus d'informations.

    google_bigquery

    Lorsque db_type est google_bigquery, les données d'identification que vous spécifiez doivent être des données d'identification Google OAuth (gcp_oauth2) Voir Procédure CREATE_CREDENTIAL pour plus d'informations.

    Lorsque db_type a la valeur google_bigquery, le paramètre project est valide. Ce paramètre spécifie le nom du projet pour google_bigquery et est requis.

    Le nom de table que vous spécifiez lorsque vous utilisez SELECT avec Google BigQuery doit être entre guillemets. Par 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 spécifie la valeur HttpPath, si nécessaire, pour la connexion à l'instance Hive.

    salesforce

    Lorsque 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. Par exemple :

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

    Pour plus d'informations, voir Réinitialiser votre 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 mappe la réponse JSON au modèle relationnel. Le fichier de modèle spécifie les points d'extrémité, le mappage de table et le code de réponse HTTP pour le traitement de la réponse JSON. Pour plus d'informations, voir Syntaxe de fichier 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 données d'identification de type nom d'utilisateur/mot de passe.

    • Authentification OAuth 2.0 : Vous devez fournir le paramètre gateway_params db_type avec la valeur 'servicenow' et les paramètres directory_name, file_name et token_uri, ainsi que les données d'identification de type OAuth.

    Le paramètre directory_name spécifie 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 dans le répertoire spécifié. Par exemple :

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

    Réglez la valeur file_name au nom du fichier de configuration REST que vous avez 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 db_type a la valeur SNOWFLAKE, les paramètres facultatifs : role, schema et warehouse sont valides. Ces valeurs indiquent un schéma, un rôle ou une valeur d'entrepôt différent de la valeur par défaut. Par 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, notez que les liens de base de données d'une base Autonomous Database vers un service de base de données situé sur un point d'extrémité privé ne sont pris en charge que dans les régions commerciales et les régions gouvernementales des États-Unis.

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

    Cette fonction est activée par défaut dans les régions gouvernementales des États-Unis pour les nouvelles bases de données provisionnées.

    Pour les bases de données gouvernementales des États-Unis existantes situées sur un point d'extrémité privé, si vous voulez créer des liens entre une base de données autonome et une cible dans une région gouvernementale des États-Unis, vous pouvez soumettre une demande de service sur Oracle Cloud Support et demander l'activation de la fonction de liaison entre le point d'extrémité et les bases de données des régions gouvernementales.

    Les régions gouvernementales des États-Unis sont les suivantes :

  • Lors de la connexion à une base de données non Oracle, la création de liens de base de données n'est prise en charge que si la base de données cible est accessible au moyen d'une adresse IP publique ou d'un nom d'hôte public.
  • Pour exécuter DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK avec un utilisateur autre qu'ADMIN, vous devez accorder les privilèges EXECUTE et CREATE DATABASE LINK à cet utilisateur.Par exemple, exécutez la commande suivante en tant qu'administrateur pour accorder les 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 données d'identification que vous utilisez avec DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

  • Un seul fichier de portefeuille est valide par répertoire spécifié avec le paramètre directory_name. Vous ne pouvez charger qu'un seul fichier cwallet.sso à la fois dans le répertoire que vous choisissez pour les fichiers de portefeuille. Autrement dit, lorsque cwallet.sso se trouve 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.

    Voir Créer un répertoire dans la base de données autonome pour plus d'informations sur la création de répertoires.

  • Pour créer un lien de base de données vers une base de données autonome, réglez GLOBAL_NAMES à FALSE dans la base de données source (qui n'est pas une base de données autonome).

    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 réglé à TRUE, le paramètre hostname spécifie un hôte privé dans le VCN.

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 spécifiez lorsque vous utilisez SELECT avec Google BigQuery ou Google Analytics doit être entre guillemets. Par exemple :

SELECT * FROM "sales"@GOOGLE_BIGQUERY_LINK

Utilisez le paramètre rac_hostnames avec une base de données Oracle RAC cible sur un point d'extrémité privé.

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

Spécifie le nom du système de fichiers.

Ce paramètre est obligatoire.

Exemple :

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

Notes d'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 ne peut détacher un service de stockage de fichiers privé que dans les bases de données pour lesquelles les points d'extrémité privés sont activés.

    Pour plus d'informations, voir Service de stockage de fichiers OCI et Configurer 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 en nuage virtuel (VCN) du client. L'erreur "ORA-20000: Mounting NFS fails" est retourné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 à l'aide de modèles d'authentification externes pour la base de données.

Syntaxe

DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;

Exceptions

Exception Error Description
invalid_ext_auth ORA-20004

Consultez le message d'accompagnement 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 réglé à TRUE, vous devez disposer du privilège de 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;
/

Notes d'utilisation

Une fois que vous avez terminé d'utiliser un lien de base de données et que vous avez exécuté DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK, pour garantir la sécurité de votre base de données Oracle, supprimez tous les fichiers de portefeuille stockés. Par exemple :

  • Supprimez le fichier de portefeuille du magasin d'objets.

  • Utilisez DBMS_CLOUD.DELETE_FILE pour supprimer 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é chargé.

Procédure ENABLE_EXTERNAL_AUTHENTICATION

Permet aux utilisateurs de se connecter à la base de données à l'aide de 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 :

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

force

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

La valeur par défaut est FALSE.

params

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

Paramètres CMU :

  • location_uri : Spécifie l'URI de stockage en nuage du seau où sont stockés les fichiers requis pour CMU.

    Si vous spécifiez location_uri, un objet de répertoire à nom fixe CMU_WALLET_DIR est créé dans la base de données sous le chemin 'cmu_wallet' pour l'enregistrement des fichiers de configuration CMU. Dans ce cas, vous n'avez pas besoin de spécifier le paramètre directory_name.

  • credential_name : Spécifie les données d'identification utilisées pour télécharger les fichiers de configuration CMU du magasin 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 seau ou le sous-dossier du magasin d'objets.

  • directory_name : Indique le nom du répertoire dans lequel sont stockés les fichiers de configuration requis pour CMU. Si directory_name est fourni, vous devez copier les fichiers de configuration CMU dsi.ora et cwallet.sso dans cet objet de répertoire.

Paramètres KERBEROS :

  • location_uri : Spécifie l'URI de stockage en nuage pour le seau où sont stockés les fichiers requis pour Kerberos.

    Si vous spécifiez location_uri, un objet de répertoire à nom fixe KERBEROS_DIR est créé dans la base de données pour l'enregistrement des fichiers de configuration Kerberos. Dans ce cas, vous n'avez pas besoin de spécifier le paramètre directory_name.

  • credential_name : Spécifie les données d'identification utilisées pour télécharger les fichiers de configuration Kerberos du magasin 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 seau ou le sous-dossier du magasin d'objets.

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

    Valeur par défaut : Lorsqu'elle n'est pas spécifiée, la valeur kerberos_service_name est réglée au GUID de l'instance Autonomous Database.

Paramètres AZURE_AD :

  • tenant_id : ID locataire du compte Azure. L'ID locataire spécifie l'enregistrement de l'application Azure AD de l'instance de base de données autonome.
  • application_id : ID application Azure créé dans Azure AD pour affecter des mappages rôles/schéma pour l'authentification externe dans l'instance de base de données autonome.
  • application_id_uri : URL unique affectée à l'application Azure.

    Il s'agit de l'identificateur de l'instance de base de données autonome. Il doit s'agir d'un nom qualifié de domaine (prenant en charge l'accès aux ressources interlocations).

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

Exceptions

Exception Error Description
invalid_ext_auth ORA-20004

Consultez le message d'accompagnement pour obtenir une explication détaillée.

Notes d'utilisation

  • Avec le type OCI_IAM, si le principal de ressource n'est pas activé dans l'instance de base de données autonome, ce sous-programme active le principal de ressource avec DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL.

  • Cette procédure règle les paramètres de système IDENTITY_PROVIDER_TYPE et IDENTITY_PROVIDER_CONFIG aux utilisateurs requis pour accéder à l'instance avec l'authentification et l'autorisation du service de gestion des identités et des accès pour Oracle Cloud Infrastructure.

Exemples

Activer l'authentification OCI_IAM

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

PL/SQL procedure successfully completed.

Activer l'authentification CMU pour Microsoft Active Directory

Vous transmettez un nom de répertoire contenant les fichiers de configuration CMU au moyen de 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.

Vous transmettez un URI d'emplacement pointant vers un emplacement de stockage d'objets qui contient les fichiers de configuration CMU au moyen de 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.

Activer 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.

Activer l'authentification Kerberos

Vous transmettez un nom de répertoire qui contient les fichiers de configuration Kerberos au moyen de 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 de stockage d'objets qui contient des fichiers de configuration Kerberos au moyen de 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 Kerberos activé sur votre instance Autonomous Database, utilisez l'interrogation suivante pour voir le nom du service Kerberos :

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

DBMS_CLOUD_ADMIN Exceptions

Le tableau suivant décrit les exceptions pour DBMS_CLOUD_ADMIN.

Exception Code Description
invalid_service 20,001 Un service non valide a été indiqué.
service_not_exist 20,002 Un service spécifié n'existe pas.
default_service 20,003 Un service spécifié ne peut pas être modifié.
invalid_char_set 20,029 Condition manquante ou jeu de caractères non valide (national).
invalid_enc_key_attr 20,030 Argument manquant ou non 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 tentez d'appeler la procédure alors que vous utilisez déjà une clé gérée par Oracle.

Argument Provided for the procedure ORA-000

Un argument est fourni pour la procédure. Message d'erreur attendu : Aucun argument n'est requis pour cette procédure.