Creación de enlaces de base de datos TLS de una instancia de Autonomous Database a otra instancia de Autonomous Database

Puede crear enlaces de base de datos TLS desde una instancia de Autonomous Database en una infraestructura Exadata dedicada a una instancia de Autonomous Database de destino que esté en un punto final público.

Temas relacionados

Creación de enlaces de base de datos TLS unidireccionales de una instancia de Autonomous Database a otra instancia de Autonomous Database

Puede crear enlaces de base de datos TLS unidireccionales desde una instancia de Autonomous Database on Dedicated Exadata Infrastructure a una instancia de Autonomous Database de acceso público.

Para crear enlaces de base de datos a un destino público, se debe poder acceder a la base de datos de destino. Algunas bases de datos, incluidas las instancias de Autonomous Database, pueden limitar el acceso (por ejemplo, mediante listas de control de acceso). Asegúrese de activar la base de datos de destino para permitir el acceso desde la base de datos de origen para que el enlace de base de datos funcione. Si limita el acceso con listas de control de acceso (ACL), puede buscar la dirección IP de salida de la instancia de Autonomous Database de origen y permitir que esa dirección IP se conecte a la base de datos de destino. Cuando la base de datos de destino es otra instancia de Autonomous Database, puede agregar la dirección IP de salida de la base de datos de origen a la ACL de la base de datos de destino.

Consulte Obtención de los detalles del arrendamiento para obtener información sobre cómo buscar la dirección IP de salida.

Para crear un enlace de base de datos en una instancia de Autonomous Database de destino sin una cartera (TLS):

  1. Asegúrese de que las conexiones TLS unidireccionales estén activadas.

    Por defecto, las conexiones TLS unidireccionales se activan al aprovisionar un AVMC. Consulte Creación de un cluster de VM de Exadata autónomo para obtener más información.

    Note:

    En una instancia de Autonomous Database on Dedicated Exadata Infrastructure, las conexiones sin cartera funcionan para TLS unidireccional mediante la instalación de un certificado SSL personalizado emitido por una CA pública. Para obtener más información, consulte Preparación para conexiones sin cartera TLS.
  2. En la instancia de Autonomous Database en la que está creando el enlace de base de datos, cree credenciales para acceder a la instancia de Autonomous Database de destino. Los valores username y password que especifique con DBMS_CLOUD.CREATE_CREDENTIAL son las credenciales de la base de datos de destino (utilice estas credenciales para crear el enlace de base de datos).

    Note:

    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.

  3. Cree un enlace de base de datos a la instancia de Autonomous Database de destino mediante DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Por ejemplo:

    BEGIN
        DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
            db_link_name => 'SALESLINK', 
            hostname => 'adb.eu-frankfurt-1.oraclecloud.com', 
            port => '2484',
            service_name => 'example_medium.atpc.example.oraclecloud.com',
            credential_name => 'DB_LINK_CRED',
            directory_name => NULL);
    END;
    /

    Para crear un enlace de base de datos con DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK a una instancia de Autonomous Database de destino en un punto final público mediante una conexión TCP segura sin una cartera, el parámetro directory_name debe ser NULL.

    El valor del parámetro port se debe definir en 2484 para las conexiones TLS. Sin embargo, si se ha seleccionado un número de puerto de listener de SCAN diferente al aprovisionar AVMC, debe utilizar ese número de puerto. Consulte Create Autonomous Exadata VM Cluster para obtener más información.

    El parámetro ssl_server_cert_dn se puede omitir o, si se incluye, especificar un valor NULL.

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

  4. Utilice el enlace de base de datos creado para acceder a los datos de la base de datos de destino.

    Por ejemplo:

    SELECT * FROM employees@SALESLINK;
                

Para las credenciales creadas en el paso 1, las credenciales de la base de datos de destino, 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 volver a crear los enlaces de base de datos.

Para obtener información adicional, consulte:

Creación de enlaces de base de datos mTLS de una instancia de Autonomous Database a otra instancia de Autonomous Database

Puede crear enlaces de base de datos mTLS de una instancia de Autonomous Database en infraestructura de Exadata dedicada a una instancia de Autonomous Database de acceso público.

Para crear enlaces de base de datos a un destino público, se debe poder acceder a la base de datos de destino. Algunas bases de datos, incluidas las instancias de Autonomous Database, pueden limitar el acceso (por ejemplo, mediante listas de control de acceso). Asegúrese de activar la base de datos de destino para permitir el acceso desde la base de datos de origen para que el enlace de base de datos funcione. Si limita el acceso con listas de control de acceso (ACL), puede buscar la dirección IP de salida de la instancia de Autonomous Database de origen y permitir que esa dirección IP se conecte a la base de datos de destino. Por ejemplo, si la base de datos de destino es otra instancia de Autonomous Database, puede agregar la dirección IP de salida de la base de datos de origen a la ACL de la base de datos de destino.

Consulte Obtención de los detalles del arrendamiento para obtener información sobre cómo buscar la dirección IP de salida.

Para crear enlaces de base de datos a una instancia de Autonomous Database de destino con una cartera (mTLS):

  1. Asegúrese de que las conexiones mTLS estén activadas.

    Por defecto, las conexiones TLS unidireccionales están activadas para un AVMC. Puede activar la autenticación TLS mutua (mTLS) seleccionando la casilla de control Activar autenticación TLS mutua (mTLS) al aprovisionar AVMC. Consulte Creación de un cluster de VM de Exadata autónomo para obtener más información.

  2. Copie la cartera de la base de datos de destino, cwallet.sso, que contiene los certificados de la base de datos de destino en el almacén de objetos.

    Tenga en cuenta lo siguiente para el archivo de cartera:

    • El archivo de cartera, junto con el ID de usuario y la contraseña de la base de datos, proporcionan acceso a los datos de Oracle Database de destino. Almacene los archivos de cartera en una ubicación segura. Comparta los archivos de cartera solo con usuarios autorizados.

    • No cambie el nombre del archivo de cartera. El archivo de cartera de Object Storage debe denominarse cwallet.sso.

  3. Cree credenciales para acceder al almacén de objetos en el que almacena el archivo de cartera cwallet.sso. Consulte Procedimiento CREATE_CREDENTIAL para obtener información sobre los parámetros de username y password para diferentes servicios de almacenamiento de objetos.
  4. 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 directorios en Autonomous Database para obtener información sobre la creación de directorios.

  5. Utilice DBMS_CLOUD.GET_OBJECT para cargar la cartera de la base de datos 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.

  6. En la instancia de 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 para crear el enlace de base de datos.

    Note:

    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.

  7. Cree el enlace de base de datos a la base de datos de destino mediante DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Por ejemplo:

    BEGIN
        DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
            db_link_name => 'SALESLINK',
            hostname => 'adb.eu-frankfurt-1.oraclecloud.com', 
            port => '2484',
            service_name => 'example_medium.atpc.example.oraclecloud.com',
            ssl_server_cert_dn => 'CN=atpc.example.oraclecloud.com,OU=Oracle BMCS FRANKFURT,O=Oracle Corporation,L=Redwood City,ST=California,C=US',
            credential_name => 'DB_LINK_CRED',
            directory_name => 'DBLINK_WALLET_DIR');
    END;
    /

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

    El valor del parámetro port se debe definir en 2484 para las conexiones TLS. Sin embargo, si se ha seleccionado un número de puerto de listener de SCAN diferente al aprovisionar AVMC, debe utilizar ese número de puerto. Consulte Create Autonomous Exadata VM Cluster para obtener más información.

    Si el archivo de cartera del directorio especificado con directory_name no es cwallet.sso, el procedimiento informa de un error como: ORA-28759: failure to open file.

  8. Utilice el enlace de base de datos creado para acceder a los datos de la base de datos de destino.

    Por ejemplo:

    SELECT * FROM employees@SALESLINK;
                

Para las credenciales creadas en el paso 5, las credenciales de la base de datos de destino, 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 volver a crear los enlaces de base de datos.

Para obtener información adicional, consulte:

Notas de enlace de base de datos con un destino que es una instancia de Autonomous Database

Proporciona notas para crear enlaces de base de datos a un destino que es otra instancia de Autonomous Database.

Notas sobre los enlaces de base de datos a otra instancia de Autonomous Database:

  • Solo se puede usar un archivo de cartera por directorio para el uso con enlaces de base de datos. Solo puede cargar un cwallet.sso a la vez en el directorio que seleccione para los archivos de cartera (por ejemplo, DBLINK_WALLET_DIR). Esto significa que con cwallet.sso en DBLINK_WALLET_DIR solo puede crear enlaces de base de datos a las bases de datos para las que la cartera de ese directorio sea válida. Para utilizar varios archivos cwallet.sso con enlaces de base de datos, debe crear directorios adicionales y colocar cada archivo cwallet.sso en un directorio diferente. Al crear enlaces de base de datos con DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK, especifique el directorio que contiene la cartera con el parámetro directory_name.

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

  • Para mostrar los enlaces de base de datos, utilice la vista ALL_DB_LINKS. Consulte ALL_DB_LINKS en Referencia de base de datos 19c de Oracle Database u Referencia de base de datos de Oracle Database 23ai para obtener más información.

  • El archivo de cartera, junto con el identificador de usuario y la contraseña de la base de datos, proporcionan acceso a los datos de Autonomous Database de destino. Almacene los archivos de cartera en una ubicación segura. Comparta los archivos de cartera solo con usuarios autorizados.

  • La entrada DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK debe mencionar el nombre de exploración de la instancia de Autonomous Database dedicada de destino como parámetro 'hostname'.