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

Vous pouvez créer des liens de base de données d'Autonomous Database vers une instance Autonomous Database cible située sur une adresse privée.

Rubriques

Prérequis pour les liens de base de données d'Autonomous Database vers une instance Autonomous Database cible sur une adresse privée

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

Pour créer un lien de base de données vers une instance Autonomous Database 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 dans les cas suivants :

    • 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 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 connectée au VCN Oracle Cloud Infrastructure de la base de données source à l'aide de FastConnect ou d'un VPN.

  • Pour une cible sur une adresse privée, 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 une adresse privée, l'utilisation d'une adresse IP 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 SCAN ou d'un nom d'hôte SCAN).

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

  • Les règles d'entrée et de sortie 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 via 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 via TCP soit autorisé de l'adresse IP de la base de données source vers le port de destination.

    Pour plus d'informations sur la configuration d'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 la propriété 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 une instance Autonomous Database cible sur une adresse privée sans portefeuille (TLS)

Vous pouvez créer des liens de base de données d'Autonomous Database vers une instance Autonomous Database cible située sur une adresse privée et vous connecter sans portefeuille (TLS).

Effectuez les étapes prérequis, 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 instance Autonomous Database cible sur une adresse privée sans portefeuille, procédez comme suit :

  1. Si ce n'est pas déjà fait, activez les connexions TLS sur l'instance Autonomous Database.
  2. Créez des informations d'identification permettant d'accéder à l'instance Autonomous Database cible. Les paramètres username et password que vous indiquez avec DBMS_CLOUD.CREATE_CREDENTIAL sont les informations 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 via le VCN).

    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 tout nom d'informations d'identification.

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

    Exemple :

    BEGIN
         DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
             db_link_name => 'PRIVATE_ENDPOINT_LINK', 
             hostname => 'exampleHostname',
             port => '1521',
             service_name => 'example_high.adb.oraclecloud.com',
             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 seul nom d'hôte avec le paramètre hostname. Sur une adresse privée, l'utilisation d'une adresse IP 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 SCAN ou d'un nom d'hôte SCAN).

    Les utilisateurs autres que l'utilisateur ADMIN nécessitent des 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 sans portefeuille, tous les éléments suivants sont requis :

    • Le paramètre directory_name doit être défini sur NULL.

    • Le paramètre ssl_server_cert_dn peut être omis ou, s'il est inclus, indiquer une valeur NULL.

    • Le paramètre private_target doit être défini sur TRUE.

      Remarque

      Si vous définissez ROUTE_OUTBOUND_CONNECTIONS sur PRIVATE_ENDPOINT, la définition du paramètre private_target sur TRUE n'est pas requise dans cette API. Pour plus d'informations, reportez-vous à Sécurité améliorée pour les connexions sortantes avec des adresses privées.
  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.

    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 est le 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 qu'il soit nécessaire de supprimer et de 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 vers une instance Autonomous Database cible sur une adresse privée avec un portefeuille (mTLS)

Vous pouvez créer des liens de base de données d'Autonomous Database vers une instance Autonomous Database cible située sur une adresse privée (mTLS).

Effectuez les étapes prérequis, 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 instance Autonomous Database cible sur une adresse privée, avec un portefeuille, procédez comme suit :

  1. Copiez le portefeuille de la base de données cible, cwallet.sso, contenant les certificats de la base de données cible dans 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 dans 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 vous stockez cwallet.sso. Reportez-vous à Procédure CREATE_CREDENTIAL pour plus d'informations sur les paramètres de nom utilisateur et de mot de passe des différents services de stockage d'objet.
  3. Créez un répertoire sur Autonomous Database pour le fichier de portefeuille cwallet.sso.

    Exemple :

    CREATE DIRECTORY wallet_dir AS 'directory_path_of_your_choice';
                  

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

  4. Utilisez DBMS_CLOUD.GET_OBJECT pour télécharger le portefeuille de la base de données cible vers le répertoire créé à l'étape précédente, WALLET_DIR.

    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 de stockage 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

    La valeur de credential_name utilisée à 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 permettant d'accéder à la base de données cible. Les paramètres username et password que vous indiquez avec DBMS_CLOUD.CREATE_CREDENTIAL sont les informations 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 via le VCN).
    Remarque

    L'indisponibilité du paramètre credential_name est requise.

    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 tout nom d'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.

    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, la définition du paramètre private_target sur TRUE n'est pas requise 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 seul nom d'hôte avec le paramètre hostname. Sur une adresse privée, l'utilisation d'une adresse IP 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 SCAN ou d'un nom d'hôte SCAN).

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

    Les utilisateurs autres que l'utilisateur ADMIN nécessitent des 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.

    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 est le 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 qu'il soit nécessaire de supprimer et de recréer les liens de base de données.

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