Creación de enlaces de base de datos con conectividad heterogénea gestionada por el cliente a bases de datos no Oracle accesibles al público

Utilice DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK para crear enlaces de base de datos desde una base de datos de IA autónoma en una infraestructura de Exadata dedicada que esté en un punto final público hasta Oracle Database Gateway para acceder a bases de datos que no sean de Oracle.

Un gateway de Oracle Database Gateway es un gateway diseñado para acceder a un sistema que no es de Oracle específico. Con Oracle Database Gateway, puede acceder a los datos en cualquier lugar de un sistema de base de datos distribuido sin saber la ubicación de los datos ni cómo se almacenan. El uso de enlaces de base de datos en Autonomous AI Database con Oracle Database Gateway soporta entornos heterogéneos y elimina la necesidad de personalizar sus aplicaciones para acceder a datos de sistemas que no son de Oracle.

Note:

La creación de enlaces de base de datos con conectividad heterogénea gestionada por el cliente a bases de datos no Oracle de acceso público solo está soportada con las versiones 19.25 y posteriores para 19c y 23.6 y posteriores para 23ai.

Temas relacionados

Requisitos

Para utilizar enlaces de base de datos de una instancia de una base de datos de IA autónoma en un punto final público, haga lo siguiente:

  1. Configure Oracle Database Gateway para acceder a una base de datos que no sea de Oracle. Consulte Oracle Database Gateways en Oracle Database 19c Database Heterogeneous Connectivity User's Guide u Oracle Database 26ai Database Heterogeneous Connectivity User's Guide para obtener más información.

    En función de la base de datos a la que desee conectarse, puede consultar la Guía de instalación y configuración correspondiente y la Guía del usuario de Gateway.

    Por ejemplo, para Oracle Database Gateway for SQL Server, consulte:

  2. Configure Oracle Net Listener para manejar solicitudes entrantes en Oracle Database Gateway.

  3. Cree una cartera autofirmada en Oracle Database Gateway.

  4. Configure el gateway de destino para utilizar TCP/IP con autenticación SSL (TCPS). Consulte Configuración de autenticación de seguridad de capa de transporte en Oracle Database 19c Security Guide u Oracle Database 26ai Security Guide para más información.

Procedimiento

Utilice DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK para crear enlaces de base de datos desde una instancia de una base de datos de IA autónoma en un punto final público a Oracle Database Gateway para acceder a bases de datos que no sean de Oracle.

Para crear enlaces de base de datos a partir de una instancia de una base de datos de IA autónoma en un punto final público a un gateway de destino:
  1. Copie la cartera autofirmada del gateway de destino, por ejemplo, cwallet.sso, que contenga los certificados de Oracle Database Gateway en el almacén de objetos.

    Note:

    El archivo de cartera, junto con el ID de usuario y la contraseña de la base de datos, proporcionan acceso a los datos disponibles a través del gateway de destino. Almacene los archivos de cartera en una ubicación segura. Comparta los archivos de cartera solo con usuarios autorizados.
  2. Cree credenciales para acceder al almacén de objetos en el que almacene cwallet.sso. Consulte el procedimiento CREATE_CREDENTIAL para obtener información sobre los parámetros de nombre de usuario y contraseña para diferentes servicios de almacenamiento de objetos.
  3. Cree un directorio en la base de datos de IA autónoma para el archivo de cartera cwallet.sso.
    Por ejemplo:
    CREATE DIRECTORY dblink_wallet_dir AS 'directory_path_of_your_choice';

    Consulte Creación de directorio en Autonomous AI Database para obtener información sobre la creación de directorios.

  4. Utilice DBMS_CLOUD.GET_OBJECT para cargar la cartera autofirmada del gateway de destino en el directorio creado en el paso anterior, DBLINK_WALLET_DIR.
    Por ejemplo:
    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;

    En este ejemplo, namespace-string es el espacio de nombres de almacenamiento de objetos de Oracle Cloud Infrastructure, y bucketname es el nombre del cubo. Consulte Descripción de los espacios de nombres de Object Storage para obtener más información.

    El valor credential_name que utiliza en este paso son las credenciales del almacén de objetos. En el siguiente paso, creará las credenciales para acceder al gateway de destino.

    Consulte GET_OBJECT Procedimiento y función para obtener más información.

  5. En Autonomous AI Database, cree credenciales para acceder a la base de datos de destino. El nombre de usuario y la contraseña que especifique con DBMS_CLOUD.CREATE_CREDENTIAL son las credenciales para la base de datos de destino utilizada en el enlace de base de datos (donde se accede a la base de datos de destino a través de Oracle Database Gateway).
    Por ejemplo:
    BEGIN
        DBMS_CLOUD.CREATE_CREDENTIAL(
            credential_name => 'DB_LINK_CRED',
            username => 'NICK',
            password => 'password'
        );
    END;/

    El suministro del parámetro credential_name es obligatorio.

    Los caracteres del parámetro username deben estar todos en mayúsculas.

    Esta operación almacena las credenciales en la base de datos en un formato cifrado. Puede utilizar cualquier nombre para el nombre de credencial.

  6. Cree el enlace de base de datos al gateway de destino mediante DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.
    Por ejemplo:
    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;/

    Los usuarios que no sean ADMIN requieren privilegios para ejecutar DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Consulte CREATE_DATABASE_LINK Procedimiento para obtener más información.

  7. Utilice el enlace de base de datos creado para acceder a los datos del gateway de destino.
    Por ejemplo:
    SELECT * FROM employees@SALESLINK;
Para las credenciales creadas en el paso 5, las credenciales de Oracle Database Gateway, si la contraseña del usuario de destino cambia, puede actualizar la credencial que contiene las credenciales del usuario de destino de la siguiente forma:
BEGIN
    DBMS_CLOUD.UPDATE_CREDENTIAL(
        credential_name =>'DB_LINK_CRED',
        attribute =>'PASSWORD',
        value=>'password'
    );
END;
/

Donde la contraseña es la nueva contraseña.

Después de esta operación, los enlaces de base de datos existentes que utilizan esta credencial siguen funcionando sin tener que borrar y volver a crear los enlaces de base de datos.

Consulte UPDATE_CREDENTIAL Procedimiento para obtener más información.

Consulte How to Access Non-Oracle Databases from Autonomous AI Database using Oracle Database Gateway para ver un ejemplo de creación de un enlace de base de datos a Oracle Database Gateway para acceder a una base de datos de Microsoft SQL Server.

Note:

Aunque el blog anterior se trata en el contexto de Autonomous AI Database Serverless, todo el contenido de ese blog también se aplica a la Autonomous AI Database on Dedicated Exadata Infrastructure.