Creación de enlaces de base de datos con conectividad heterogénea gestionada por el cliente a bases de datos no Oracle en un punto final privado

Puede crear enlaces de base de datos desde una instancia de Autonomous Database a una instancia de Oracle Database Gateway para acceder a bases de datos que no sean de Oracle y que estén en un punto final privado.

En esta sección se tratan los pasos para utilizar enlaces de base de datos para conectarse desde Autonomous Database a una instancia que no sea de Oracle Database y que se realice a través de Oracle Database Gateway, donde la instancia que no sea de Oracle Database esté en un punto final privado.

Requisitos para crear enlaces de base de Datos con conectividad heterogénea gestionada por los clientes a bases de Datos no Oracle en un punto final privado

Muestra los requisitos para crear enlaces de base de datos desde una instancia de Autonomous Database con conectividad heterogénea gestionada por el cliente a bases de datos no de Oracle que están en un punto final privado.

Para crear un enlace de base de datos con conectividad heterogénea gestionada por el cliente a bases de datos que no sean de Oracle y que estén en un punto final privado:

  • Se debe poder acceder a la base de datos destino desde la VCN de Oracle Cloud Infrastructure de la base de datos origen. Por ejemplo, puede conectarse a la base de datos destino cuando:

    • La base de datos destino está en un punto final privado.

    • Tanto la base de datos origen como la base de datos destino están en la misma VCN de Oracle Cloud Infrastructure.

    • La base de datos origen y la base de datos destino se encuentran en distintas redes virtuales en la nube de Oracle Cloud Infrastructure que están emparejadas.

    • Para un destino en un punto final privado, DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK soporta la especificación de un único nombre de host con el parámetro hostname. En un punto final privado, no se soporta el uso de una dirección IP, una IP de SCAN o un nombre de host de SCAN (cuando el destino está en un punto final público, CREATE_DATABASE_LINK soporta el uso de una dirección IP, una IP de SCAN o un nombre de host de SCAN).

  • Las siguientes reglas de entrada y salida se deben definir para el punto final privado:

    • Defina una regla de salida en la lista de seguridad de subred o el grupo de seguridad de red de la base de datos de origen de modo que el tráfico a través de TCP esté permitido para la dirección IP y el número de puerto de la base de datos de destino.

    • Defina una regla de entrada en la lista de seguridad de subred o el grupo de seguridad de red de la base de datos de destino para permitir el tráfico a través de TCP desde la dirección IP de la base de datos de origen hasta el puerto de destino.

    Consulte Configuración del acceso de red con puntos finales privados para obtener información sobre la configuración de puntos finales privados con reglas de entrada y salida.

Nota

Cuando la instancia de Autonomous Database esté configurada con un punto final privado, defina el parámetro de base de datos ROUTE_OUTBOUND_CONNECTIONS en 'PRIVATE_ENDPOINT' para especificar que todos los enlaces de base de datos salientes estén sujetos a las reglas de salida de la VCN de punto final privado de la instancia de Autonomous Database. Consulte Seguridad mejorada para conexiones salientes con puntos finales privados para obtener más información.

Creación de enlaces de base de Datos con conectividad heterogénea gestionada por los clientes a bases de Datos no Oracle en un punto final privado (sin cartera)

Puede crear enlaces de base de datos desde una instancia de Autonomous Database a una instancia de Oracle Database Gateway para acceder a bases de datos que no sean de Oracle y que estén en un punto final privado, conectándose con una cartera (TCPS) o sin una cartera (TLS).

Para crear enlaces de base de datos desde una instancia de Autonomous Database en un punto final privado a un destino de Oracle Database Gateway, conectándose sin una cartera (TLS):

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

    Se necesita 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 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.

  2. 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 =>      NULL,
              gateway_link =>        TRUE,
              private_target =>      TRUE,
              gateway_params =>      NULL);
    END;
    /

    El parámetro ssl_server_cert_dn es opcional si la conexión se crea como un enlace de base de datos basado en TCP (sin cartera).

    Cuando directory_name es NULL, la conexión se crea como un enlace de base de datos basado en TCP (sin cartera).

    El parámetro private_target se debe definir en TRUE cuando el destino que no es Oracle Database está en un punto final privado (es decir, el enlace de base de datos accede a un nombre de host que se debe resolver en un servidor DNS de VCN). Cuando private_target es TRUE, el parámetro hostname debe ser un único nombre de host (en un punto final privado, no está soportado el uso de una dirección IP, una IP de SCAN o un nombre de host de SCAN).

    Cuando gateway_link es TRUE y gateway_params es NULL, especifica que el enlace de base de datos es a un gateway de Oracle gestionado por el cliente.

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

  3. Utilice el enlace de base de datos que ha creado para acceder a los datos del gateway de destino.

    Por ejemplo:

    SELECT * FROM employees@SALESLINK;
    

Para las credenciales que cree en el paso 1, las credenciales de Oracle Database Gateway, si cambia la contraseña del usuario de destino, 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 volver a crear los enlaces de base de datos.

Para obtener información adicional, consulte:

Creación de enlaces de base de Datos con conectividad heterogénea gestionada por los clientes a bases de Datos no Oracle en un punto final privado (con una cartera)

Puede crear enlaces de base de datos desde una instancia de Autonomous Database a una instancia de Oracle Database Gateway para acceder a bases de datos que no sean de Oracle y que estén en un punto final privado, conectándose con una cartera (TCPS) o sin una cartera (TLS).

Para crear enlaces de base de datos desde una instancia de Autonomous Database en un punto final privado a un destino de Oracle Database Gateway y conectarse sin una cartera:

  1. Copie la cartera autofirmada de Oracle Database Gateway de destino en Object Store. Por ejemplo, copie cwallet.sso, que contiene los certificados para Oracle Database Gateway, en el almacén de objetos.

    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 almacena 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 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 directorio en Autonomous Database para obtener información sobre la creación de directorios.

  4. Utilice DBMS_CLOUD.GET_OBJECT para cargar la cartera auto firmada del gateway de destino en el directorio que ha 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 Oracle Cloud Infrastructure Object Storage Namepace, y bucketname es el nombre del cubo. Consulte Descripción de los espacios de nombres de Object Storage para obtener más información.

    Nota

    El credential_name que utiliza en este paso son las credenciales para el almacén de objetos. En el siguiente paso, cree las credenciales para acceder al gateway de destino.
  5. En Autonomous Database, cree credenciales para acceder a la base de datos destino. username y password que especifique con DBMS_CLOUD.CREATE_CREDENTIAL son las credenciales de la base de datos destino utilizada en el enlace de base de datos (donde se accede a la base de datos destino a través de Oracle Database Gateway).

    Se necesita 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 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,
              private_target =>      TRUE,
              gateway_params =>      NULL);
    END;
    /

    Si directory_name no es NULL, se crea un enlace de base de datos basado en TCPS.

    El parámetro private_target se debe definir en TRUE cuando el destino que no es Oracle Database está en un punto final privado (es decir, el enlace de base de datos accede a un nombre de host que se debe resolver en un servidor DNS de VCN). Cuando private_target es TRUE, el parámetro hostname debe ser un único nombre de host (en un punto final privado, no está soportado el uso de una dirección IP, una IP de SCAN o un nombre de host de SCAN).

    Cuando gateway_link es TRUE y gateway_params es NULL, especifica que el enlace de base de datos es a un gateway de Oracle gestionado por el cliente.

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

  7. Utilice el enlace de base de datos que ha creado para acceder a los datos del gateway de destino.

    Por ejemplo:

    SELECT * FROM employees@SALESLINK;
    

Para las credenciales que cree en el paso 5, las credenciales de Oracle Database Gateway, si cambia la contraseña del usuario de destino, 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 volver a crear los enlaces de base de datos.

Para obtener información adicional, consulte: