Uso de enlaces de nube para el acceso a datos de solo lectura en Autonomous Database

Los enlaces de nube proporcionan un método basado en la nube para acceder de forma remota a datos de solo lectura en una instancia de Autonomous Database.

Acerca de los enlaces a la nube en Autonomous Database

Mediante los enlaces a la nube, un propietario de datos registra una tabla o vista para el acceso remoto de un público seleccionado, según lo definido por el propietario de los datos. Los datos se ponen a disposición de aquellos con acceso otorgado en el momento del registro. No se necesitan más acciones para configurar Cloud Links, y quien se supone que debe ver y acceder a sus datos puede detectar y trabajar con los datos.

La implantación de enlaces en la nube aprovecha los mecanismos de acceso de Oracle Cloud Infrastructure para que los datos sean accesibles en un ámbito específico. Ámbito indica quién puede acceder a los datos de forma remota. El ámbito se puede definir en varios niveles, incluso en la región en la que reside la base de datos, en arrendamientos individuales o en compartimentos. Además, puede especificar que la autorización para acceder a un juego de datos esté limitada a una o más instancias de Autonomous Database.

Al crear una o más clonaciones de refrescamiento entre regiones a partir de la instancia de Autonomous Database de origen (propietario del juego de datos), puede utilizar enlaces en la nube para compartir datos en varias regiones.

Los enlaces en la nube simplifican en gran medida el uso compartido de tablas o vistas en las instancias de Autonomous Database, en comparación con los mecanismos de enlace de base de datos tradicionales. Con Cloud Links puede detectar datos sin necesidad de configurar enlaces de base de datos complejos. Autonomous Database proporciona acceso transparente mediante SQL e implanta la aplicación de privilegios con el ámbito de enlaces en la nube y otorgando autorización a instancias individuales de Autonomous Database.

Cloud Links presenta los conceptos de espacios de nombres regionales y nombres de datos que se hacen accesibles de forma remota. Esto es similar a las tablas de Oracle existentes en las que hay una tabla, por ejemplo "EMP" que reside en un espacio de nombres (esquema), por ejemplo "LWARD". Solo puede haber un LWARD.EMP en la base de datos. Los enlaces en la nube proporcionan un espacio de nombres y un nombre similares en un nivel regional, que no están enlazados a una sola base de datos, pero se aplican a muchas instancias de Autonomous Database como se especifica con el ámbito y, opcionalmente, con la autorización de la base de datos.

Por ejemplo, puede registrar un juego de datos en el espacio de nombres FOREST y, por motivos de seguridad o para facilitar la nomenclatura, puede proporcionar un espacio de nombres y un nombre que no sean los nombres de objeto y esquema originales. En este ejemplo, TREE_DATA es el nombre visible del juego de datos registrado y no es necesario que este nombre sea el nombre de la tabla de origen. Además del espacio de nombres y el nombre, la palabra clave cloud$link indica a la base de datos que debe resolver el origen como un enlace en la nube.

Para acceder a un juego de datos registrado, incluya el espacio de nombres, el nombre y la palabra clave cloud$link en la cláusula FROM de una sentencia SELECT:

SELECT county, species, height FROM FOREST.TREE_DATA@cloud$link;

Opcionalmente, puede especificar que el acceso a un juego de datos de una o más bases de datos se descargue en una clonación de refrescamiento. Cuando se muestra una instancia de Autonomous Database de consumidor en la lista de descarga de un juego de datos, el acceso al juego de datos se dirige a la clonación de refrescamiento.

Existen varios conceptos y términos que se pueden utilizar al trabajar con enlaces en la nube:

  • Juego de datos registrados (juego de datos): identifica una tabla o vista que se ha activado para el acceso remoto en una instancia de Autonomous Database. Un juego de datos registrado también indica quién tiene permiso para acceder al juego de datos (su ámbito). El registro de juegos de datos define un espacio de nombres y un nombre para su uso con enlaces de nube. Después del registro del juego de datos, estos valores especifican conjuntamente el nombre completo (FQN) para el acceso remoto y permiten que los enlaces de nube gestionen la accesibilidad del juego de datos.

  • Propietario de juego de datos: especifique un propietario de juego de datos para proporcionar un punto de contacto para preguntas sobre un juego de datos.

  • Ámbito: especifica quién y desde dónde se permite a un usuario acceder a un juego de datos registrado. Consulte Ámbito de juego de datos, control de acceso y autorización para obtener más información sobre el ámbito.

  • OCID (identificador de Oracle Cloud): identifica un arrendamiento, compartimento o base de datos específicos. El ámbito de un juego de datos registrado se puede expresar en términos de OCID. Consulte Identificadores de recursos para obtener más información.

  • Registro de datos: con el registro de datos, un usuario hace que una tabla o vista esté disponible para el acceso remoto, sujeto a las restricciones de acceso impuestas por ámbito y, opcionalmente, sujeto a un paso de autorización adicional. Puede permitir el acceso remoto con enlaces a la nube en una tabla o vista almacenada en la base de datos o en datos almacenados en el almacén de objetos.

  • Detección de datos: un juego de datos registrado se puede detectar mediante consultas de texto de la base de datos. La detección solo muestra un juego de datos si hay un privilegio para acceder al juego de datos. Puede buscar un juego de datos registrado por nombre o por descripción.

  • Descripción de datos: permite a un usuario recuperar una descripción o metadatos para una tabla o vista que está disponible como juego de datos registrado.

  • Destinos de descarga: si lo desea, puede especificar uno o más destinos de descarga. Los destinos de descarga son clonaciones de refrescamiento que proporcionan juegos de datos de enlaces en la nube a instancias de Autonomous Database especificadas. Al especificar un destino de descarga, puede dedicar una instancia de Autonomous Database para proporcionar juegos de datos para separar la producción del desarrollo, para el rendimiento, para garantizar la seguridad o por otros motivos. Consulte Uso de clonaciones de refrescamiento con Autonomous Database para obtener más información.

Cualquier acceso a un juego de datos registrado mediante enlaces en la nube se registra con fines de auditoría. El log incluye el arrendamiento, el compartimento o la base de datos a los que se ha accedido al juego de datos, la cantidad de datos a los que se ha accedido e información adicional. Las vistas V$CLOUD_LINK_ACCESS_STATS y GV$CLOUD_LINK_ACCESS_STATS muestran información de auditoría.

Nota

Los enlaces en la nube proporcionan acceso de solo lectura a objetos remotos en una instancia de Autonomous Database. Si desea utilizar enlaces de base de datos con otras bases de datos Oracle o con bases de datos no Oracle, o si desea utilizar los datos remotos con operaciones DML, debe utilizar enlaces de base de datos. Consulte Uso de enlaces de base de datos con Autonomous Database para obtener más información.

Metadatos de Juego de Datos y Vistas de Auditoría

Cada instancia de Autonomous Database proporciona vistas que exponen los metadatos del juego de datos y que le permiten supervisar y auditar el uso de datos. Consulte Supervisión y visualización de información de enlaces en la nube para obtener más información.

Ámbito de juego de datos, control de acceso y autorización

Los enlaces de nube aprovechan los mecanismos de acceso de Oracle Cloud Infrastructure para que los juegos de datos registrados sean accesibles y para proteger los datos con restricciones de acceso.

Autonomous Database determina la accesibilidad de los juegos de datos registrados de la siguiente forma:

  • El usuario ADMIN especifica un ámbito para un usuario que permite al usuario registrar juegos de datos según el ámbito proporcionado.

  • Un usuario al que se le han otorgado privilegios para registrar juegos de datos especifica un ámbito cuando registra un juego de datos.

  • De manera opcional, al registrar un juego de datos, un usuario al que se le han otorgado privilegios de autorización puede especificar que se necesite un paso de autorización para acceder a un juego de datos. Este paso de autorización se suma a la autorización de acceso de nivel de ámbito.

Ámbito de juego de datos

El ADMIN define el ámbito de un usuario con DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER para que sea uno de los siguientes:

  • 'MY$REGION'
  • 'MY$TENANCY'
  • 'MY$COMPARTMENT'

El ámbito de un usuario es jerárquico, lo que significa que un usuario al que se le otorga uno de estos ámbitos puede permitir el acceso de la siguiente manera:

  • MY$REGION: un usuario puede otorgar acceso de datos remoto a otros arrendamientos de la región de la instancia de Autonomous Database que registra el juego de datos. Este es el ámbito menos restrictivo.

  • MY$TENANCY: un usuario puede otorgar acceso remoto a datos a cualquier recurso, arrendamiento, compartimento o base de datos del arrendamiento de la instancia de Autonomous Database que registre el juego de datos. Este ámbito es más restrictivo que el ámbito MY$REGION.

  • MY$COMPARTMENT: un usuario puede otorgar acceso remoto a datos a cualquier recurso, compartimento o base de datos del compartimento de la instancia de Autonomous Database que registra el juego de datos. Este es el ámbito más restrictivo que puede definir para un usuario con GRANT_REGISTER.

A continuación, el ámbito definido al registrar un juego de datos determina desde dónde se permite a los usuarios acceder al juego de datos. DBMS_CLOUD_LINK.REGISTER scope es una lista separada por comas que consta de uno o más de los siguientes elementos:

  • OCID de la base de datos: se permite acceso al juego de datos para las instancias específicas de Autonomous Database identificadas por OCID.

  • OCID de compartimento: se permite el acceso al juego de datos para las bases de datos en los compartimentos identificados por el OCID de compartimento.

  • OCID del arrendamiento: se permite el acceso al juego de datos para las bases de datos en los arrendamientos identificados por el OCID del arrendamiento.

  • Nombre de la región: se permite el acceso al juego de datos para las bases de datos en la región identificada por la región con nombre. En todos los casos, el acceso a enlaces en la nube está limitado a una sola región y no es un acceso entre regiones.

  • MY$COMPARTMENT: se permite el acceso al juego de datos para las bases de datos del mismo compartimento que el del propietario del juego de datos.

  • MY$TENANCY: se permite el acceso al juego de datos para las bases de datos del mismo arrendamiento que el del propietario del juego de datos.

  • MY$REGION: se permite el acceso al juego de datos para las bases de datos de la misma región que el propietario del juego de datos.

Los valores de ámbito, MY$REGION, MY$TENANCY y MY$COMPARTMENT, son variables que actúan como macros de conveniencia y se resuelven en OCID.

Nota

El ámbito definido al registrar un juego de datos solo se respeta cuando coincide o es más restrictivo que el valor definido con DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER. Por ejemplo, supongamos que el ADMIN ha otorgado el ámbito 'MY$TENANCY' con GRANT_REGISTER y que el usuario especifica 'MY$REGION' al registrar un juego de datos con DBMS_CLOUD_LINK.REGISTER. En este caso, verían un error como el siguiente:
ORA-20001: Share privileges are not enabled for current user or it is enabled but not for scope MY$REGION

También puede utilizar un mecanismo de control de acceso adicional basado en un valor SYS_CONTEXT. Este mecanismo utiliza la función DBMS_CLOUD_LINK.GET_DATABASE_ID que devuelve un identificador que está disponible como valor SYS_CONTEXT.

Al registrar un juego de datos con DBMS_CLOUD_LINK.REGISTER, puede utilizar el valor SYS_CONTEXT en las políticas de seguridad de Oracle Virtual Private Database (VPD) para controlar el acceso a la base de datos para restringir y controlar aún más a qué datos específicos pueden acceder las instancias individuales de Autonomous Database.

Consulte Definición de una política de base de datos privada virtual para proteger un juego de datos registrado para obtener más información sobre el uso de políticas de VPD.

El valor de ID de base de datos también está disponible en las vistas V$CLOUD_LINK_ACCESS_STATS y GV$CLOUD_LINK_ACCESS_STATS, que realizan un seguimiento de las estadísticas de acceso y la información de auditoría.

Consulte Uso de Oracle Virtual Private Database para controlar el acceso a datos para obtener más información.

Autorización del Juego de Datos

Al registrar un juego de datos, si se le han otorgado privilegios de autorización, puede especificar que la autorización de OCID de base de datos es necesaria para acceder a un juego de datos. Para proporcionar autorización de OCID de base de datos para un juego de datos, utilice el procedimiento DBMS_CLOUD_LINK.GRANT_AUTHORIZATION para especificar las instancias de Autonomous Database autorizadas para acceder al juego de datos. Antes de ejecutar DBMS_CLOUD_LINK.GRANT_AUTHORIZATION, el administrador debe autorizarle a ejecutar este procedimiento con DBMS_CLOUD_LINK_ADMIN.GRANT_AUTHORIZE.

El registro del juego de datos con la autorización necesaria especifica el acceso a nivel de base de datos para un juego de datos, además del control de acceso de ámbito especificado para el juego de datos, de la siguiente manera:

  • Las bases de datos que están dentro del SCOPE especificado y que se han autorizado con DBMS_CLOUD_LINK.GRANT_AUTHORIZATION pueden ver filas del juego de datos.

  • Cualquier base de datos que esté dentro del valor SCOPE especificado pero no se haya autorizado con DBMS_CLOUD_LINK.GRANT_AUTHORIZATION no puede ver las filas del juego de datos. En este caso, los consumidores sin autorización ven el juego de datos como vacío.

  • Las bases de datos que no están dentro del SCOPE especificado ven un error al intentar acceder al juego de datos.

Otorgar acceso a enlaces de nube para usuarios de base de datos

El usuario ADMIN otorga privilegios a los usuarios de la base de datos para registrar juegos de datos. El usuario ADMIN también otorga privilegios a los usuarios de la base de datos para acceder a los juegos de datos registrados.

Cuando el usuario ADMIN otorga privilegios de registro, proporciona un ámbito que especifica el ámbito máximo que un usuario puede proporcionar al registrar un juego de datos (dentro de la jerarquía de ámbito). Los valores scope válidos para su uso con DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER son:

  • 'MY$REGION'
  • 'MY$TENANCY'
  • 'MY$COMPARTMENT'

Consulte Ámbito de juego de datos, control de acceso y autorización para obtener más información.

  1. Como usuario ADMIN, permita que un usuario registre juegos de datos en un ámbito especificado.
    BEGIN
    DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER(
       username => 'DB_USER1',
       scope    => 'MY$REGION');
    END;
    /

    Especifica que el usuario DB_USER1 tiene privilegios para registrar juegos de datos en un ámbito especificado, 'MY$REGION'.

    Un usuario puede consultar SYS_CONTEXT('USERENV', 'CLOUD_LINK_REGISTER_ENABLED') para comprobar si están activados para registrar juegos de datos.

    Por ejemplo, la siguiente consulta:

    SELECT SYS_CONTEXT('USERENV', 'CLOUD_LINK_REGISTER_ENABLED') FROM DUAL;

    Devuelve 'YES' o 'NO'.

    Consulte el procedimiento GRANT_REGISTER para obtener más información.

  2. Como usuario ADMIN, permita que un usuario acceda a los juegos de datos registrados.
    EXEC DBMS_CLOUD_LINK_ADMIN.GRANT_READ('LWARD');

    Esto permite a LWARD acceder a juegos de datos registrados que están disponibles para la instancia de Autonomous Database.

    Un usuario puede consultar SYS_CONTEXT('USERENV', 'CLOUD_LINK_READ_ENABLED') para comprobar si está activado para el acceso READ a un juego de datos.

    Por ejemplo, la siguiente consulta:

    SELECT SYS_CONTEXT('USERENV', 'CLOUD_LINK_READ_ENABLED') FROM DUAL;

    Devuelve 'YES' o 'NO'.

    Consulte el procedimiento GRANT_READ para obtener más información.

  3. Durante el registro de datos, puede definir el parámetro de autorización necesaria en TRUE. Cuando la autorización necesaria es TRUE, el usuario ADMIN debe ejecutar DBMS_CLOUD_LINK_ADMIN.GRANT_AUTHORIZE para proporcionar autorización para llamar a DBMS_CLOUD_LINK.GRANT_AUTHORIZATION. Utilice DBMS_CLOUD_LINK.GRANT_AUTHORIZATION para especificar los detalles de autorización.

    Consulte Registro de un juego de datos con autorización necesaria para obtener más información.

  4. Cuando la instancia de Autonomous Database tiene Database Vault activado y la tabla o vista que se va a registrar con enlaces de nube está protegida por un dominio, el propietario de la tabla o vista debe estar autorizado para el dominio como propietario de dominio antes del registro.
    BEGIN
         DBMS_MACADM.ADD_AUTH_TO_REALM(
               realm_name   => 'myrealm',
               grantee      => 'object_owner',
               auth_option  => dbms_macutl.g_realm_auth_owner);
    END;
    /

    Si el dominio que protege la tabla o vista es un dominio obligatorio, el esquema común de Autonomous Database denominado C##DATA$SHARE, que se utiliza internamente como esquema de conexión, debe estar autorizado al dominio como participante del dominio.

    Por ejemplo:

    BEGIN
         DBMS_MACADM.ADD_AUTH_TO_REALM(
               realm_name   => 'myrealm',
               grantee      => 'C##DATA$SHARE',
               auth_option  => dbms_macutl.g_realm_auth_participant);
    END;
    /

    Consulte Uso de Oracle Database Vault con Autonomous Database para obtener más información.

Notas para otorgar privilegios a los usuarios de la base de datos para registrar juegos de datos:

  • Para registrar juegos de datos o ver y acceder a juegos de datos remotos, debe haber otorgado el privilegio adecuado para registrarse en DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER o para leer juegos de datos con DBMS_CLOUD_LINK_ADMIN.GRANT_READ.

    Esto también es cierto para el usuario ADMIN; sin embargo, el usuario ADMIN puede otorgar privilegios a sí mismo.

  • Las vistas DBA_CLOUD_LINK_PRIVS y USER_CLOUD_LINK_PRIVS proporcionan información sobre los privilegios de usuario. Consulte Supervisión y visualización de información de enlaces en la nube para obtener más información.

  • Un usuario puede ejecutar la siguiente consulta para comprobar si está activado para autenticar juegos de datos protegidos registrados:

    SELECT SYS_CONTEXT('USERENV', 'CLOUD_LINK_AUTH_ENABLED') FROM DUAL;

Registro o anulación del registro de un juego de datos

Puede registrar una tabla o ver su propiedad como un juego de datos registrado. Cuando desee eliminar o sustituir el juego de datos, debe anular su registro.

El registro de juegos de datos define un espacio de nombres y un nombre para su uso con enlaces de nube. Después del registro del juego de datos, estos valores especifican conjuntamente el nombre completo (FQN) para el acceso remoto y permiten que los enlaces de nube gestionen la accesibilidad del juego de datos.

  1. Obtenga privilegios de registro de otorgamiento del usuario ADMIN.
  2. Registre uno o más juegos de datos.

    Por ejemplo, suponiendo que haya un esquema CLOUDLINK en la instancia de Autonomous Database, puede registrar dos objetos, SALES_VIEW_AGG y SALES_ALL, y proporcionar parámetros scope diferentes para determinar cómo se accede a los objetos.

    BEGIN
       DBMS_CLOUD_LINK.REGISTER(
        schema_name    => 'CLOUDLINK',
        schema_object  => 'SALES_VIEW_AGG',
        namespace      => 'REGIONAL_SALES', 
        name           => 'SALES_AGG',
        description    => 'Aggregated regional sales information.',
        scope          => 'MY$TENANCY',
        auth_required  =>  FALSE,
        data_set_owner =>  'amit@example.com' );
    END;
    /
    BEGIN
       DBMS_CLOUD_LINK.REGISTER(
        schema_name    => 'CLOUDLINK',
        schema_object  => 'SALES_ALL',
        namespace      => 'TRUSTED_COMPARTMENT', 
        name           => 'SALES',
        description    => 'Trusted Compartment, only accessible within my compartment. Early sales data.',
        scope          => 'MY$COMPARTMENT',
        auth_required  =>  FALSE,
        data_set_owner =>  'amit@example.com' );
    END;
    /

    Los parámetros son:

    • schema_name: es el nombre del esquema (el propietario del objeto).

    • schema_object: es el nombre del objeto. Los objetos válidos son:

      Nota

      No están soportados otros objetos, como las vistas analíticas o los sinónimos.
    • namespace: es el espacio de nombres que proporciona como nombre para el acceso con enlaces a la nube (una parte del FQN de enlace a la nube).

      Un valor NULL especifica un valor namespace generado por el sistema, único para la instancia de Autonomous Database.

    • name: es el nombre que proporciona para acceder a los enlaces de nube (una parte del FQN de enlace de nube).

    • scope: especifica el ámbito. Puede utilizar una de las variables: MY$REGION, MY$TENANCY o MY$COMPARTMENT o especificar uno o más OCID.

      Consulte Ámbito de juego de datos, control de acceso y autorización para obtener más información.

    • auth_required: valor booleano que especifica si la autorización de nivel de base de datos es necesaria para el juego de datos, además del control de acceso de ámbito. Cuando se define en TRUE, el juego de datos aplica un paso de autorización adicional. Consulte Registro de un juego de datos con autorización necesaria para obtener más información.

    • data_set_owner: el valor de texto especifica información sobre la persona responsable del juego de datos o un contacto para preguntas sobre el juego de datos. Por ejemplo, puede proporcionar una dirección de correo electrónico para el propietario del juego de datos.

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

    Una vez finalizado el registro, el ámbito de estos dos objetos registrados es diferente, según el parámetro de ámbito:

    • MY$TENANCY: especifica el ámbito de nivel de arrendamiento para REGIONAL_SALES.SALES_AGG.

    • MY$COMPARTMENT: especifica el ámbito de nivel de compartimento más restrictivo para mi compartimento dentro de mi arrendamiento para TRUSTED_COMPARTMENT.SALES.

Si desea revocar el acceso remoto a un juego de datos registrado, puede anular el registro del juego de datos.

BEGIN
   DBMS_CLOUD_LINK.UNREGISTER(
    namespace      => 'TRUSTED_COMPARTMENT', 
    name           => 'SALES');
END;
/

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

Notas para registrar o anular el registro de un juego de datos

Proporciona notas para registrar un juego de datos con DBMS_CLOUD_LINK.REGISTER y anular el registro de un juego de datos con DBMS_CLOUD_LINK.UNREGISTER.

  • Después de registrar un objeto, puede que los usuarios tengan que esperar hasta diez (10) minutos para acceder al objeto con enlaces en la nube.

  • Cuando registra un juego de datos y desea que los consumidores de una región remota accedan al juego de datos, debe realizar pasos adicionales para que el juego de datos esté disponible en una región remota. Consulte Registro o anulación del registro de un juego de datos en una región diferente para obtener más información.

  • Para cambiar el ámbito de un juego de datos existente, primero debe anular el registro del juego de datos con DBMS_CLOUD_LINK.UNREGISTER. A continuación, debe registrar el juego de datos con el nuevo ámbito con DBMS_CLOUD_LINK.REGISTER. El tiempo total de espera para estas dos operaciones puede ser de hasta 20 minutos, incluidos 10 minutos para anular el registro y otros 10 minutos para que el registro se propague y se pueda acceder a él a través de enlaces en la nube.

    Este retraso también puede afectar a la visibilidad del juego de datos en las vistas DBA_CLOUD_LINK_REGISTRATIONS y DBA_CLOUD_LINK_ACCESS.

  • Puede registrar una tabla o vista que reside en el esquema de otro usuario cuando tiene privilegios READ WITH GRANT OPTION para la tabla o vista.

  • Autonomous Database no realiza comprobaciones de validez jerárquica en el momento del registro y los registros que están fuera del ámbito nunca serán visibles ni accesibles.

    Por ejemplo, tenga en cuenta la siguiente secuencia:

    1. Un usuario con el ámbito MY$COMPARTMENT registra un objeto con un ámbito que especifica un OCID de base de datos individual.

    2. Cuando un usuario solicita acceso al juego de datos registrado, Autonomous Database realiza la comprobación para ver que el OCID de la base de datos en la que se origina la solicitud está en la lista de OCID especificada con scope cuando se registró el juego de datos.

    3. Después de esto, el objeto namespace.name se podrá detectar, ver y utilizar en la base de datos en la que se originó la solicitud.

  • DBMS_CLOUD_LINK.UNREGISTER puede tardar hasta diez (10) minutos en propagarse por completo, después de lo cual se puede acceder a los datos de forma remota.

Registro o anulación del registro de un juego de datos en otra región

Puede utilizar enlaces a la nube en varias regiones, donde la región de origen contiene la base de datos de origen del juego de datos y una o más regiones remotas contienen clonaciones de refrescamiento de la base de datos de origen.

Descripción de cloud-links-cross-region-refreshable-clone.png a continuación

Para utilizar enlaces a la nube con un juego de datos en una región diferente:

  1. Cree una clonación de refrescamiento entre regiones de la base de datos origen en una región remota.

    Consulte Creación de una clonación de refrescamiento entre arrendamientos o entre regiones para obtener información sobre la adición de una clonación de refrescamiento entre regiones.

  2. En la base de datos de origen, registre el juego de datos.

    Consulte Registro o anulación del registro de un juego de datos para obtener más información.

  3. Refresque la clonación de refrescamiento.
  4. En la clonación de refrescamiento remota, registre el juego de datos con los mismos argumentos que utilizó para registrar el juego de datos en la región de origen.

    Por ejemplo, suponiendo que haya un esquema CLOUDLINK en la instancia de Autonomous Database, después de registrar SALES_ALL en la base de datos de origen, registre SALES_ALL en la clonación de refrescamiento:

    BEGIN
       DBMS_CLOUD_LINK.REGISTER(
        schema_name    => 'CLOUDLINK',
        schema_object  => 'SALES_ALL',
        namespace      => 'TRUSTED_COMPARTMENT', 
        name           => 'SALES',
        description    => 'Trusted Compartment, only accessible within my compartment. Early sales data.',
        scope          => 'MY$COMPARTMENT',
        auth_required  =>  FALSE,
        data_set_owner =>  'amit@example.com' );
    END;
    /

    Los parámetros son:

    • schema_name: es el nombre del esquema (el propietario del objeto).

    • schema_object: es el nombre del objeto. Los objetos válidos son:

      • Tablas (incluidas las pilas, externas o híbridas)
      • vistas
      • Vistas Materializadas
      Nota

      No están soportados otros objetos, como las vistas analíticas o los sinónimos.
    • namespace: es el espacio de nombres que proporciona como nombre para el acceso con enlaces a la nube (una parte del FQN de enlace a la nube).

      Un valor NULL especifica un valor namespace generado por el sistema, único para la instancia de Autonomous Database.

    • name: es el nombre que proporciona para acceder a los enlaces de nube (una parte del FQN de enlace de nube).

    • scope: especifica el ámbito. Puede utilizar una de las variables: MY$REGION, MY$TENANCY o MY$COMPARTMENT o especificar uno o más OCID.

      Consulte Ámbito de juego de datos, control de acceso y autorización para obtener más información.

    • auth_required: valor booleano que especifica si la autorización de nivel de base de datos es necesaria para el juego de datos, además del control de acceso de ámbito. Cuando se define en TRUE, el juego de datos aplica un paso de autorización adicional. Consulte Registro de un juego de datos con autorización necesaria para obtener más información.

    • data_set_owner: el valor de texto especifica información sobre la persona responsable del juego de datos o un contacto para preguntas sobre el juego de datos. Por ejemplo, puede proporcionar una dirección de correo electrónico para el propietario del juego de datos.

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

    Una vez finalizado el registro en la clonación de refrescamiento, el ámbito del objeto registrado es MY$COMPARTMENT: especifica el ámbito de nivel de compartimento más restrictivo para mi compartimento dentro de mi arrendamiento para TRUSTED_COMPARTMENT.SALES.

Puede anular el registro de un juego de datos remoto solo en las regiones remotas o en las regiones remotas y en la región de origen:

Para anular el registro de un juego de datos en una región remota y desactivar el acceso remoto al juego de datos:

  1. En la clonación de refrescamiento, anule el registro del juego de datos.

    Por ejemplo:

    BEGIN
       DBMS_CLOUD_LINK.UNREGISTER(
        namespace      => 'TRUSTED_COMPARTMENT', 
        name           => 'SALES');
    END;
    /
  2. Refresque la clonación de refrescamiento.

    Consulte Refrescamiento de una clonación de refrescamiento en Autonomous Database para obtener más información.

Para anular el registro de un juego de datos en la base de datos origen y anular el registro del juego de datos en clonaciones de refrescamiento de región remota:

  1. En la clonación de refrescamiento remoto, si solo hay una, o en varias clonaciones de refrescamiento en regiones remotas, si hay más de una, anule el registro del juego de datos.

    Por ejemplo:

    BEGIN
       DBMS_CLOUD_LINK.UNREGISTER(
        namespace      => 'TRUSTED_COMPARTMENT', 
        name           => 'SALES');
    END;
    /
  2. En la base de datos origen, anule el registro del juego de datos.

    Consulte Registro o anulación del registro de un juego de datos para obtener más información.

  3. Refresque las clonaciones de refrescamiento.

    Consulte Refrescamiento de una clonación de refrescamiento en Autonomous Database para obtener más información.

Notas para registrar o anular el registro de un juego de datos en una región remota

Proporciona notas para registrar un juego de datos en una región remota.

  • Al registrar un juego de datos en una clonación de refrescamiento en una región remota, la llamada de DBMS_CLOUD_LINK.REGISTER en la clonación de región remota debe utilizar los mismos parámetros con los mismos valores que en la base de datos origen, con la excepción del parámetro offload_targets.

    Por ejemplo, al ejecutar DBMS_CLOUD_LINK.REGISTER con el ámbito definido en MY$COMPARTMENT en la instancia de Autonomous Database de origen, vuelva a ejecutar el procedimiento en la clonación de refrescamiento entre regiones con el mismo valor de parámetro de ámbito (MY$COMPARTMENT).

  • Si especifica el parámetro offload_targets con DBMS_CLOUD_LINK.REGISTER en el origen, debe omitir este parámetro al registrar el juego de datos en la clonación de refrescamiento.

  • Después de registrar un objeto, puede que los usuarios tengan que esperar hasta diez (10) minutos para acceder al objeto con enlaces en la nube.

  • Las siguientes acciones requieren que refresque la clonación de refrescamiento:

    • Si agrega una política de VPD al juego de datos en el origen, debe refrescar la clonación de refrescamiento.

    • Si realiza un permiso o una revocación para el juego de datos en la base de datos origen, debe refrescar la clonación de refrescamiento.

    Consulte Refrescamiento de una clonación de refrescamiento en Autonomous Database para obtener más información.

Registro de un juego de datos con autorización necesaria

Opcionalmente, al registrar un juego de datos, además del ámbito, puede especificar que la autorización de nivel de base de datos es necesaria para acceder a un juego de datos.

En comparación con el ejemplo anterior, donde ha definido auth_required en FALSE, en este ejemplo ha definido auth_required en TRUE. Cuando auth_required es TRUE, se necesitan pasos adicionales para especificar una o más bases de datos desde las que se autoriza el acceso al juego de datos.

Nota

Solo puede otorgar autorización, como se muestra en estos pasos, si está autorizado. El administrador otorga privilegios de autorización con DBMS_CLOUD_LINK_ADMIN.GRANT_AUTHORIZE.
  1. Utilice DBMS_CLOUD_LINK.REGISTER para registrar datos con la autorización necesaria.

    Suponiendo que haya un esquema CLOUDLINK en la instancia de Autonomous Database y que registre el objeto SALES_VIEW_AGG y defina auth_required en TRUE, además de definir el ámbito, debe realizar pasos adicionales para determinar cómo se accede al objeto.

    BEGIN
       DBMS_CLOUD_LINK.REGISTER(
        schema_name    => 'CLOUDLINK',
        schema_object  => 'SALES_VIEW_AGG',
        namespace      => 'REGIONAL_SALES', 
        name           => 'SALES_AGG',
        description    => 'Aggregated regional sales information.',
        scope          => 'MY$TENANCY',
        auth_required  =>  TRUE,
        data_set_owner =>  'amit@example.com' );
    END;
    /

    Los parámetros son:

    • schema_name: es el nombre del esquema (el propietario del objeto).

    • schema_object: es el nombre del objeto. Los objetos válidos son:

      • Tablas (incluidas las pilas, externas o híbridas)
      • vistas
      • Vistas Materializadas
      Nota

      No están soportados otros objetos, como las vistas analíticas o los sinónimos.
    • namespace: es el espacio de nombres que proporciona como nombre para el acceso con enlaces a la nube (una parte del FQN de enlace a la nube).

      Un valor NULL especifica un valor namespace generado por el sistema, único para la instancia de Autonomous Database.

    • name: es el nombre que proporciona para acceder a los enlaces de nube (una parte del FQN de enlace de nube).

    • scope: especifica el ámbito. Puede utilizar una de las variables: MY$REGION, MY$TENANCY o MY$COMPARTMENT o especificar uno o más OCID.

      Consulte Ámbito de juego de datos, control de acceso y autorización para obtener más información.

    • auth_required: valor booleano que especifica si la autorización de nivel de base de datos es necesaria para el juego de datos, además del control de acceso de ámbito. Cuando se define en TRUE, el juego de datos aplica un paso de autorización adicional.

    • data_set_owner: el valor de texto especifica información sobre la persona responsable del juego de datos o un contacto para preguntas sobre el juego de datos. Por ejemplo, puede proporcionar una dirección de correo electrónico para el propietario del juego de datos.

  2. Obtenga el ID de la base de datos a la que desea otorgar autorización (para permitir que la base de datos acceda al juego de datos).

    En el sistema que desea otorgar acceso al juego de datos:

    SELECT DBMS_CLOUD_LINK.GET_DATABASE_ID FROM DUAL:
  3. Utilice el ID de base de datos obtenido para otorgar autorización a un juego de datos especificado.

    Solo puede otorgar autorización y ejecutar DBMS_CLOUD_LINK.GRANT_AUTHORIZATION, como se muestra en este paso, si está autorizado. El administrador otorga autorización con DBMS_CLOUD_LINK_ADMIN.GRANT_AUTHORIZE.

    BEGIN
       DBMS_CLOUD_LINK.GRANT_AUTHORIZATION(
        database_id    => '120xxxxxxx8506029999',
        namespace      => 'TRUSTED_COMPARTMENT', 
        name           => 'SALES');
    END;
    /

    Realice estos pasos varias veces si desea autorizar bases de datos adicionales.

Si desea revocar la autorización para una base de datos:

BEGIN
   DBMS_CLOUD_LINK.REVOKE_AUTHORIZATION(
    database_id    => '120xxxxxxx8506029999',
    namespace      => 'TRUSTED_COMPARTMENT', 
    name           => 'SALES');
END;
/

Puede obtener más información en los siguientes enlaces:

Registro de un juego de datos con destinos de descarga para el acceso al juego de datos

Opcionalmente, al registrar un juego de datos, puede descargar el acceso al juego de datos en una o más instancias de Autonomous Database que sean clonaciones de refrescamiento.

Utilice el parámetro offload_targets opcional con DBMS_CLOUD_LINK.REGISTER para especificar que el acceso se descarga para refrescar las clonaciones. La base de datos de origen de cada clonación de refrescamiento es la instancia de Autonomous Database en la que registra el juego de datos (editor de datos).

El valor offload_targets es un documento JSON que define uno o más pares de valores de clave CLOUD_LINK_DATABASE_ID y OFFLOAD_TARGET:

  • CLOUD_LINK_DATABASE_ID es uno de los siguientes:

    • Un ID de base de datos: especifica un ID de base de datos para el consumidor del juego de datos cuya solicitud se descarga en la clonación de refrescamiento correspondiente especificada con el valor OFFLOAD_TARGET.

      Obtenga el ID de base de datos ejecutando DBMS_CLOUD_LINK.GET_DATABASE_ID. Consulte Función GET_DATABASE_ID para obtener más información.

    • ANY: especifica que cualquier solicitud del consumidor del juego de datos se descarga en el destino de descarga correspondiente. La solicitud de juego de datos de un consumidor se enrutará al destino de descarga correspondiente.

      Si especifica ANY sin especificar identificadores de base de datos, todas las solicitudes de juego de datos de los consumidores se descargan en la clonación de refrescamiento especificada con el valor OFFLOAD_TARGET.

      Si especifica tanto los ID de base de datos como ANY, las solicitudes de juegos de datos de los consumidores que no coinciden con un ID de base de datos se descargan en la clonación de refrescamiento especificada con el valor OFFLOAD_TARGET.

  • OFFLOAD_TARGET es el OCID de una instancia de Autonomous Database que es una clonación de refrescamiento.

En la siguiente figura, se muestra el uso de destinos de descarga.

Descripción de Cloud-links-offload-targets-any-keyword.eps a continuación

Cuando un consumidor de juego de datos solicita acceso a un juego de datos que se registra con offload_targets y el ID de base de datos de la instancia de Autonomous Database coincide con el valor especificado en CLOUD_LINK_DATABASE_ID, el acceso se descarga en la clonación de refrescamiento identificada con OFFLOAD_TARGET en el JSON proporcionado.

Por ejemplo, a continuación se muestra un ejemplo de JSON con tres pares de valores OFFLOAD_TARGET/CLOUD_LINK_DATABASE_ID:

{
  "OFFLOAD_TARGETS": [
    {
      "CLOUD_LINK_DATABASE_ID": "34xxxxx69708978",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfabc"
    },
    {
      "CLOUD_LINK_DATABASE_ID": "34xxxxx89898978",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfdef"
    },
    {
      "CLOUD_LINK_DATABASE_ID": "34xxxxx4755680",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfghi"
    }
  ]
}

Cuando un consumidor de juego de datos solicita acceso a un juego de datos que se registra con offload_targets que incluye la palabra clave ANY, el acceso se descarga en la clonación de refrescamiento identificada con OFFLOAD_TARGET en el JSON proporcionado (excepto las solicitudes de los consumidores que tienen una entrada de ID de base de datos coincidente en el JSON proporcionado).

Por ejemplo, a continuación se muestra un ejemplo de JSON con un par de valores OFFLOAD_TARGET/CLOUD_LINK_DATABASE_ID explícito y un valor ANY con un valor OFFLOAD_TARGET correspondiente:

{
  "OFFLOAD_TARGETS": [
    {
      "CLOUD_LINK_DATABASE_ID": "ANY",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfdef"
    },
    {
      "CLOUD_LINK_DATABASE_ID": "34xxxxx4755680",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfghi"
    }
  ]
}

Para registrar un juego de datos y especificar destinos de descarga, realice lo siguiente:

  1. Obtenga el OCID para una o más clonaciones de refrescamiento en las que desea descargar el acceso al juego de datos. Los OCID de clonación de refrescamiento están disponibles en la consola de Oracle Cloud Infrastructure en una clonación de refrescamiento.
    Nota

    Puede tardar hasta 10 minutos después de crear una clonación de refrescamiento para que la clonación de refrescamiento esté visible como destino de descarga. Esto significa que puede que tenga que esperar hasta 10 minutos después de crear una clonación de refrescamiento para que la clonación de refrescamiento esté disponible para el registro de descarga de enlaces en la nube.
  2. Obtenga el ID de base de datos para una o más instancias de Autonomous Database a las que desea acceder al juego de datos mediante los datos proporcionados por la clonación de refrescamiento.

    En el sistema al que desea acceder al juego de datos desde una clonación de refrescamiento, ejecute el comando:

    SELECT DBMS_CLOUD_LINK.GET_DATABASE_ID FROM DUAL:
  3. Registre un juego de datos y especifique el parámetro offload_targets.

    Por ejemplo, suponiendo que haya un esquema CLOUDLINK en la instancia de Autonomous Database, puede registrar SALES_VIEW_AGG y especificar las clonaciones de refrescamiento que proporcionan acceso al juego de datos:

    BEGIN
       DBMS_CLOUD_LINK.REGISTER(
        schema_name     => 'CLOUDLINK',
        schema_object   => 'SALES_VIEW_AGG',
        namespace       => 'REGIONAL_SALES', 
        name            => 'SALES_AGG',
        description     => 'Aggregated regional sales information.',
        scope           => 'MY$TENANCY',
        auth_required   =>  FALSE,
        data_set_owner  =>  'amit@example.com',
        offload_targets => '{
      "OFFLOAD_TARGETS": [
        {
          "CLOUD_LINK_DATABASE_ID": "34xxxx754755680",
          "OFFLOAD_TARGET":
    "ocid1.autonomousdatabase.oc1..xxxxxaaba3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfghi"
        }
      ]
    }');
    END;
    /

    Los parámetros son:

    • schema_name: es el nombre del esquema (el propietario del objeto).

    • schema_object: es el nombre del objeto. Los objetos válidos son:

      • Tablas (incluidas las pilas, externas o híbridas)
      • vistas
      • Vistas Materializadas
      Nota

      No están soportados otros objetos, como las vistas analíticas o los sinónimos.
    • namespace: es el espacio de nombres que proporciona como nombre para el acceso con enlaces a la nube (una parte del FQN de enlace a la nube).

      Un valor NULL especifica un valor namespace generado por el sistema, único para la instancia de Autonomous Database.

    • name: es el nombre que proporciona para acceder a los enlaces de nube (una parte del FQN de enlace de nube).

    • scope: especifica el ámbito. Puede utilizar una de las variables: MY$REGION, MY$TENANCY o MY$COMPARTMENT o especificar uno o más OCID.

      Consulte Ámbito de juego de datos, control de acceso y autorización para obtener más información.

    • auth_required: valor booleano que especifica si la autorización de nivel de base de datos es necesaria para el juego de datos, además del control de acceso de ámbito. Cuando se define en TRUE, el juego de datos aplica un paso de autorización adicional. Consulte Registro de un juego de datos con autorización necesaria para obtener más información.

    • data_set_owner: el valor de texto especifica información sobre la persona responsable del juego de datos o un contacto para preguntas sobre el juego de datos. Por ejemplo, puede proporcionar una dirección de correo electrónico para el propietario del juego de datos.

    • offload_targets: especifica uno o más OCID de Autonomous Database de clonaciones de refrescamiento en las que se descarga el acceso a los juegos de datos de la instancia de Autonomous Database en la que se registra el juego de datos.

      Para cada consumidor de juego de datos, una de las siguientes opciones puede coincidir para descargar la solicitud en una clonación de refrescamiento:

      • Cuando hay coincidencia con el valor de la cloud_link_database_id especificada, es decir, los valores coinciden con el identificador de base de datos del consumidor, el acceso se descarga en la clonación de refrescamiento identificada por el OCID especificado en offload_target.

      • Cuando se especifica la palabra clave ANY, si no hay ninguna coincidencia con el valor de un cloud_link_database_id especificado, el acceso se descarga en la clonación de refrescamiento identificada con la entrada ANY por el OCID especificado en el offload_target correspondiente.

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

    Consulte Uso de clonaciones de refrescamiento con Autonomous Database para obtener más información.

Uso de enlaces en la nube desde una instancia de Autonomous Database de solo lectura

Puede compartir enlaces de nube cuando un juego de datos reside en una instancia de Autonomous Database de solo lectura.

Para compartir enlaces a la nube desde una instancia de Autonomous Database en modo de solo lectura:
  1. Cambie el modo de base de datos al modo de lectura y escritura.
  2. Con la base de datos en modo de lectura/escritura, realice los pasos para registrar un juego de datos.
    1. Otorgar acceso a enlaces de nube para usuarios de base de datos
    2. Registro o anulación del registro de un juego de datos
  3. Después de registrar uno o más juegos de datos, cambie la base de datos al modo de solo lectura.

Buscar juegos de datos y utilizar enlaces a la nube

Un usuario al que se le otorgue acceso para leer enlaces en la nube puede buscar juegos de datos disponibles para una instancia de Autonomous Database y puede acceder a juegos de datos registrados y utilizarlos con sus consultas.

Después de que el usuario ADMIN ejecute GRANT_READ, un usuario puede buscar y utilizar enlaces en la nube.

  1. Busque los juegos de datos disponibles en la instancia de Autonomous Database.

    Por ejemplo, busque todos los juegos de datos que contengan la cadena, "TREE":

    DECLARE
       result CLOB DEFAULT NULL;
    BEGIN
       DBMS_CLOUD_LINK.FIND('TREE', result);
        DBMS_OUTPUT.PUT_LINE(result);
    END;
    /
    
    [{"name":"TREE_DATA","namespace":"FOREST","description":"Urban tree data including county, species and height"}]

    Los parámetros son:

    • search_string: cadena que se va a buscar. La cadena de búsqueda no es confidencial.

    • search_result: documento JSON que incluye los valores de espacio de nombres, nombre y descripción del juego de datos.

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

    El procedimiento DBMS_CLOUD_LINK.FIND proporciona el FQN que puede utilizar con enlaces a la nube. En este caso, FOREST.TREE_DATA.

  2. Utilice la vista DBA_CLOUD_LINK_ACCESS para mostrar los juegos de datos disponibles:
    SELECT * FROM DBA_CLOUD_LINK_ACCESS;
    
    NAMESPACE            NAME
    ---------            -------------- 
    FOREST               TREE_DATA 
    REGIONAL_SALES       SALES_AGG
    TRUSTED_COMPARTMENT  SALES
  3. Utilice el procedimiento DBMS_CLOUD_LINK.DESCRIBE para obtener más información sobre un juego de datos registrado.
    SELECT DBMS_CLOUD_LINK.DESCRIBE('FOREST','TREE_DATA') FROM DUAL;
    
    DBMS_CLOUD_LINK.DESCRIBE('FOREST','TREE_DATA')
    ---------------------------------------------------
    Urban tree data including county, species and height
  4. Utilizar el juego de datos registrado en una consulta.
    SELECT * FROM FOREST.TREE_DATA@cloud$link;
    Nota

    Puede tardar hasta 10 minutos después de registrar un juego de datos en DBMS_CLOUD_LINK.REGISTER para que el juego de datos sea visible y accesible.

Activación del almacenamiento en caché para un consumidor de enlaces en la nube

Puede activar el almacenamiento en caché en un consumidor de juegos de datos para los resultados de una consulta o para un fragmento de consulta que accede a los datos de Cloud Link.

Para activar el almacenamiento en caché en un consumidor de juego de datos, utilice la indicación RESULT_CACHE con la opción SHELFLIFE. Con la opción SHELFLIFE, proporciona un valor que indica la duración, en segundos, de que un resultado de consulta se almacena en caché. Una vez transcurrido el intervalo SHELFLIFE, el resultado almacenado en caché se marca como no válido. Mientras el resultado almacenado en caché sea válido, una consulta recupera los datos almacenados en caché de la caché en la base de datos de consumidores, lo que evita una ida y vuelta a la base de datos del propietario del juego de datos.

Utilice la indicación RESULT_CACHE con la opción SHELFLIFE cuando el juego de datos sea estático o cuando el consumidor pueda tolerar resultados obsoletos. El valor SHELFLIFE permite al consumidor del juego de datos de Cloud Link controlar el tiempo, en segundos, en que los datos de la caché son válidos (el grado aceptable de caducidad).

Si el resultado de la consulta es grande y no cabe en la memoria, puede utilizar la indicación RESULT_CACHE con la opción SHELFLIFE y la opción TEMP para indicar que el resultado se debe escribir en el disco del tablespace temporal.

Para almacenar en caché los datos de Cloud Link con la indicación RESULT_CACHE:

  1. En una consulta, especifique la indicación RESULT_CACHE con la opción SHELFLIFE.

    Por ejemplo:

    SELECT /*+ RESULT_CACHE (SHELFLIFE=120) */ * FROM FOREST.TREE_DATA@cloud$link;

    Este valor RESULT_CACHE especifica un valor SHELFLIFE de 120. Esto indica que el resultado se debe almacenar en caché en la memoria durante 120 segundos. Después de 120 segundos, el resultado almacenado en caché se marca como no válido.

    El valor SHELFLIFE debe ser un entero positivo. El valor máximo de SHELFLIFE es 4294967295.

  2. Si el resultado de la consulta es grande y no cabe en la memoria, utilice las opciones SHELFLIFE y TEMP para indicar que el resultado se debe escribir en el disco del tablespace temporal.
    SELECT /*+ RESULT_CACHE (TEMP=true SHELFLIFE=360) */ * FROM FOREST.TREE_DATA@cloud$link;

Consulte RESULT_CACHE_MODE para obtener más información sobre el uso de la caché de resultados con Autonomous Database.

Consulte DBMS_RESULT_CACHE para obtener información sobre los procedimientos para gestionar la caché de resultados y para invalidar objetos en la caché de resultados.

Revocar acceso a enlaces de nube para usuarios de base de datos

El usuario ADMIN puede revocar el registro para impedir que un usuario registre juegos de datos para el acceso remoto. El usuario ADMIN también puede revocar privilegios o usuarios de base de datos para acceder a los juegos de datos registrados.

  1. Como usuario ADMIN, revoque los privilegios de un usuario para registrar juegos de datos.

    Por ejemplo:

    EXEC DBMS_CLOUD_LINK_ADMIN.REVOKE_REGISTER('DB_USER1');

    Esto revoca los privilegios para registrar juegos de datos para el usuario, DB_USER1.

    La ejecución de DBMS_CLOUD_LINK_ADMIN.REVOKE_REGISTER no afecta a los juegos de datos que ya están registrados. Utilice DBMS_CLOUD_LINK.UNREGISTER para eliminar el acceso de un juego de datos registrado.

    Consulte Procedimiento REVOKE_REGISTER y Procedimiento UNREGISTER para obtener más información.

  2. Como usuario ADMIN, revoque el acceso a los juegos de datos registrados.

    Por ejemplo:

    EXEC DBMS_CLOUD_LINK_ADMIN.REVOKE_READ('LWARD');

    Esto revoca el acceso a los juegos de datos de enlaces en la nube para el usuario LWARD.

    Consulte el procedimiento REVOKE_READ para obtener más información.

Supervisión y visualización de información de enlaces de nube

Autonomous Database proporciona vistas que le permiten supervisar y auditar enlaces en la nube.

Ver Descripción
Vistas de V$CLOUD_LINK_ACCESS_STATS y GV$CLOUD_LINK_ACCESS_STATS

Se utiliza para realizar un seguimiento del acceso a cada juego de datos registrado en la instancia de Autonomous Database. Estas vistas realizan un seguimiento del tiempo transcurrido, el tiempo de CPU, el número de filas recuperadas e información adicional sobre los juegos de datos registrados. Puede utilizar la información de estas vistas para auditar el acceso y el uso del juego de datos Enlaces en la nube.

Vistas DBA_CLOUD_LINK_REGISTRATIONS y ALL_CLOUD_LINK_REGISTRATIONS

Se utiliza para mostrar los detalles de los juegos de datos registrados en una instancia de Autonomous Database.

Vistas DBA_CLOUD_LINK_ACCESS y ALL_CLOUD_LINK_ACCESS

Se utiliza para recuperar detalles de juegos de datos registrados a los que puede acceder una base de datos.

Vista DBA_CLOUD_LINK_AUTHORIZATIONS

Proporciona información sobre qué bases de datos están autorizadas para acceder a qué juegos de datos. Esto se aplica a los juegos de datos en los que el parámetro auth_required es TRUE.

Vistas DBA_CLOUD_LINK_PRIVS y USER_CLOUD_LINK_PRIVS

Proporciona información sobre los privilegios específicos de Cloud Link, REGISTER, READ o AUTHORIZE, otorgados a todos los usuarios o al usuario actual.

Definición de una política de base de datos privada virtual para proteger un juego de datos registrado

Al definir políticas de base de datos privada virtual (VPD) para un juego de datos registrado, puede proporcionar un control de acceso de enlace en la nube detallado para que solo un subconjunto de datos (filas) esté visible para sitios remotos específicos.

Oracle Virtual Private Database (VPD) es una función de seguridad que permite controlar el acceso a los datos de forma dinámica a nivel de fila para usuarios y aplicaciones mediante la aplicación de filtros en el mismo juego de datos.

Cualquier usuario al que se le otorgue acceso para leer enlaces en la nube puede acceder y utilizar juegos de datos registrados si están dentro del ámbito especificado cuando se registra el juego de datos y si se define el parámetro de autorización adicional necesaria para el juego de datos, el acceso es desde una base de datos autorizada. Cada acceso remoto se realiza en el contexto de la instancia remota de Autonomous Database que accede al juego de datos registrado (en la base de datos en la que se registró el juego de datos).

La función DBMS_CLOUD_LINK.GET_DATABASE_ID se utiliza en el sistema remoto para obtener el ID único de la base de datos. Al definir una política de VPD en la base de datos que registró un juego de datos, ahora puede utilizar el identificador de la base de datos remota como regla SYS_CONTEXT para proporcionar un control más detallado. Puede definir reglas para bases de datos remotas que accedan a su juego de datos registrado y limitar el acceso más allá de lo posible especificando un ámbito de Cloud Link.

Considere un ejemplo en el que REGIONAL_SALES.SALES_AGG esté disponible en el nivel de arrendamiento. Si desea restringir el acceso a todas las bases de datos excepto a una base de datos específica, lo que solo permite el acceso completo a la base de datos especificada, puede agregar una política de VPD en el juego de datos registrado.

Por ejemplo:

  1. Obtenga el ID de base de datos de Cloud Link único para la instancia de Autonomous Database en la que desea proporcionar acceso completo.
    DECLARE
         DB_ID NUMBER;
     BEGIN
         DB_ID := DBMS_CLOUD_LINK.GET_DATABASE_ID;
         DBMS_OUTPUT.PUT_LINE('Database ID:' || DB_ID);
     END;
     /
  2. Cree una política de VPD en la base de datos que registró el juego de datos permitiendo solo el acceso completo a la base de datos específica cuyo identificador obtuvo en la base de datos en cuestión en el paso 1.
    CREATE OR REPLACE FUNCTION vpd_policy_sales(
         owner IN VARCHAR2, 
         object IN VARCHAR2)
         RETURN VARCHAR2 IS
    BEGIN
      IF SYS_CONTEXT('USERENV', 'CLOUD_LINK_DATABASE_ID')  <> '12121212163948244901' THEN
        RETURN 'time_id >= trunc(sysdate,''year'')';  
      ELSE
        RETURN '';
      END IF;
    END;
    /

    Consulte DBMS_RLS para obtener más información.

  3. Registre la política de VPD del juego de datos registrado para limitar el acceso completo solo a la base de datos identificada en el paso 1.
    
    BEGIN
      DBMS_RLS.ADD_POLICY(object_schema => 'CLOUDLINK',
                object_name => 'SALES_VIEW_AGG',
                policy_name => 'THIS_YEAR',
                function_schema => 'ADMIN',
                policy_function => 'VPD_POLICY_SALES',
                statement_types => 'SELECT',
                policy_type => DBMS_RLS.SHARED_CONTEXT_SENSITIVE);
    END;
    /

    Consulte DBMS_RLS para obtener más información.

Notas para enlaces de nube

Proporciona notas y restricciones para utilizar enlaces en la nube.

  • Hay un límite de 4096 en el número de conjuntos de datos que puede registrar.

    Cada instancia de Autonomous Database no puede registrar más de 4096 juegos de datos. Este límite se aplica a todas las instancias de Autonomous Database, independientemente del número de ECPU (OCPU si la base de datos utiliza OCPU) o del tamaño de almacenamiento de la instancia. El límite es un valor fijo y la configuración del recuento de ECPU en un valor mayor no permite registrar más juegos de datos.

  • Puede registrar un objeto en otro esquema si tiene el privilegio READ WITH GRANT OPTION en el objeto.

  • Para registrar juegos de datos o ver y acceder a juegos de datos remotos, debe haber otorgado el privilegio adecuado para registrar o leer juegos de datos. Esto también es cierto para ADMIN; sin embargo, ADMIN puede otorgar este privilegio a sí mismo.

  • Para utilizar DBMS_CLOUD_LINK.REGISTER, debe tener el privilegio de ejecución en el paquete DBMS_CLOUD_LINK, además del privilegio de registro asignado con DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER. Solo el usuario ADMIN y los esquemas con PDB_DBA tienen este privilegio por defecto.

  • Si borra y vuelve a crear una tabla registrada, debe volver a registrar la tabla para el acceso remoto.

  • Solo el usuario ADMIN y los usuarios con el rol PDB_DBA tienen privilegios para acceder a las siguientes vistas:

    • DBA_CLOUD_LINK_ACCESS

    • DBA_CLOUD_LINK_REGISTRATIONS

    • DBA_CLOUD_LINK_AUTHORIZATIONS

    • DBA_CLOUD_LINK_PRIVS

    Consulte DBMS_CLOUD_LINK Views para obtener más información.

  • El acceso a los datos remotos registrados requiere que la base de datos remota esté abierta. Si la base de datos remota está cerrada o en modo restringido, no podrá acceder a los datos y se devolverá un error de Oracle.

  • Hay un límite de un máximo de cuatro enlaces de base de datos abiertos por sesión. Si se supera este límite, se puede producir ORA-02020 o ORA-12545.

  • Si la caché de resultados está activada, como el comportamiento por defecto en Autonomous Database con la carga de trabajo de Data Warehouse, debe asegurarse de que la caché de resultados no se utiliza cuando se necesitan datos en tiempo real.

  • Al actualizar el tipo de licencia de Gratuito a Pagado, debe volver a registrar los juegos de datos de Enlaces en la nube. Consulte Actualización de una instancia siempre gratis a una cuenta de pago con Autonomous Database para obtener más información.

  • La conectividad remota de Cloud Links utiliza el servicio MEDIUM y esto no se puede cambiar. Puede ver las conexiones remotas como usuario C##DATA$SHARE en V$SESSION y las vistas de enlaces en la nube V$CLOUD_LINK_ACCESS_STATS y las vistas GV$CLOUD_LINK_ACCESS_STATS proporcionan más detalles sobre las conexiones remotas.

  • Todas las interfaces distinguen entre mayúsculas y minúsculas, a menos que se indique lo contrario, de la siguiente manera:

    • Todo lo que introduzca que exista en la base de datos, por ejemplo, nombres de usuario y nombres de tabla, es significativo y se debe introducir con letras mayúsculas.
    • Variables predefinidas, por ejemplo, los valores de ámbito predefinidos se deben introducir en mayúsculas.
    • Cualquier cosa que especifique para la configuración de enlaces en la nube, por ejemplo, espacios de nombres o nombres de tablas en un espacio de nombres, se debe especificar como se ha introducido. Por ejemplo, si define un espacio de nombres como trees, debe incluir el espacio de nombres entre comillas dobles, como "trees", al acceder a él con SQL.
  • Puede compartir enlaces de nube cuando un juego de datos reside en una instancia de Autonomous Database en modo de solo lectura. Consulte Uso de enlaces de nube de una instancia de Autonomous Database de solo lectura para obtener más información.

  • Puede tardar hasta 10 minutos después de crear una clonación de refrescamiento para que la clonación de refrescamiento esté visible como destino de descarga. Esto significa que puede que tenga que esperar hasta 10 minutos después de crear una clonación de refrescamiento para que la clonación de refrescamiento esté disponible para el registro de descarga de enlaces en la nube.

    Consulte Registro de un juego de datos con destinos de descarga para el acceso al juego de datos y Creación de una clonación de refrescamiento para una instancia de Autonomous Database para obtener más información.