Créer des liens de base de données TLS d'une base de données Autonomous Database vers une autre base de données Autonomous Database

Vous pouvez créer des liens de base de données TLS à partir d'une base de données Autonomous Database sur une infrastructure Exadata dédiée vers une base de données Autonomous Database cible située sur un point d'extrémité public.

Rubriques connexes

Créer des liens de base de données TLS unidirectionnels d'une base de données Autonomous Database vers une autre base de données Autonomous Database

Vous pouvez créer des liens de base de données TLS unidirectionnels à partir d'une base de données Autonomous Database sur une infrastructure Exadata dédiée vers une base de données Autonomous Database accessible publiquement.

Pour créer des liens de base de données vers une cible publique, la base de données cible doit être accessible. Certaines bases de données, notamment les bases de données autonomes, peuvent limiter l'accès (par exemple, à l'aide de listes de contrôle d'accès). Assurez-vous d'activer votre base de données cible pour permettre l'accès à partir de votre base de données source pour que le lien de base de données fonctionne. Si vous limitez l'accès aux listes de contrôle d'accès, vous pouvez rechercher l'adresse IP sortante de votre base de données Autonomous Database source et autoriser cette adresse IP à se connecter à la base de données cible. Lorsque la base de données cible est une autre base Autonomous Database, vous pouvez ajouter l'adresse IP sortante de la base de données source à la liste de contrôle d'accès de la base de données cible.

Voir Obtenir des informations détaillées sur une location pour plus d'informations sur la recherche de l'adresse IP sortante.

Pour créer un lien de base de données vers une base de données Autonomous Database cible sans portefeuille (TLS) :

  1. Assurez-vous que les connexions TLS unidirectionnelles sont activées.

    Par défaut, les connexions TLS unidirectionnelles sont activées lorsque vous provisionnez une grappe de machines virtuelles autonome. Pour plus d'informations, voir Créer une grappe de machines virtuelles Exadata autonome.

    Note :

    Dans une infrastructure Autonomous Database sur une infrastructure Exadata dédiée, les connexions sans portefeuille fonctionnent pour le protocole TLS unidirectionnel en installant un certificat SSL personnalisé émis par une autorité de certification publique. Pour plus de détails, voir Préparer les connexions sans portefeuille TLS.
  2. Dans l'instance Autonomous Database où vous créez le lien de base de données, créez des données d'identification pour accéder à la base Autonomous Database cible. Les valeurs username et password que vous spécifiez avec DBMS_CLOUD.CREATE_CREDENTIAL correspondent aux données d'identification de la base de données cible (vous utilisez ces données d'identification pour créer le lien de base de données).

    Note :

    La spécification du paramètre credential_name est obligatoire.

    Par exemple :

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
            credential_name => 'DB_LINK_CRED',
            username => 'NICK',
            password => 'password' );
    END;
    /

    Les caractères du paramètre username doivent être des lettres majuscules.

    Cette opération stocke les données d'identification dans la base de données dans un format chiffré. Vous pouvez utiliser n'importe quel nom pour les données d'identification.

  3. Créer un lien de base de données vers l'instance Autonomous Database cible à l'aide de DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Par exemple :

    BEGIN
        DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
            db_link_name => 'SALESLINK', 
            hostname => 'adb.eu-frankfurt-1.oraclecloud.com', 
            port => '2484',
            service_name => 'example_medium.atpc.example.oraclecloud.com',
            credential_name => 'DB_LINK_CRED',
            directory_name => NULL);
    END;
    /

    Pour créer un lien de base de données avec DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK vers une Autonomous Database cible sur un point d'extrémité public à l'aide d'une connexion TCP sécurisée sans portefeuille, le paramètre directory_name doit être NULL.

    La valeur du paramètre port doit être réglée à 2484 pour les connexions TLS. Toutefois, si un numéro de port de module d'écoute SCAN différent a été choisi lors du provisionnement de la grappe de machines virtuelles autonome, vous devez utiliser ce numéro de port. Pour plus d'informations, voir Créer une grappe de machines virtuelles Exadata autonome.

    Le paramètre ssl_server_cert_dn peut être omis ou, s'il est inclus, spécifier une valeur NULL.

    Les utilisateurs autres qu'ADMIN ont besoin de privilèges pour exécuter DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

  4. Utilisez le lien de base de données que vous avez créé pour accéder aux données de la base de données cible.

    Par exemple :

    SELECT * FROM employees@SALESLINK;
                

Pour les données d'identification que vous créez à l'étape 1, les données d'identification de la base de données cible, si le mot de passe de l'utilisateur cible change, vous pouvez mettre à jour les données d'identification qui contiennent les données d'identification de l'utilisateur cible comme suit :

BEGIN
    DBMS_CLOUD.UPDATE_CREDENTIAL (
          credential_name => 'DB_LINK_CRED',
          attribute => 'PASSWORD',
          value => 'password' );
END;
/

password est le nouveau mot de passe.

Après cette opération, les liens de base de données existants qui utilisent ces données d'identification continuent de fonctionner sans qu'il soit nécessaire de les supprimer et de les créer.

Pour plus d'informations, voir :

Créer des liens de base de données mTLS à partir d'une base de données Autonomous Database vers une autre base de données Autonomous Database

Vous pouvez créer des liens de base de données mTLS à partir d'une base de données Autonomous Database sur une infrastructure Exadata dédiée vers une base de données Autonomous Database accessible publiquement.

Pour créer des liens de base de données vers une cible publique, la base de données cible doit être accessible. Certaines bases de données, notamment les bases de données autonomes, peuvent limiter l'accès (par exemple, à l'aide de listes de contrôle d'accès). Assurez-vous d'activer votre base de données cible pour permettre l'accès à partir de votre base de données source pour que le lien de base de données fonctionne. Si vous limitez l'accès aux listes de contrôle d'accès, vous pouvez rechercher l'adresse IP sortante de votre base de données Autonomous Database source et autoriser cette adresse IP à se connecter à la base de données cible. Par exemple, si la base de données cible est une autre base de données autonome, vous pouvez ajouter l'adresse IP sortante de la base de données source à la liste de contrôle d'accès de la base de données cible.

Voir Obtenir des informations détaillées sur une location pour plus d'informations sur la recherche de l'adresse IP sortante.

Pour créer des liens de base de données vers une base de données Autonomous Database cible avec un portefeuille (mTLS) :

  1. Assurez-vous que les connexions mTLS sont activées.

    Par défaut, les connexions TLS unidirectionnelles sont activées pour une grappe de machines virtuelles autonome. Vous pouvez activer l'authentification TLS mutuelle (mTLS) en cochant la case Activer l'authentification TLS mutuelle (mTLS) lors du provisionnement de la grappe de machines virtuelles autonome. Pour plus d'informations, voir Créer une grappe de machines virtuelles Exadata autonome.

  2. Copiez le portefeuille de la base de données cible, cwallet.sso, contenant les certificats de la base de données cible, dans le magasin d'objets.

    Notez les points suivants pour le fichier de portefeuille :

    • Le fichier de portefeuille, ainsi que l'ID utilisateur et le mot de passe, permettent l'accès aux données d'Oracle Database cible. Conservez les fichiers de portefeuille dans un emplacement sécurisé. Partagez les fichiers de portefeuille uniquement avec les utilisateurs autorisés.

    • Ne renommez pas le fichier de portefeuille. Le fichier de portefeuille dans le stockage d'objets doit être nommé cwallet.sso.

  3. Créer des données d'identification pour accéder au magasin d'objets où vous stockez le fichier de portefeuille cwallet.sso. Voir Procédure CREATE_CREDENTIAL pour plus d'informations sur les paramètres de nom d'utilisateur et de mot de passe pour les différents services de stockage d'objets.
  4. Créez un répertoire dans la base de données autonome pour le fichier de portefeuille cwallet.sso.

    Par exemple :

    CREATE DIRECTORY dblink_wallet_dir AS 'directory_path_of_your_choice';
                

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

  5. Utilisez DBMS_CLOUD.GET_OBJECT pour charger le portefeuille de la base de données cible dans le répertoire que vous avez créé à l'étape précédente, DBLINK_WALLET_DIR.

    Par exemple :

    BEGIN 
        DBMS_CLOUD.GET_OBJECT(
            credential_name => 'DEF_CRED_NAME',
            object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/cwallet.sso',
            directory_name => 'DBLINK_WALLET_DIR'); 
    END;
    /

    Dans cet exemple, namespace-string est l'espace de noms du stockage d'objets pour Oracle Cloud Infrastructure et bucketname est le nom du seau. Pour plus d'informations, voir Présentation des espaces de noms du stockage d'objets.

  6. Dans l'instance Autonomous Database, créez des données d'identification pour accéder à la base de données cible. Les valeurs username et password que vous spécifiez avec DBMS_CLOUD.CREATE_CREDENTIAL correspondent aux données d'identification de la base de données cible que vous utilisez pour créer le lien de base de données.

    Note :

    La spécification du paramètre credential_name est obligatoire.

    Par exemple :

    BEGIN
        DBMS_CLOUD.CREATE_CREDENTIAL(
            credential_name => 'DB_LINK_CRED',
            username => 'NICK',
            password => 'password');
    END;
    /

    Les caractères du paramètre username doivent être des lettres majuscules.

    Cette opération stocke les données d'identification dans la base de données dans un format chiffré. Vous pouvez utiliser n'importe quel nom pour les données d'identification.

  7. Créez le lien de base de données vers la base de données cible à l'aide de DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Par exemple :

    BEGIN
        DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
            db_link_name => 'SALESLINK',
            hostname => 'adb.eu-frankfurt-1.oraclecloud.com', 
            port => '2484',
            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',
            directory_name => 'DBLINK_WALLET_DIR');
    END;
    /

    Les utilisateurs autres qu'ADMIN ont besoin de privilèges pour exécuter DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    La valeur du paramètre port doit être réglée à 2484 pour les connexions TLS. Toutefois, si un numéro de port de module d'écoute SCAN différent a été choisi lors du provisionnement de la grappe de machines virtuelles autonome, vous devez utiliser ce numéro de port. Pour plus d'informations, voir Créer une grappe de machines virtuelles Exadata autonome.

    Si le fichier de portefeuille dans le répertoire spécifié avec directory_name n'est pas cwallet.sso, la procédure signale une erreur telle que : ORA-28759: failure to open file.

  8. Utilisez le lien de base de données que vous avez créé pour accéder aux données de la base de données cible.

    Par exemple :

    SELECT * FROM employees@SALESLINK;
                

Pour les données d'identification que vous créez à l'étape 5, les données d'identification de la base de données cible, si le mot de passe de l'utilisateur cible change, vous pouvez mettre à jour les données d'identification qui contiennent les données d'identification de l'utilisateur cible comme suit :

BEGIN
    DBMS_CLOUD.UPDATE_CREDENTIAL (
        credential_name => 'DB_LINK_CRED',
        attribute => 'PASSWORD',
        value => 'password' );
END;
/

password est le nouveau mot de passe.

Après cette opération, les liens de base de données existants qui utilisent ces données d'identification continuent de fonctionner sans qu'il soit nécessaire de les supprimer et de les créer.

Pour plus d'informations, voir :

Notes sur les liens de base de données avec une cible qui est une Autonomous Database

Fournit des notes sur la création de liens de base de données vers une cible qui est une autre Autonomous Database.

Notes sur les liens de base de données vers une autre Autonomous Database :

  • Un seul fichier de portefeuille est valide par répertoire pour une utilisation avec des liens de base de données. Vous ne pouvez charger qu'un seul fichier cwallet.sso à la fois dans le répertoire choisi pour les fichiers de portefeuille (par exemple DBLINK_WALLET_DIR). Autrement dit, lorsque cwallet.sso se trouve dans DBLINK_WALLET_DIR, 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. Lorsque vous créez des liens de base de données avec DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK, spécifiez le répertoire qui contient le portefeuille à l'aide du paramètre directory_name.

    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 lister les liens de base de données, utilisez la vue ALL_DB_LINKS. Pour plus d'informations, voir ALL_DB_LINKS dans Informations de référence sur les bases de données Oracle Database 19c ou Informations de référence sur les bases de données Oracle Database 23ai.

  • Le fichier de portefeuille, ainsi que l'ID utilisateur et le mot de passe, permettent l'accès aux données dans Autonomous Database cible. Conservez les fichiers de portefeuille dans un emplacement sécurisé. Partagez les fichiers de portefeuille uniquement avec les utilisateurs autorisés.

  • 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'.