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 accessibles publiquement

Utilisez DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK pour créer des liens de base de données d'une instance Autonomous Database sur une adresse publique vers une instance Oracle Database Gateway afin d'accéder à des bases de données non Oracle.

Pour utiliser des liens de base de données à partir d'une instance Autonomous Database sur une adresse publique, vous devez configurer la cible d'une instance Oracle Database Gateway de sorte à utiliser le protocole TCP/IP avec l'authentification SSL (TCPS). Pour plus d'informations, reportez-vous à Configuration de l'authentification SSL (Secure Sockets Layer).

Pour créer des liens de base de données d'une instance Autonomous Database sur une adresse publique vers une instance Oracle Database Gateway cible, 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.
    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 disponibles via Oracle Database Gateway 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 permettant d'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 votre instance Autonomous Database pour le fichier de portefeuille cwallet.sso.

    Exemple :

    CREATE DIRECTORY dblink_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 auto- signé de la passerelle cible vers le répertoire créé à l'étape précédente, DBLINK_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 => 'DBLINK_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.

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

  5. Sur votre instance Autonomous Database, créez des informations d'identification permettant d'accéder à la base de données cible. Les valeurs username et password que vous indiquez avec DBMS_CLOUD.CREATE_CREDENTIAL correspondent aux informations d'identification de la base de données cible à utiliser lors de la création du lien de base de données (où la base de données cible est accessible via Oracle Database Gateway).

    Vous devez indiquer le paramètre credential_name.

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

  6. Créez un lien de base de données pour accéder à la passerelle cible à l'aide de DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    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);
    END;
    /

    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 pour accéder aux données de la passerelle cible.

    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 est modifié, vous pouvez mettre à jour celles qui contiennent celles 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 obtenir un exemple de création d'un lien de base de données vers une instance Oracle Database Gateway afin d'accéder à une base de données Microsoft SQL Server, reportez-vous à la section suivante :

Accès aux bases de données non Oracle à partir d'Autonomous Database à l'aide d'Oracle Database Gateway

Pour plus d'informations, voir :