Création de liens de base de données vers une instance Oracle Database qui n'est pas une instance Autonomous Database

Vous pouvez créer des liens de base de données à partir d'une instance Autonomous Database vers une base de données Oracle qui se trouve sur une adresse privée ou sur une adresse publique (accessible publiquement).

Remarque

Reportez-vous à Création de liens de base de données à partir d'Autonomous Database vers une autre instance Autonomous Database si la cible du lien de base de données est une autre instance Autonomous Database.

Création de liens de base de données d'"Autonomous Database" vers une base de données Oracle 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 base de données Oracle cible qui se trouve sur une adresse publique.

Pour utiliser des liens de base de données avec Autonomous Database, la base de données cible doit être configurée pour utiliser le protocole TCP/IP avec l'authentification SSL (TCPS). Les bases de données autonomes utilisent le protocole TCP/IP avec l'authentification SSL (TCPS) par défaut. Vous n'avez donc pas besoin d'effectuer de configuration supplémentaire dans votre base de données cible pour établir une liaison avec une autre instance Autonomous Database. Les autres bases de données Oracle doivent être configurées pour utiliser le protocole TCP/IP avec l'authentification SSL (TCPS). Pour plus d'informations, reportez-vous à Configuration de l'autorisation SSL (Secure Sockets Layer)

Pour créer des liens de base de données vers une cible publique, la cible Oracle Database doit être accessible. Certaines bases de données 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.

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.

Pour créer des liens de base de données vers une base de données Oracle 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 :

Création de liens de base de données à partir d'Autonomous Database vers une base de données Oracle Database sur une adresse privée

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

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

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.

Sujets

Prérequis pour les liens de base de données entre Autonomous Database et des bases de donnéesOracle sur une adresse privée

Répertorie les prérequis permettant de créer des liens de base de données à partir d'une instance Autonomous Database vers une base de données Oracle cible située sur une adresse privée.

Pour créer un lien de base de données vers une base de données Oracle cible sur une adresse privée, procédez comme suit :

  • 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 une adresse privée.

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

    • La base de données source et la base de données cible se trouvent dans différents réseaux cloud virtuels Oracle Cloud Infrastructure couplés.

    • La base de données cible est une base de données sur site connectée à l'Oracle Cloud Infrastructure VCN de la base de données source à l'aide de FastConnect ou du VPN.

  • Deux options permettent d'indiquer la base de données cible, à savoir le paramètre hostname ou le paramètre rac_hostnames :

    • Pour une cible sur une adresse privée, DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK prend en charge la spécification d'un nom d'hôte unique avec le paramètre hostname. Sur une adresse privée, l'utilisation d'une adresse IP, d'une adresse IP SCAN ou d'un nom d'hôte SCAN n'est pas prise en charge (lorsque la cible se trouve sur une adresse publique, CREATE_DATABASE_LINK prend en charge l'utilisation d'une adresse IP, d'une adresse 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 indiquer des 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 IP SCAN ou d'un nom d'hôte SCAN dans la valeur rac_hostnames n'est pas prise en charge.

      Lorsque vous indiquez une liste de 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.
  • Les règles entrantes et sortantes suivantes doivent être définies pour l'adresse privée :

    • Définissez une règle sortante dans la liste de sécurité de sous-réseau ou le groupe de sécurité réseau de la base de données source de sorte que le trafic sur 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 entrante dans la liste de sécurité de sous-réseau ou le groupe de sécurité réseau de la base de données cible de sorte que le trafic sur TCP soit autorisé à partir de l'adresse IP de la base de données source vers le port de destination.

    Pour plus d'informations sur la configuration des adresses privées avec des règles entrantes et sortantes, reportez-vous à Configuration de l'accès réseau avec des adresses privées.

Remarque

Lorsque votre instance Autonomous Database est configurée avec une adresse privée, définissez le paramètre de base de données ROUTE_OUTBOUND_CONNECTIONS sur 'PRIVATE_ENDPOINT' pour indiquer que tous les liens de base de données sortants sont soumis aux règles sortantes du VCN d'adresse privée d'instance Autonomous Database. Pour plus d'informations, reportez-vous à Sécurité améliorée pour les connexions sortantes avec des adresses privées.

Création de liens de base de données vers des bases de données Oracle sur une adresse privée sans portefeuille

Utilisez DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK pour créer des liens de base de données à partir d'une instance Autonomous Database vers une base de données Oracle cible qui se trouve sur une adresse privée et se connecter sans portefeuille (TCP).

Remarque

Cette option concerne les bases de données Oracle cible qui se trouvent sur une adresse privée et qui n'ont pas de SSL/TCPS configuré.

Effectuez les étapes prérequises, le cas échéant. Pour plus de détails, reportez-vous à Prérequis pour les liens de base de données d'Autonomous Database vers une instance Autonomous Database cible sur une adresse privée.

Pour créer un lien de base de données vers une base de données cible sur une adresse privée à l'aide d'une connexion TCP sécurisée sans portefeuille, procédez comme suit :

  1. Sur 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 utilisée dans le lien de base de données (où la base de données cible est accessible via le 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 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.

  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 une adresse privée, DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK prend en charge la spécification d'un nom d'hôte unique avec le paramètre hostname. Sur une adresse privée, l'utilisation d'une adresse IP, d'une adresse IP SCAN ou d'un nom d'hôte SCAN n'est pas prise en charge (lorsque la cible se trouve sur une adresse publique, CREATE_DATABASE_LINK prend en charge l'utilisation d'une adresse IP, d'une adresse 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 indiquer des 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 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 dans 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 indiqué 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 une adresse privée à l'aide d'une connexion TCP sécurisée sans portefeuille, 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.

      Remarque

      Si vous définissez ROUTE_OUTBOUND_CONNECTIONS sur PRIVATE_ENDPOINT, il n'est pas nécessaire de définir le paramètre private_target sur TRUE dans cette API. Pour plus d'informations, reportez-vous à Sécurité améliorée pour les connexions sortantes avec des adresses privées.
  3. 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@PRIVATE_ENDPOINT_LINK;
                  
Remarque

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

Pour plus d'informations, reportez-vous à Procédure CREATE_DATABASE_LINK.

Création de liens de base de données à partir d'Autonomous Database vers des bases de données de type Oracle sur une adresse privée avec un portefeuille (mTLS)

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

Remarque

Cette option concerne les bases de données Oracle cible pour lesquelles SSL/TCPS est configuré et qui se trouvent sur une adresse privée.

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

Effectuez les étapes prérequises, le cas échéant. Pour plus de détails, reportez-vous à Prérequis pour les liens de base de données d'Autonomous Database vers une instance Autonomous Database cible sur une adresse privée.

Pour créer un lien de base de données vers une base de données Oracle cible sur une adresse privée à l'aide de l'authentification TCP/IP avec SSL (TCPS), 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.
    Remarque

    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. Stockez les fichiers de portefeuille dans un emplacement sécurisé. Partagez les fichiers de portefeuille uniquement avec les utilisateurs autorisés.
  2. Créez des informations d'identification pour accéder à la banque d'objets dans laquelle stocker le fichier 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.
  3. Créez un répertoire sur Autonomous Database pour le fichier de portefeuille cwallet.sso.

    Par exemple :

    CREATE DIRECTORY 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, 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 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.
  5. Sur 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 utilisée dans le lien de base de données (où la base de données cible est accessible via le VCN).
    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 => '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;
    /
    Remarque

    Si vous définissez ROUTE_OUTBOUND_CONNECTIONS sur PRIVATE_ENDPOINT, il n'est pas nécessaire de définir le paramètre private_target sur TRUE dans cette API. Pour plus d'informations, reportez-vous à Sécurité améliorée pour les connexions sortantes avec des adresses privées.

    Pour une cible sur une adresse privée, DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK prend en charge la spécification d'un nom d'hôte unique avec le paramètre hostname. Sur une adresse privée, l'utilisation d'une adresse IP, d'une adresse IP SCAN ou d'un nom d'hôte SCAN n'est pas prise en charge (lorsque la cible se trouve sur une adresse publique, CREATE_DATABASE_LINK prend en charge l'utilisation d'une adresse IP, d'une adresse 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 indiquer des 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 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 dans 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 cible.

    Par exemple :

    SELECT * FROM employees@PEDBLINK1;
                  
Remarque

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

Pour plus d'informations, reportez-vous à Procédure CREATE_DATABASE_LINK.

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

Fournit des notes pour 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 de données Autonomous Database).

Remarques concernant les liens de base de données vers d'autres bases Oracle :

  • Si vous utilisez des liens de base de données entre Autonomous Database et d'autres bases de données Oracle, vous devrez peut-être appliquer le patch 33843368 sur Oracle Database qui n'est pas une base de données Autonomous Database. Cela s'applique aux cas où l'instance Autonomous Database est la source ou la cible du lien de base de données.

    Pour plus d'informations, reportez-vous à la base de connaissances My Oracle Support : Patch Requirement For Database Links Between ADB-S And Other Oracle Databases (ID de document 2874244.1).

  • Un seul fichier de portefeuille est valide par répertoire pour une utilisation avec des liens de base de données. Vous ne pouvez télécharger qu'un seul fichier cwallet.sso à la fois vers le répertoire de votre choix pour les fichiers de portefeuille (par exemple, DBLINK_WALLET_DIR). Cela signifie qu'avec un élément cwallet.sso 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 dans 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, indiquez le répertoire qui contient le portefeuille avec le paramètre directory_name.

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

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

    Remarque

    Pour obtenir des informations complètes sur les versions prises en charge, reportez-vous à Matrice de support d'interopérabilité de serveur client pour différentes versions d'Oracle (ID de document 207303.1)
  • Autonomous Database définit le paramètre SEC_CASE_SENSITIVE_LOGON sur true et cette valeur ne peut pas être modifiée. Si la base de données cible n'est pas une base de données Autonomous Database, vous devez définir le paramètre SEC_CASE_SENSITIVE_LOGON sur true sur la base de données cible. Si SEC_CASE_SENSITIVE_LOGON est défini sur false sur la base de données cible, l'erreur ORA-28040: No matching authentication protocol est générée.

  • Pour répertorier les liens de base de données, utilisez la vue ALL_DB_LINKS. Pour plus d'informations, reportez-vous à ALL_DB_LINKS.

  • 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 Oracle cible. Stockez 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 une adresse privée, deux options permettent d'indiquer la base de données cible : utilisez le paramètre hostname ou le paramètre rac_hostnames :

    • Pour une cible sur une adresse privée, DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK prend en charge la spécification d'un nom d'hôte unique avec le paramètre hostname. Sur une adresse privée, l'utilisation d'une adresse IP, d'une adresse IP SCAN ou d'un nom d'hôte SCAN n'est pas prise en charge (lorsque la cible se trouve sur une adresse publique, CREATE_DATABASE_LINK prend en charge l'utilisation d'une adresse IP, d'une adresse 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 indiquer des 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 IP SCAN ou d'un nom d'hôte SCAN dans la valeur rac_hostnames n'est pas prise en charge.

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

  • Lorsque private_target => TRUE, la création de liens de base de données inter-domaines, où la base de données source et la base de données cible se trouvent dans des domaines Oracle Cloud Infrastructure différents, n'est pas prise en charge.