Création de liens de base de données d'"Autonomous Database" vers une base de données Autonomous Database accessible publiquement

Vous pouvez créer des liens de base de données à partir d'une instance Autonomous Database vers une instance Autonomous Database cible qui se trouve sur une adresse publique.

Pour plus d'informations, reportez-vous à Création d'un lien de base de données entre votre instance Autonomous Database et une instance Database Cloud Service.

Création de liens de base de données d'Autonomous Database vers une instance Autonomous Database accessible au public sans portefeuille (TLS)

Vous pouvez créer des liens de base de données à partir d'une instance Autonomous Database vers une instance Autonomous Database accessible publiquement sans portefeuille (TLS).

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, y compris les bases de données autonomes, peuvent limiter l'accès (par exemple, à l'aide de listes de contrôle d'accès). Veillez à activer la base de données cible pour autoriser l'accès à partir de la base de données source au fonctionnement du lien de base de données. Si vous limitez l'accès à l'aide de listes de contrôle d'accès (ACL), vous pouvez trouver l'adresse IP sortante de votre instance Autonomous Database source et autoriser cette adresse IP à se connecter à votre base de données cible. Lorsque la base de données cible est une autre instance Autonomous Database, vous pouvez ajouter l'adresse IP sortante de la base de données source à l'ACL de la base de données cible.

Pour plus d'informations sur la recherche de l'adresse IP sortante, reportez-vous à Obtention des détails de location.

Pour créer un lien de base de données vers une instance Autonomous Database cible sans portefeuille (TLS), procédez comme suit :

  1. Si vous ne l'avez pas encore fait, activez les connexions TLS sur votre instance Autonomous Database.
  2. Sur l'instance Autonomous Database dans laquelle vous créez le lien de base de données, créez des informations d'identification pour accéder à la base de données Autonomous Database cible. Les informations d'identification username et password que vous indiquez avec DBMS_CLOUD.CREATE_CREDENTIAL sont les informations d'identification de la base de données cible (vous utilisez ces informations d'identification pour créer le lien de base de données).
    Remarque

    Vous devez indiquer le paramètre credential_name.

    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 en majuscules.

    Remarque

    Vous pouvez utiliser des informations d'identification de clé secrète de coffre pour les informations d'identification de base de données cible dans un lien de base de données. Pour plus d'informations, reportez-vous à Utilisation des informations d'identification de clé secrète de coffre.

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

  3. Créez 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 => '1521',
            service_name => 'example_medium.adb.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 instance Autonomous Database cible sur une adresse publique à l'aide d'une connexion TCP sécurisée sans portefeuille, le paramètre directory_name doit être NULL.

    Le paramètre ssl_server_cert_dn peut être omis ou, s'il est inclus, indiquer 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 cible.

    Par exemple :

    SELECT * FROM employees@SALESLINK;
                

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

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

password correspond au nouveau mot de passe.

Après cette opération, les liens de base de données existants qui utilisent ces informations d'identification continuent de fonctionner sans avoir à supprimer ni à recréer les liens de base de données.

Remarque

Vous pouvez créer des liens vers Big Data Service à l'aide de DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK. Pour plus d'informations, reportez-vous à Interrogation des données Hadoop (HDFS) Big Data Service à partir d'Autonomous Database.

Pour plus d'informations, voir :

Création de liens de base de données à partir d'Autonomous Database vers une base de données Autonomous Database accessible publiquement avec un portefeuille (mTLS)

Vous pouvez créer des liens de base de données à partir d'une instance Autonomous Database vers une instance Autonomous Database accessible publiquement avec un portefeuille (mTLS).

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, y compris les bases de données autonomes, peuvent limiter l'accès (par exemple, à l'aide de listes de contrôle d'accès). Veillez à activer la base de données cible pour autoriser l'accès à partir de la base de données source au fonctionnement du lien de base de données. Si vous limitez l'accès à l'aide de listes de contrôle d'accès (ACL), vous pouvez trouver l'adresse IP sortante de votre instance Autonomous Database source et autoriser cette adresse IP à se connecter à votre base de données cible. Par exemple, si la base de données cible est une autre instance Autonomous Database, vous pouvez ajouter l'adresse IP sortante de la base de données source à l'ACL de la base de données cible.

Pour plus d'informations sur la recherche de l'adresse IP sortante, reportez-vous à Obtention des détails de location.

Pour créer des liens de base de données vers une instance Autonomous Database cible avec un portefeuille (mTLS), procédez comme suit :

  1. Copiez le portefeuille de base de données cible, cwallet.sso, contenant les certificats de la base de données cible vers la banque d'objets.

    Pour le fichier de portefeuille, tenez compte des points suivants :

    • Le fichier de portefeuille, ainsi que l'ID utilisateur et le mot de passe de la base de données, permettent d'accéder aux données dans l'instance Oracle Database cible. Stockez 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 Object Storage doit être nommé cwallet.sso.

  2. Créez des informations d'identification pour accéder à la banque d'objets dans laquelle stocker le fichier de portefeuille cwallet.sso. Pour plus d'informations sur les paramètres de nom utilisateur et de mot de passe des différents services Object Storage, reportez-vous à Procédure CREATE_CREDENTIAL.

    La création d'informations d'identification pour accéder à la banque d'objets Oracle Cloud Infrastructure n'est pas requise si vous activez les informations d'identification de principal de ressource. Pour plus d'informations, reportez-vous à Utilisation du principal de ressource pour accéder à des ressources Oracle Cloud Infrastructure.

  3. Créez un répertoire sur Autonomous Database pour le fichier de portefeuille cwallet.sso.

    Par exemple :

    CREATE DIRECTORY dblink_wallet_dir AS 'directory_path_of_your_choice';
                

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

  4. Utilisez DBMS_CLOUD.GET_OBJECT pour télécharger le portefeuille de base de données cible vers 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 d'objet Oracle Cloud Infrastructure et bucketname est le nom du bucket. Pour plus d'informations, reportez-vous à Présentation des espaces de noms Object Storage.

    Remarque

    Le fichier credential_name que vous utilisez dans cette étape correspond aux informations d'identification de la banque d'objets. A l'étape suivante, vous allez créer les informations d'identification permettant d'accéder à la base de données cible.

    La création d'informations d'identification pour accéder à la banque d'objets Oracle Cloud Infrastructure n'est pas requise si vous activez les informations d'identification de principal de ressource. Pour plus d'informations, reportez-vous à Utilisation du principal de ressource pour accéder à des ressources Oracle Cloud Infrastructure.

  5. Sur l'instance Autonomous Database, créez des informations d'identification pour accéder à la base de données cible. Les informations d'identification username et password que vous indiquez avec DBMS_CLOUD.CREATE_CREDENTIAL sont celles de la base de données cible que vous utilisez pour créer le lien de base de données.
    Remarque

    Vous devez indiquer le paramètre credential_name.

    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 en majuscules.

    Remarque

    Vous pouvez utiliser des informations d'identification de clé secrète de coffre pour les informations d'identification de base de données cible dans un lien de base de données. Pour plus d'informations, reportez-vous à Utilisation des informations d'identification de clé secrète de coffre.

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

  6. 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 => '1522',
            service_name => 'example_medium.adb.example.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_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.

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

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

    Par exemple :

    SELECT * FROM employees@SALESLINK;
                

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

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

password correspond au nouveau mot de passe.

Après cette opération, les liens de base de données existants qui utilisent ces informations d'identification continuent de fonctionner sans avoir à supprimer ni à recréer les liens de base de données.

Remarque

Vous pouvez créer des liens vers Big Data Service à l'aide de DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK. Pour plus d'informations, reportez-vous à Interrogation des données Hadoop (HDFS) Big Data Service à partir d'Autonomous Database.

Pour plus d'informations, voir :