Créer des liens de base de données d'une base Autonomous Database vers une base Oracle Database sur un point d'extrémité privé

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

Note :

Les liens de base de données entre une base Autonomous Database et une base de données Oracle cible située 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 :

Selon le type et la configuration de la base de données Oracle cible :

Rubriques connexes

Préalables à la création de liens de base de données entre une base de données autonome et des bases de données Oracle sur un point d'extrémité privé

Répertorie les préalables pour créer des liens de base de données à partir d'une base de données Autonomous Database vers une base de données Oracle cible située sur un point d'extrémité privé.

Pour créer un lien de base de données vers une base de données Oracle cible sur un point d'extrémité privé :

  • La base de données cible doit être accessible à partir du VCN Oracle Cloud Infrastructure de la base de données source. Par exemple, vous pouvez vous connecter à la base de données cible lorsque :

    • La base de données cible se trouve sur un point d'extrémité privé.

    • La base de données source et la base de données cible se trouvent dans le même VCN Oracle Cloud Infrastructure.

    • La base de données source et la base de données cible se trouvent dans des réseaux en nuage virtuels Oracle Cloud Infrastructure différents mais appariés.

    • La base de données cible est une base de données sur place connectée au VCN Oracle Cloud Infrastructure de la base de données source à l'aide de FastConnect ou d'un RPV.

  • Il existe deux options pour spécifier la base de données cible, utiliser le paramètre hostname ou le paramètre rac_hostnames :

    • Pour une cible sur un point d'extrémité privé, DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK prend en charge la spécification d'un seul nom d'hôte avec le paramètre hostname. Sur un point d'extrémité privé, l'utilisation d'une adresse IP, d'une IP SCAN ou d'un nom d'hôte SCAN n'est pas prise en charge (lorsque la cible se trouve sur un point d'extrémité public, CREATE_DATABASE_LINK prend en charge l'utilisation d'une adresse IP, d'une IP SCAN ou d'un nom d'hôte SCAN).

    • 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.
  • Les règles de trafic entrant et sortant suivantes doivent être définies pour le point d'extrémité privé :

    • Définissez une règle de trafic sortant dans la liste de sécurité du sous-réseau ou le groupe de sécurité de réseau de la base de données source de sorte que le trafic TCP soit autorisé vers l'adresse IP et le numéro de port de la base de données cible.

    • Définissez une règle de trafic entrant dans la liste de sécurité du sous-réseau ou le groupe de sécurité de réseau de la base de données cible de sorte que le trafic TCP soit autorisé depuis l'adresse IP de la base de données source vers le port de destination.

Créer des liens de base de données vers des bases de données Oracle sur un point d'extrémité privé sans portefeuille

Utilisez DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK pour créer des liens de base de données à partir d'une base de données Autonomous Database vers une base de données Oracle cible située sur un point d'extrémité privé et se connecter sans portefeuille (TCP).

Note :

Cette option concerne les bases de données Oracle cibles qui se trouvent sur un point d'extrémité privé et pour lesquelles SSL/TCPS n'est pas configuré.

Effectuez les étapes préalables éventuellement requises. Pour plus de détails, voir Préalables à la création de liens de base de données entre une base de données autonome et des bases de données Oracle sur un point d'extrémité privé.

Pour créer un lien de base de données vers une base de données cible sur un point d'extrémité privé à l'aide d'une connexion TCP sécurisée sans portefeuille :

  1. Dans la base de données autonome, 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 utilisée dans le lien de base de données (où la base de données cible est accessible au moyen du VCN).

    Par exemple :

    BEGIN
         DBMS_CLOUD.CREATE_CREDENTIAL(
             credential_name => 'PRIVATE_ENDPOINT_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.

  2. 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 => 'PRIVATE_ENDPOINT_LINK', 
             hostname => 'exampleHostname',
             port => '1522',
             service_name => 'exampleServiceName',
             ssl_server_cert_dn => NULL,
             credential_name => 'PRIVATE_ENDPOINT_CRED',
             directory_name => NULL,
             private_target => TRUE);
    END;
    /

    Pour une cible sur un point d'extrémité privé, DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK prend en charge la spécification d'un seul nom d'hôte avec le paramètre hostname. Sur un point d'extrémité privé, l'utilisation d'une adresse IP, d'une IP SCAN ou d'un nom d'hôte SCAN n'est pas prise en charge (lorsque la cible se trouve sur un point d'extrémité public, CREATE_DATABASE_LINK prend en charge l'utilisation d'une adresse IP, d'une IP SCAN ou d'un nom d'hôte SCAN).

    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.

    Par exemple, avec une base de données Oracle RAC cible, utilisez le paramètre rac_hostnames :

    BEGIN
         DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
             db_link_name => 'PRIVATE_ENDPOINT_LINK', 
             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 => 'exampleServiceName',
             ssl_server_cert_dn => NULL,
             credential_name => 'PRIVATE_ENDPOINT_CRED',
             directory_name => NULL,
             private_target => TRUE);
    END;
    /

    DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK ne prend pas en charge la valeur localhost pour hostname ou le paramètre rac_hostnames.

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

    Comme illustré dans l'exemple, pour créer un lien de base de données avec DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK vers une base de données cible sur un point d'extrémité privé à l'aide d'une connexion TCP sécurisée sans portefeuille, tous les éléments suivants sont requis :

    • Le paramètre directory_name doit être NULL.

    • Le paramètre ssl_server_cert_dn doit être NULL.

    • Le paramètre private_target doit être TRUE.

  3. 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@PRIVATE_ENDPOINT_LINK;
                  

Note :

Pour les données d'identification que vous créez à l'étape 1, les données d'identification Oracle Database, 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.

Voir Procédure CREATE_DATABASE_LINK pour plus d'informations.

Créer des liens de base de données entre Autonomous Database et des bases de données Oracle sur un point d'extrémité privé avec un portefeuille (mTLS)

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

Note :

Cette option concerne les bases de données Oracle cibles pour lesquelles SSL/TCPS est configuré et qui se trouvent sur un point d'extrémité privé.

Si SSL/TCPS n'est pas configuré pour la base de données Oracle cible, vous disposez de deux options :

Effectuez les étapes préalables, au besoin. Pour plus de détails, voir Préalables pour les liens de base de données d'Autonomous Database vers des bases de données Oracle sur un point d'extrémité privé.

Pour créer un lien de base de données vers une base de données Oracle cible sur un point d'extrémité privé à l'aide de l'authentification TCP/IP avec SSL (TCPS) :

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

    Note :

    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 de la base de données Oracle cible. Conservez les fichiers de portefeuille dans un emplacement sécurisé. Partagez les fichiers de portefeuille uniquement avec les utilisateurs autorisés.
  2. Créez des données d'identification pour accéder à votre magasin d'objets où vous stockez 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 différents services de stockage d'objets.
  3. Créez un répertoire dans Autonomous Database pour le fichier de portefeuille cwallet.sso.

    Par exemple :

    CREATE DIRECTORY wallet_dir AS 'directory_path_of_your_choice';
                  

    Voir Créer un répertoire dans Autonomous Database pour plus d'informations sur la création de répertoires.

  4. Utilisez DBMS_CLOUD.GET_OBJECT pour charger le portefeuille de base de données cible dans le répertoire que vous avez créé à l'étape précédente, 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 => '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.

    Note :

    La valeur credential_name que vous utilisez à cette étape correspond aux données d'identification du magasin d'objets. À l'étape suivante, vous allez créer les données d'identification pour accéder à la base de données cible.
  5. Dans 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 sont les données d'identification de la base de données cible utilisée dans le lien de base de données (où la base de données cible est accessible au moyen du VCN).

    Note :

    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 tous ê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.

  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 => 'PEDBLINK1', 
            hostname => 'example1.adb.ap-osaka-1.oraclecloud.com',
            port => '1522',
            service_name => 'example_high.adb.oraclecloud.com',
            ssl_server_cert_dn => 'ssl_server_cert_dn',
            credential_name => 'DB_LINK_CRED',
            directory_name => 'WALLET_DIR',
            private_target => TRUE);
    END;
    /

    Pour une cible sur un point d'extrémité privé, DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK prend en charge la spécification d'un seul nom d'hôte avec le paramètre hostname. Sur un point d'extrémité privé, l'utilisation d'une adresse IP, d'une IP SCAN ou d'un nom d'hôte SCAN n'est pas prise en charge (lorsque la cible se trouve sur un point d'extrémité public, CREATE_DATABASE_LINK prend en charge l'utilisation d'une adresse IP, d'une IP SCAN ou d'un nom d'hôte SCAN).

    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.

    Par exemple, avec une base de données Oracle RAC cible, utilisez le paramètre rac_hostnames :

    BEGIN
        DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
            db_link_name => 'PEDBLINK1', 
            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 => 'ssl_server_cert_dn',
            credential_name => 'DB_LINK_CRED',
            directory_name => 'WALLET_DIR',
            private_target => TRUE);
    END;
    /

    DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK ne prend pas en charge la valeur localhost pour hostname ou le paramètre rac_hostnames.

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

  7. 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@PEDBLINK1;
                  

Note :

Pour les données d'identification que vous créez à l'étape 5, les données d'identification Oracle Database, 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.

Voir Procédure CREATE_DATABASE_LINK pour plus d'informations.

Notes sur les liens de base de données avec une base Oracle Database cible

Fournit des notes sur la création de liens de base de données vers une base de données Oracle cible (lorsque la cible n'est pas une base Autonomous Database)

Notes sur les liens de base de données vers d'autres bases de données Oracle :

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

  • Les versions de base de données Oracle cible prises en charge pour les liens de base de données vers une autre base Oracle Database sont les suivantes : 19c, 12.2.0 et 12.1.0.

  • La base de données autonome règle le paramètre SEC_CASE_SENSITIVE_LOGON à true et cette valeur ne peut pas être modifiée. Si la base de données cible n'est pas une base Autonomous Database, vous devez régler le paramètre SEC_CASE_SENSITIVE_LOGON à true dans la base de données cible. Si SEC_CASE_SENSITIVE_LOGON est réglé à false dans la base de données cible, l'erreur ORA-28040: No matching authentication protocol est générée.

  • 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 de la base de données Oracle cible. Conservez les fichiers de portefeuille dans un emplacement sécurisé. Partagez les fichiers de portefeuille uniquement avec les utilisateurs autorisés.

  • Lorsque l'instance Autonomous Database se trouve sur un point d'extrémité privé, il existe deux options pour spécifier la base de données cible : utiliser le paramètre hostname ou le paramètre rac_hostnames :

    • Pour une cible sur un point d'extrémité privé, DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK prend en charge la spécification d'un seul nom d'hôte avec le paramètre hostname. Sur un point d'extrémité privé, l'utilisation d'une adresse IP, d'une IP SCAN ou d'un nom d'hôte SCAN n'est pas prise en charge (lorsque la cible se trouve sur un point d'extrémité public, CREATE_DATABASE_LINK prend en charge l'utilisation d'une adresse IP, d'une IP SCAN ou d'un nom d'hôte SCAN).

    • 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.
    • DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK ne prend pas en charge la valeur localhost pour hostname ou le paramètre rac_hostnames.