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 instancia de Autonomous Database en un punto final público a una instancia de Oracle Database Gateway para acceder a bases de datos que no sean de Oracle.

Para utilizar enlaces de base de datos de una instancia de Autonomous Database en un punto final público, el gateway de destino debe estar configurado para utilizar la autenticación TCP/IP con SSL (TCPS). Para obtener más información, consulte Configuración de la autenticación de la capa de conexión segura.

Para crear enlaces de base de datos de una instancia de Autonomous Database en un punto final público a un gateway de destino, realice lo siguiente:

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

    El archivo de cartera, junto con el ID de usuario y la contraseña de Database, 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. Crear credenciales para acceder al almacén de objetos en el que almacene cwallet.sso. Consulte 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. Crear un directorio en Autonomous Database para el archivo de cartera cwallet.sso.

    Por ejemplo:

    CREATE DIRECTORY dblink_wallet_dir AS 'directory_path_of_your_choice';
    

    Consulte Creación de directorios en Autonomous 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.

  5. En Autonomous Database, cree credenciales para acceder a la base de datos de destino. Los valores username y password que especifique con DBMS_CLOUD.CREATE_CREDENTIAL son las credenciales de la base de datos de destino que se utilizan en el enlace de base de datos (donde se accede a la base de datos de destino a través de Oracle Database Gateway).

    Es necesario proporcionar el parámetro credential_name.

    Por ejemplo:

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'DB_LINK_CRED',
        username => 'NICK',
        password => 'password'
      );
    END;
    /
    

    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. Create the database link to the target gateway using 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.

  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 password 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 recrear los enlaces de base de datos.

Consulte el siguiente ejemplo, donde se muestra cómo crear un enlace de base de datos a Oracle Database Gateway para acceder a una base de datos de Microsoft SQL Server:

Cómo acceder a bases de datos que no son de Oracle desde Autonomous Database mediante Oracle Database Gateway

Para obtener información adicional, consulte: