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 à partir d'une base de données Autonomous AI sur une infrastructure Exadata dédiée qui se trouve sur une adresse publique vers une instance Oracle Database Gateway afin d'accéder aux bases de données non Oracle.

Une passerelle Oracle Database Gateway est une passerelle conçue pour accéder à un système non Oracle spécifique. A l'aide d'une instance Oracle Database Gateway, vous pouvez accéder aux données n'importe où dans un système de base de données distribué sans connaître ni l'emplacement ni le mode de stockage des données. L'utilisation de liens de base de données sur Autonomous AI Database avec Oracle Database Gateway prend en charge des environnements hétérogènes et élimine la nécessité de personnaliser vos applications pour accéder aux données des systèmes non Oracle.

Remarques :

La création de liens de base de données avec une connectivité hétérogène gérée par le client vers des bases de données non Oracle accessibles au public est prise en charge uniquement avec les versions 19.25 et supérieures pour 19c et 23.6 et supérieures pour 23ai.

Rubriques connexes

Prérequis

Pour utiliser des liens de base de données à partir d'une instance de base de données Autonomous AI sur une adresse publique, procédez comme suit :

  1. Configurez Oracle Database Gateway pour accéder à une base de données non Oracle. Pour plus d'informations, reportez-vous à Oracle Database Gateways dans le Guide de l'utilisateur Oracle Database 19c Database Heterogeneous Connectivity ou le Guide de l'utilisateur Oracle Database 26ai Database Heterogeneous Connectivity.

    Selon la base de données à laquelle vous souhaitez vous connecter, vous pouvez vous reporter au guide d'installation et de configuration correspondant et au guide de l'utilisateur de la passerelle.

    Par exemple, concernant la passerelle de base de données Oracle pour SQL Server, reportez-vous aux sections suivantes :

  2. Configurez le processus d'écoute Oracle Net de sorte à gérer les demandes entrantes sur la passerelle de base de données Oracle.

  3. Créez un portefeuille auto-signé sur la passerelle de base de données Oracle.

  4. Configurez la passerelle cible pour qu'elle utilise TCP/IP avec l'authentification SSL (TCPS). Pour plus d'informations, reportez-vous à Configuration de l'authentification Transport Layer Security dans le Guide de sécurité Oracle Database 19c ou le Guide de sécurité Oracle Database 26ai.

Procédure

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

Pour créer des liens de base de données à partir d'une instance de base de données Autonomous AI sur une adresse publique vers une passerelle cible, procédez comme suit :
  1. Copiez le portefeuille auto-signé de la passerelle cible, par exemple cwallet.sso, contenant les certificats d'Oracle Database Gateway vers la banque d'objets.

    Remarques :

    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éer des informations d'identification permettant d'accéder à la banque d'objets dans laquelle vous stockez cwallet.sso. Reportez-vous à la 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 AI Database pour le fichier de portefeuille cwallet.sso.
    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 AI 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.
    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.

    Pour plus d'informations, reportez-vous à Procédure et fonction GET_OBJECT.

  5. Sur Autonomous AI Database, créez des informations d'identification pour accéder à la base de données cible. Le nom utilisateur et le mot de passe indiqués avec DBMS_CLOUD.CREATE_CREDENTIAL correspondent aux 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 Oracle Database Gateway).
    Exemple :
    BEGIN
        DBMS_CLOUD.CREATE_CREDENTIAL(
            credential_name => 'DB_LINK_CRED',
            username => 'NICK',
            password => 'password'
        );
    END;/

    La fourniture du paramètre credential_name est obligatoire.

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

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

  7. Utilisez le lien de base de données que vous avez créé 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;
/

Où le mot de passe 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 que vous deviez supprimer et créer à nouveau les liens de base de données.

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

Reportez-vous à Accès aux bases de données non Oracle à partir d'Autonomous AI Database à l'aide d'Oracle Database Gateway 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.

Remarques :

Bien que le blog ci-dessus traite du contexte d'Autonomous AI Database Serverless, tout le contenu de ce blog s'applique également à Autonomous AI Database on Dedicated Exadata Infrastructure.