Création de liens de base de données avec une connectivité hétérogène gérée par le client aux bases de données autres qu'Oracle 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 Gateway pour accéder aux bases de données non Oracle qui se trouvent sur une adresse privée.

Cette section décrit les étapes d'utilisation des liens de base de données pour la connexion d'Autonomous Database à une base de données non Oracle Database via une instance Oracle Database Gateway, où la base de données non Oracle Database se trouve sur une adresse privée.

Prérequis pour la création de liens de base de données avec la connectivité hétérogène gérée par l'utilisateur aux bases de données autres que Oracle sur une adresse privée

Répertorie les prérequis pour la création de liens de base de données à partir d'une instance Autonomous Database avec une connectivité hétérogène gérée par le client aux bases de données non Oracle situées sur une adresse privée.

Pour créer un lien de base de données avec une connectivité hétérogène gérée par le client aux bases de données non Oracle situées 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.

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

  • 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 avec la connectivité hétérogène gérée par l'utilisateur aux bases de données autres que Oracle sur une adresse privée (sans portefeuille)

Vous pouvez créer des liens de base de données à partir d'une instance Autonomous Database vers une instance Oracle Database Gateway pour accéder aux bases de données non Oracle qui se trouvent sur une adresse privée, en vous connectant à un portefeuille (TCPS) ou sans portefeuille (TLS).

Pour créer des liens de base de données à partir d'une instance Autonomous Database sur une adresse privée vers une instance Oracle Database Gateway cible, connectez-vous sans portefeuille (TLS) :

  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 Oracle Database Gateway).

    Le paramètre credential_name est requis.

    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.

    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 passerelle cible à l'aide de DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Par exemple :

    BEGIN
         DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
              db_link_name =>       'SALESLINK', 
              hostname =>           'example.com', 
              port =>               '1522',
              service_name =>       'example_service_name',
              ssl_server_cert_dn => 'ssl_server_cert_dn',
              credential_name =>    'DB_LINK_CRED',
              directory_name =>      NULL,
              gateway_link =>        TRUE,
              private_target =>      TRUE,
              gateway_params =>      NULL);
    END;
    /

    Le paramètre ssl_server_cert_dn est facultatif si la connexion est créée en tant que lien de base de données basé sur TCP (sans portefeuille).

    Lorsque directory_name est défini sur NULL, la connexion est créée en tant que lien de base de données basé sur TCP (sans portefeuille).

    Le paramètre private_target doit être défini sur TRUE lorsque la base de données non-Oracle Database cible se trouve sur une adresse privée (c'est-à-dire que le lien de base de données accède à un nom d'hôte qui doit être résolu dans un serveur DNS VCN). Lorsque private_target est défini sur TRUE, le paramètre hostname doit être un nom d'hôte unique (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 gateway_link est TRUE et gateway_params NULL, cela indique que le lien de base de données est vers une passerelle Oracle gérée par le client.

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

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

    Par exemple :

    SELECT * FROM employees@SALESLINK;
    

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

Création de liens de base de données avec la connectivité hétérogène gérée par l'utilisateur aux bases de données autres que Oracle sur une adresse privée (avec un portefeuille)

Vous pouvez créer des liens de base de données à partir d'une instance Autonomous Database vers une instance Oracle Database Gateway pour accéder aux bases de données non Oracle qui se trouvent sur une adresse privée, en vous connectant à un portefeuille (TCPS) ou sans portefeuille (TLS).

Pour créer des liens de base de données à partir d'une instance Autonomous Database sur une adresse privée vers une instance Oracle Database Gateway cible, et vous connecter sans portefeuille, procédez comme suit :

  1. Copiez le portefeuille auto-signé Oracle Database Gateway cible vers la banque d'objets. Par exemple, copiez cwallet.sso, contenant les certificats pour Oracle Database Gateway, vers la banque d'objets.

    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 disponibles via la passerelle 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. 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 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 auto-signé de la passerelle cible vers le répertoire 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 passerelle 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 Oracle Database Gateway).

    Le paramètre credential_name est requis.

    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.

    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 passerelle cible à l'aide de DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Par exemple :

    BEGIN
         DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
              db_link_name =>       'SALESLINK', 
              hostname =>           'example.com', 
              port =>               '1522',
              service_name =>       'example_service_name',
              ssl_server_cert_dn => 'ssl_server_cert_dn',
              credential_name =>    'DB_LINK_CRED',
              directory_name =>     'DBLINK_WALLET_DIR',
              gateway_link =>        TRUE,
              private_target =>      TRUE,
              gateway_params =>      NULL);
    END;
    /

    Si directory_name n'est pas NULL, un lien de base de données basé sur TCPS est créé.

    Le paramètre private_target doit être défini sur TRUE lorsque la base de données non-Oracle Database cible se trouve sur une adresse privée (c'est-à-dire que le lien de base de données accède à un nom d'hôte qui doit être résolu dans un serveur DNS VCN). Lorsque private_target est défini sur TRUE, le paramètre hostname doit être un nom d'hôte unique (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 gateway_link est TRUE et gateway_params NULL, cela indique que le lien de base de données est vers une passerelle Oracle gérée par le client.

    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 sur la passerelle cible.

    Par exemple :

    SELECT * FROM employees@SALESLINK;
    

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