Utilisation de liens cloud pour l'accès aux données en lecture seule sur Autonomous Database

Cloud Links fournit une méthode basée sur le cloud permettant d'accéder à distance aux données en lecture seule sur une instance Autonomous Database.

A propos des liens cloud sur Autonomous Database

Avec Cloud Links, un propriétaire de données enregistre une table ou une vue pour un accès à distance pour une audience sélectionnée, telle que définie par le propriétaire des données, et les données sont ensuite accessibles aux personnes disposant d'un accès accordé au moment de l'inscription. Aucune autre action n'est nécessaire pour configurer les Cloud Links et quiconque est censé voir et accéder à vos données est en mesure de découvrir et de travailler avec les données.

L'implémentation des liens cloud s'appuie sur les mécanismes d'accès d'Oracle Cloud Infrastructure pour rendre les données accessibles dans une portée spécifique. La portée indique qui peut accéder à distance aux données. La portée peut être définie sur différents niveaux, notamment la région où réside la base de données, les locations individuelles ou les compartiments. En outre, vous pouvez indiquer que l'autorisation d'accès à un ensemble de données est limitée à des instances Autonomous Database.

En créant des clones actualisables inter-région à partir de l'instance Autonomous Database source (propriétaire de l'ensemble de données), vous pouvez utiliser des liens cloud pour partager des données entre plusieurs régions.

Les liens cloud simplifient considérablement le partage de tables ou de vues entre les instances Autonomous Database, par rapport aux mécanismes de liaison de base de données traditionnels. Avec Cloud Links, vous pouvez repérer des données sans avoir à configurer des liens de base de données complexes. Autonomous Database fournit un accès transparent à l'aide de SQL, et implémente l'application des privilèges avec la portée Cloud Links et en accordant une autorisation à des instances Autonomous Database individuelles.

Cloud Links présente les concepts d'espaces de noms régionaux et les noms des données rendues accessibles à distance. Elle est similaire aux tables Oracle existantes où il existe une table, par exemple "EMP" qui réside dans un espace de noms (schéma), par exemple "LWARD". La base de données ne peut contenir qu'une seule valeur LWARD.EMP. Les liens cloud fournissent un nom et un espace de noms similaires au niveau régional. Ils ne sont pas liés à une seule base de données, mais s'appliquent à de nombreuses instances Autonomous Database, comme indiqué avec la portée et éventuellement avec l'autorisation de base de données.

Par exemple, vous pouvez inscrire un ensemble de données sous l'espace de noms FOREST et, à des fins de sécurité ou pour faciliter la résolution de noms, vous pouvez fournir un espace de noms et un nom autres que les noms de schéma et d'objet d'origine. Dans cet exemple, TREE_DATA est le nom visible de l'ensemble de données inscrit et ce nom n'est pas obligatoire pour être le nom de la table source. Outre l'espace de noms et le nom, le mot-clé cloud$link indique à la base de données qu'elle doit résoudre la source en tant que lien cloud.

Pour accéder à un ensemble de données inscrit, incluez l'espace de noms, le nom et le mot-clé cloud$link dans la clause FROM d'une instruction SELECT :

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

Vous pouvez éventuellement indiquer que l'accès à un ensemble de données à partir d'une ou plusieurs bases de données est déchargé vers un clone actualisable. Lorsqu'une instance Autonomous Database de consommateur est répertoriée dans la liste de déchargement d'un ensemble de données, l'accès à l'ensemble de données est dirigé vers le clone actualisable. En outre, vous pouvez utiliser la fonctionnalité de déchargement de requête unifiée dans laquelle vous configurez un leader ou un membre de pool élastique en tant que fournisseur de liens cloud et vous activez le déchargement de requête ProxySQL pour décharger les requêtes (lectures) vers un nombre quelconque de clones actualisables.

Remarque

Les liens cloud fournissent un accès en lecture seule aux objets distants sur une instance Autonomous Database. Si vous souhaitez utiliser des liens de base de données avec d'autres bases de données Oracle ou avec des bases de données non Oracle, ou si vous souhaitez utiliser vos données distantes avec des opérations LMD, vous devez utiliser des liens de base de données. Pour plus d'informations, reportez-vous à Utilisation de liens de base de donnée avec Autonomous Database.
Les liens cloud prennent en charge les synonymes privés et publics. Par exemple, vous pouvez définir et utiliser un synonyme pour FOREST.TREE_DATA@cloud$link :
CREATE SYNONYM S1 for FOREST.TREE_DATA@cloud$link;
SELECT county, species, height FROM S1;

CREATE PUBLIC SYNONYM S2 for FOREST.TREE_DATA@cloud$link;
SELECT * FROM S2;

Pour plus d'informations sur les synonymes, reportez-vous à Présentation des synonymes.

Termes des liens cloud

Il existe plusieurs concepts et termes à utiliser lorsque vous utilisez Cloud Links :

  • Ensemble de données inscrit : identifie une table ou une vue qui a été activée pour l'accès distant dans une instance Autonomous Database. Un jeu de données enregistré indique également qui est autorisé à accéder au jeu de données (sa portée). L'inscription d'un jeu de données définit un espace de noms et un nom à utiliser avec les liens cloud. Après l'enregistrement du jeu de données, ces valeurs spécifient ensemble le nom qualifié complet (FQN) pour l'accès à distance et permettent aux Cloud Links de gérer l'accessibilité du jeu de données.

  • Propriétaire de jeu de données : indiquez un propriétaire de jeu de données pour fournir un point de contact pour les questions sur un jeu de données.

  • Portée : indique qui et à partir duquel un utilisateur est autorisé à accéder à un ensemble de données enregistré. Pour plus d'informations sur la portée, reportez-vous à Portée de l'ensemble de données, contrôle d'accès et autorisation.

  • OCID (identificateur Oracle Cloud) : identifie une location, un compartiment ou une base de données spécifique. La portée d'un ensemble de données enregistré peut être exprimée en termes d'OCID. Pour plus d'informations, reportez-vous à Identificateurs de ressource.

  • Enregistrement des données : avec l'enregistrement des données, un utilisateur met une table ou une vue à disposition pour un accès distant, soumis aux restrictions d'accès imposées par la portée et éventuellement soumis à une étape d'autorisation supplémentaire. Vous pouvez autoriser l'accès à distance avec des liens cloud sur une table ou une vue stockée dans la base de données ou sur des données stockées dans la banque d'objets.

  • Repérage de données : un ensemble de données inscrit peut être repéré à l'aide de requêtes textuelles de la base de données. Le repérage n'affiche un jeu de données que s'il dispose d'un privilège permettant d'y accéder. Vous pouvez rechercher un jeu de données enregistré par nom ou par description.

  • Description des données : permet à un utilisateur d'extraire une description ou des métadonnées pour une table ou une vue mise à disposition en tant qu'ensemble de données inscrit.

  • Cibles de déchargement : vous pouvez éventuellement indiquer des cibles de déchargement. Les cibles de déchargement sont des clones actualisables qui fournissent des ensembles de données Cloud Links à des instances Autonomous Database spécifiées. En indiquant une cible de déchargement, vous pouvez dédier une instance Autonomous Database pour fournir des ensembles de données afin de séparer la production du développement, de garantir les performances, de garantir la sécurité ou pour d'autres raisons. Pour plus d'informations, reportez-vous à Utilisation de clones actualisables avec Autonomous Database.

Audit des liens cloud

Tout accès à un ensemble de données enregistré à l'aide de Cloud Links est consigné à des fins d'audit. Le journal inclut la location, le compartiment ou la base de données qui a accédé à l'ensemble de données, la quantité de données consultées et des informations supplémentaires. Les vues V$CLOUD_LINK_ACCESS_STATS et GV$CLOUD_LINK_ACCESS_STATS affichent les informations d'audit.

Métadonnées d'ensemble de données et vues d'audit

Chaque instance Autonomous Database fournit des vues qui exposent les métadonnées d'ensemble de données et vous permettent de surveiller et d'auditer l'utilisation des données. Pour plus d'informations, reportez-vous à Surveillance et affichage des informations sur les liens cloud.

Portée, contrôle d'accès et autorisation de l'ensemble de données

Les liens cloud s'appuient sur les mécanismes d'accès d'Oracle Cloud Infrastructure pour rendre les ensembles de données inscrits accessibles et pour protéger vos données avec des restrictions d'accès.

Autonomous Database détermine l'accessibilité des ensembles de données inscrits comme suit :

  • L'utilisateur ADMIN spécifie une portée pour un utilisateur qui lui permet d'enregistrer des jeux de données en fonction de la portée fournie.

  • Un utilisateur disposant de privilèges pour enregistrer des jeux de données spécifie une portée lorsqu'il enregistre un jeu de données.

  • Lorsque vous enregistrez un jeu de données, un utilisateur disposant de privilèges d'autorisation peut éventuellement indiquer qu'une étape d'autorisation est requise pour accéder à un jeu de données. Cette étape d'autorisation s'ajoute à l'autorisation d'accès au niveau du périmètre.

Portée du jeu de données

L'administrateur définit la portée d'un utilisateur avec DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER comme l'une des valeurs suivantes :

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

La portée d'un utilisateur est hiérarchique, ce qui signifie qu'un utilisateur disposant de l'une de ces portées peut autoriser l'accès comme suit :

  • MY$REGION : un utilisateur peut accorder un accès aux données distantes à d'autres locations de la région de l'instance Autonomous Database qui inscrit l'ensemble de données. Il s'agit de la portée la moins restrictive.

  • MY$TENANCY : un utilisateur peut accorder un accès aux données distantes à n'importe quelle ressource, location, compartiment ou base de données de la location de l'instance Autonomous Database qui inscrit l'ensemble de données. Cette portée est plus restrictive que la portée MY$REGION.

  • MY$COMPARTMENT : un utilisateur peut accorder un accès aux données distantes à n'importe quelle ressource, compartiment ou base de données du compartiment de l'instance Autonomous Database qui inscrit l'ensemble de données. Il s'agit de la portée la plus restrictive que vous pouvez définir pour un utilisateur avec GRANT_REGISTER.

Ensuite, la portée que vous définissez lors de l'enregistrement d'un jeu de données détermine à partir de quel emplacement les utilisateurs sont autorisés à accéder au jeu de données. DBMS_CLOUD_LINK.REGISTER scope est une liste séparée par des virgules composée de plusieurs des éléments suivants :

  • OCID de base de données : l'accès à l'ensemble de données est autorisé pour les instances Autonomous Database spécifiques identifiées par l'OCID.

  • OCID de compartiment : l'accès à l'ensemble de données est autorisé pour les bases de données dans les compartiments identifiés par l'OCID de compartiment.

  • OCID de la location : l'accès à l'ensemble de données est autorisé pour les bases de données des locations identifiées par l'OCID de la location.

  • Nom de région : l'accès à l'ensemble de données est autorisé pour les bases de données de la région identifiée par la région nommée. Dans tous les cas, l'accès aux Cloud Links est limité à une seule région et n'est pas inter-région.

  • MY$COMPARTMENT : l'accès à l'ensemble de données est autorisé pour les bases de données du même compartiment que le propriétaire de l'ensemble de données.

  • MY$TENANCY : l'accès à l'ensemble de données est autorisé pour les bases de données de la même location que le propriétaire de l'ensemble de données.

  • MY$REGION : l'accès à l'ensemble de données est autorisé pour les bases de données de la même région que le propriétaire de l'ensemble de données.

Les valeurs de portée, MY$REGION, MY$TENANCY et MY$COMPARTMENT, sont des variables qui agissent comme des macros pratiques et sont résolues en OCID.

Remarque

La portée que vous définissez lors de l'inscription d'un ensemble de données est uniquement prise en compte lorsqu'elle correspond ou est plus restrictive que la valeur définie avec DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER. Par exemple, supposons que l'administrateur ait accordé la portée 'MY$TENANCY' avec GRANT_REGISTER et que l'utilisateur indique 'MY$REGION' lorsqu'il inscrit un ensemble de données avec DBMS_CLOUD_LINK.REGISTER. Dans ce cas, une erreur telle que la suivante s'affiche :
ORA-20001: Share privileges are not enabled for current user or it is enabled but not for scope MY$REGION

Vous pouvez également utiliser un mécanisme de contrôle d'accès supplémentaire basé sur une valeur SYS_CONTEXT. Ce mécanisme utilise la fonction DBMS_CLOUD_LINK.GET_DATABASE_ID qui renvoie un identificateur disponible en tant que valeur SYS_CONTEXT.

Lorsque vous inscrivez un ensemble de données auprès de DBMS_CLOUD_LINK.REGISTER, vous pouvez utiliser la valeur SYS_CONTEXT dans les stratégies de sécurité Oracle Virtual Private Database (VPD) pour contrôler l'accès à la base de données afin de restreindre et de contrôler davantage les données spécifiques auxquelles peuvent accéder les instances Autonomous Database individuelles.

Pour plus d'informations sur l'utilisation des stratégies VPD, reportez-vous à Définition d'une stratégie de base de données privée virtuelle pour sécuriser un ensemble de données inscrit.

La valeur de l'ID de base de données est également disponible dans les vues V$CLOUD_LINK_ACCESS_STATS et GV$CLOUD_LINK_ACCESS_STATS qui assurent le suivi des statistiques d'accès et des informations d'audit.

Pour plus d'informations, reportez-vous à Utilisation d´Oracle Virtual Private Database pour contrôler l´accès aux données.

Autorisation de jeu de données

Lorsque vous enregistrez un ensemble de données, si des privilèges d'autorisation vous ont été accordés, vous pouvez indiquer que l'autorisation d'OCID de base de données est requise pour accéder à un ensemble de données. Afin de fournir l'autorisation d'OCID de base de données pour un ensemble de données, utilisez la procédure DBMS_CLOUD_LINK.GRANT_AUTHORIZATION pour indiquer les instances Autonomous Database autorisées à accéder à l'ensemble de données. Avant d'exécuter DBMS_CLOUD_LINK.GRANT_AUTHORIZATION, l'administrateur doit vous autoriser à exécuter cette procédure avec DBMS_CLOUD_LINK_ADMIN.GRANT_AUTHORIZE.

L'enregistrement du jeu de données avec l'autorisation requise spécifie l'accès au niveau de la base de données pour un jeu de données, en plus du contrôle d'accès de portée spécifié pour le jeu de données, comme suit :

  • Les bases de données comprises dans l'élément SCOPE indiqué et autorisées avec l'élément DBMS_CLOUD_LINK.GRANT_AUTHORIZATION peuvent visualiser les lignes de l'ensemble de données.

  • Les bases de données comprises dans l'élément SCOPE indiqué mais qui n'ont pas été autorisées avec l'élément DBMS_CLOUD_LINK.GRANT_AUTHORIZATION ne peuvent pas visualiser les lignes de l'ensemble de données. Dans ce cas, les consommateurs sans autorisation voient le jeu de données vide.

  • Les bases de données qui ne se trouvent pas dans le fichier SCOPE indiqué voient une erreur lors de la tentative d'accès à l'ensemble de données.

Accorder l'accès aux liens cloud aux utilisateurs de base de données

L'utilisateur ADMIN accorde des privilèges aux utilisateurs de base de données pour inscrire des jeux de données. L'utilisateur ADMIN accorde également des privilèges aux utilisateurs de base de données pour accéder aux jeux de données enregistrés.

Lorsque l'utilisateur ADMIN accorde des privilèges d'enregistrement, il fournit une portée qui spécifie la portée maximale qu'un utilisateur peut fournir lorsqu'il inscrit un jeu de données (dans la hiérarchie de la portée). Les valeurs scope valides à utiliser avec DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER sont les suivantes :

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

Pour plus d'informations, reportez-vous à Portée de l'ensemble de données, contrôle d'accès et autorisation.

  1. En tant qu'utilisateur ADMIN, autorisez un utilisateur à inscrire des jeux de données dans une portée spécifiée.
    BEGIN
    DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER(
       username => 'DB_USER1',
       scope    => 'MY$REGION');
    END;
    /

    Cela indique que l'utilisateur DB_USER1 dispose de privilèges permettant d'inscrire des jeux de données dans une portée spécifiée, 'MY$REGION'.

    Un utilisateur peut interroger SYS_CONTEXT('USERENV', 'CLOUD_LINK_REGISTER_ENABLED') pour vérifier s'il est activé pour l'inscription des ensembles de données.

    Par exemple, la requête suivante :

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

    Renvoie YES ou NO'.

    Pour plus d'informations, reportez-vous à Procédure GRANT_REGISTER.

  2. En tant qu'utilisateur ADMIN, autorisez un utilisateur à accéder aux jeux de données enregistrés.
    EXEC DBMS_CLOUD_LINK_ADMIN.GRANT_READ('LWARD');

    Cela permet à LWARD d'accéder aux ensembles de données inscrits disponibles pour l'instance Autonomous Database.

    Un utilisateur peut interroger SYS_CONTEXT('USERENV', 'CLOUD_LINK_READ_ENABLED') pour vérifier s'il est activé pour l'accès READ à un ensemble de données.

    Par exemple, la requête suivante :

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

    Renvoie "YES" ou "NO'".

    Pour plus d'informations, reportez-vous à Procédure GRANT_READ.

  3. Lors de l'inscription des données, vous pouvez définir le paramètre d'autorisation requis sur TRUE. Lorsque l'autorisation requise est TRUE, l'utilisateur ADMIN doit exécuter DBMS_CLOUD_LINK_ADMIN.GRANT_AUTHORIZE pour fournir l'autorisation d'appeler DBMS_CLOUD_LINK.GRANT_AUTHORIZATION. Utilisez DBMS_CLOUD_LINK.GRANT_AUTHORIZATION pour indiquer les détails d'autorisation.

    Pour plus d'informations, reportez-vous à Inscription d'un ensemble de données avec autorisation requise.

  4. Lorsque Database Vault est activé pour l'instance Autonomous Database et que la table ou la vue à inscrire auprès de Cloud Links est protégée par un domaine, le propriétaire de la table ou de la vue doit être autorisé pour le domaine en tant que propriétaire de domaine avant l'inscription.
    BEGIN
         DBMS_MACADM.ADD_AUTH_TO_REALM(
               realm_name   => 'myrealm',
               grantee      => 'object_owner',
               auth_option  => dbms_macutl.g_realm_auth_owner);
    END;
    /

    Si le domaine protégeant la table ou la vue est un domaine obligatoire, le schéma commun Autonomous Database nommé C##DATA$SHARE, qui est utilisé en interne comme schéma de connexion, doit être autorisé pour le domaine en tant que participant au domaine.

    Par exemple :

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

    Pour plus d'informations, reportez-vous à Utilisation d'Oracle Database Vault avec Autonomous Database.

Remarques concernant l'octroi de privilèges aux utilisateurs de base de données pour l'enregistrement des jeux de données :

  • Pour enregistrer des ensembles de données ou afficher des ensembles de données distants et y accéder, vous devez disposer du privilège approprié pour l'inscription auprès de DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER ou pour la lecture des ensembles de données auprès de DBMS_CLOUD_LINK_ADMIN.GRANT_READ.

    Cela est également vrai pour l'utilisateur ADMIN. Cependant, l'utilisateur ADMIN peut accorder des privilèges à lui-même.

  • Les vues DBA_CLOUD_LINK_PRIVS et USER_CLOUD_LINK_PRIVS fournissent des informations sur les privilèges utilisateur. Pour plus d'informations, reportez-vous à Surveillance et affichage des informations sur les liens cloud.

  • Un utilisateur peut exécuter la requête suivante pour vérifier s'il est activé pour l'authentification des jeux de données enregistrés et protégés :

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

Révoquer l'accès aux liens cloud pour les utilisateurs de base de données

L'utilisateur ADMIN peut révoquer l'inscription pour interdire à un utilisateur d'inscrire des jeux de données pour l'accès distant. L'utilisateur ADMIN peut également révoquer des privilèges ou des utilisateurs de base de données pour accéder aux jeux de données inscrits.

  1. En tant qu'utilisateur ADMIN, révoquez les privilèges d'un utilisateur pour inscrire des jeux de données.

    Par exemple :

    EXEC DBMS_CLOUD_LINK_ADMIN.REVOKE_REGISTER('DB_USER1');

    Cela révoque les privilèges permettant d'inscrire des jeux de données pour l'utilisateur, DB_USER1.

    L'exécution de DBMS_CLOUD_LINK_ADMIN.REVOKE_REGISTER n'affecte pas les ensembles de données déjà inscrits. Utilisez DBMS_CLOUD_LINK.UNREGISTER pour enlever l'accès à un ensemble de données inscrit.

    Pour plus d'informations, reportez-vous aux sections REVOKE_REGISTER Procedure et UNREGISTER Procedure.

  2. En tant qu'utilisateur ADMIN, révoquez l'accès aux jeux de données enregistrés.

    Par exemple :

    EXEC DBMS_CLOUD_LINK_ADMIN.REVOKE_READ('LWARD');

    Cela révoque l'accès aux jeux de données Cloud Links pour l'utilisateur LWARD.

    Pour plus d'informations, reportez-vous à Procédure REVOKE_READ.

Enregistrer un jeu de données

Décrit les options et les étapes d'inscription d'une table ou d'une vue dont vous êtes propriétaire en tant qu'ensemble de données enregistré à partager avec Cloud Links.

Inscrire ou désinscrire un ensemble de données

Vous pouvez enregistrer une table ou une vue dont vous êtes propriétaire en tant qu'ensemble de données enregistré. Lorsque vous voulez supprimer ou remplacer le jeu de données, vous devez le désinscrire. Après avoir enregistré un jeu de données, vous pouvez modifier les valeurs des attributs d'un jeu de données.

L'inscription d'un jeu de données définit un espace de noms et un nom à utiliser avec les liens cloud. Après l'enregistrement du jeu de données, ces valeurs spécifient ensemble le nom qualifié complet (FQN) pour l'accès à distance et permettent aux Cloud Links de gérer l'accessibilité du jeu de données.

Pour enregistrer un ensemble de données :

  1. Obtenez des privilèges de registre d'octroi auprès de l'utilisateur ADMIN.
  2. Inscrivez un ou plusieurs jeux de données.

    Par exemple, en supposant qu'il existe un schéma CLOUDLINK sur votre instance Autonomous Database, vous pouvez inscrire deux objets, SALES_VIEW_AGG et SALES_ALL, et fournir des paramètres scope différents pour déterminer le mode d'accès aux objets.

    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;
    /

    Les paramètres sont les suivants :

    • schema_name : nom du schéma (propriétaire de l'objet).

    • schema_object : nom de l'objet. Les objets valides sont :

      Remarque

      Les autres objets tels que les vues analytiques ou les synonymes ne sont pas pris en charge.
    • namespace : espace de noms que vous indiquez comme nom d'accès avec les liens cloud (une partie du nom qualifié complet de lien cloud).

      Une valeur NULL indique une valeur namespace générée par le système, propre à l'instance Autonomous Database.

    • name : nom que vous indiquez pour l'accès avec les liens cloud (une partie du nom qualifié complet de lien cloud).

    • description : indique le texte décrivant les données.

    • scope : indique la portée. Vous pouvez utiliser l'une des variables : MY$REGION, MY$TENANCY ou MY$COMPARTMENT, ou indiquer des OCID.

      Pour plus d'informations, reportez-vous à Portée de l'ensemble de données, contrôle d'accès et autorisation.

    • auth_required : valeur booléenne indiquant si l'autorisation au niveau de la base de données est requise pour l'ensemble de données, en plus du contrôle d'accès de portée. Lorsque cette valeur est définie sur TRUE, le jeu de données applique une étape d'autorisation supplémentaire. Pour plus d'informations, reportez-vous à Inscription d'un ensemble de données avec autorisation requise.

    • data_set_owner : la valeur de texte indique les informations relatives à la personne responsable de l'ensemble de données ou à un interlocuteur pour toute question sur l'ensemble de données. Par exemple, vous pouvez indiquer une adresse électronique pour le propriétaire du jeu de données.

    Pour plus d'informations, reportez-vous à Procédure REGISTER.

    Dans cet exemple, une fois l'inscription terminée, la portée des deux objets enregistrés est différente, en fonction du paramètre de portée fourni avec DBMS_CLOUD_LINK.REGISTER :

    • MY$TENANCY : indique la portée de niveau location pour REGIONAL_SALES.SALES_AGG.

    • MY$COMPARTMENT : indique la portée de niveau de compartiment la plus restrictive dans la location pour TRUSTED_COMPARTMENT.SALES.

Vous pouvez mettre à jour certaines valeurs pour les attributs d'un jeu de données après avoir enregistré un jeu de données. Pour plus d'informations, voir Mettre à jour les attributs d'inscription de jeu de données.

Si vous souhaitez révoquer l'accès distant à un jeu de données inscrit, annulez l'enregistrement du jeu de données.

Par exemple :

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

Pour plus d'informations, reportez-vous à Procédure UNREGISTER.

Remarques sur l'enregistrement ou l'annulation de l'enregistrement d'un ensemble de données

Fournit des notes pour l'enregistrement d'un ensemble de données avec DBMS_CLOUD_LINK.REGISTER et l'annulation de l'enregistrement d'un ensemble de données avec DBMS_CLOUD_LINK.UNREGISTER.

  • Une fois que vous avez inscrit un objet, les utilisateurs peuvent avoir besoin d'attendre jusqu'à dix (10) minutes pour accéder à l'objet avec Cloud Links.

  • Lorsque vous enregistrez un ensemble de données et que vous souhaitez que les destinataires d'une région distante accèdent à l'ensemble de données, vous devez effectuer des étapes supplémentaires pour le rendre disponible dans une région distante. Pour plus d'informations, reportez-vous à Inscription ou annulation de l'inscription d'un ensemble de données dans une autre région.

  • Utilisez la procédure DBMS_CLOUD_LINK.UPDATE_REGISTRATION pour modifier les attributs d'un ensemble de données existant.

    Le temps d'attente de la mise à jour peut aller jusqu'à 10 minutes pour qu'une modification d'inscription soit propagée et accessible via Cloud Links. Ce délai peut avoir une incidence sur l'exactitude des données dans les vues DBA_CLOUD_LINK_REGISTRATIONS et DBA_CLOUD_LINK_ACCESS.

  • Vous pouvez inscrire une table ou une vue qui réside dans le schéma d'un autre utilisateur lorsque vous disposez des privilèges READ WITH GRANT OPTION pour la table ou la vue.

  • Autonomous Database n'effectue pas de vérification hiérarchique de la validité au moment de l'inscription et les inscriptions en dehors de la portée ne seront jamais visibles ou accessibles.

    Voici un exemple de séquence :

    1. Un utilisateur avec la portée MY$COMPARTMENT inscrit un objet avec une portée qui indique un OCID de base de données individuel.

    2. Lorsqu'un utilisateur demande l'accès à l'ensemble de données inscrit, Autonomous Database vérifie que l'OCID de base de données de la base de données d'où provient la demande figure dans la liste d'OCID indiquée avec scope lors de l'inscription de l'ensemble de données.

    3. Après cela, l'objet namespace.name sera repérable, visible et utilisable dans la base de données à l'origine de la demande.

  • La propagation complète de DBMS_CLOUD_LINK.UNREGISTER peut prendre jusqu'à dix (10) minutes, après quoi les données sont accessibles à distance.

Enregistrer ou annuler l'enregistrement d'un ensemble de données dans une autre région

Vous pouvez utiliser des liens cloud dans plusieurs régions, la région source contenant la base de données source de l'ensemble de données et des régions distantes contenant des clones actualisables de la base de données source.

Description de l'image cloud-links-cross-region-refreshable-clone.png
Description de l'image cloud-links-cross-region-refreshable-clone.png

Pour utiliser des liens cloud avec un ensemble de données dans une autre région :

  1. Créez un clone actualisable inter-région de la base de données source dans une région distante.

    Pour plus d'informations sur l'ajout d'un clone actualisable inter-région, reportez-vous à Création d'une location ou d'un clone actualisable inter-région.

  2. Dans la base de données source, enregistrez l'ensemble de données.

    Pour plus d'informations, reportez-vous à Inscription ou annulation de l'inscription d'un ensemble de données.

  3. Actualisez le clone actualisable.

    Pour plus d'informations, reportez-vous à Actualisation d'un clone actualisable sur Autonomous Database.

  4. Sur le clone actualisable distant, enregistrez le jeu de données à l'aide des arguments que vous avez utilisés pour l'enregistrer dans la région source.

    Par exemple, en supposant qu'il existe un schéma CLOUDLINK sur votre instance Autonomous Database, une fois que vous avez inscrit SALES_ALL sur la base de données source, inscrivez SALES_ALL sur le clone actualisable :

    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;
    /

    Les paramètres sont les suivants :

    • schema_name : nom du schéma (propriétaire de l'objet).

    • schema_object : nom de l'objet. Les objets valides sont :

      • Tables (y compris la portion de mémoire, externe ou hybride)
      • Vues
      • Vues matérialisées
      Remarque

      Les autres objets tels que les vues analytiques ou les synonymes ne sont pas pris en charge.
    • namespace : espace de noms que vous indiquez comme nom d'accès avec les liens cloud (une partie du nom qualifié complet de lien cloud).

      Une valeur NULL indique une valeur namespace générée par le système, propre à l'instance Autonomous Database.

    • name : nom que vous indiquez pour l'accès avec les liens cloud (une partie du nom qualifié complet de lien cloud).

    • description : indique le texte décrivant les données.

    • scope : indique la portée. Vous pouvez utiliser l'une des variables : MY$REGION, MY$TENANCY ou MY$COMPARTMENT, ou indiquer des OCID.

      Pour plus d'informations, reportez-vous à Portée de l'ensemble de données, contrôle d'accès et autorisation.

    • auth_required : valeur booléenne indiquant si l'autorisation au niveau de la base de données est requise pour l'ensemble de données, en plus du contrôle d'accès de portée. Lorsque cette valeur est définie sur TRUE, le jeu de données applique une étape d'autorisation supplémentaire. Pour plus d'informations, reportez-vous à Inscription d'un ensemble de données avec autorisation requise.

    • data_set_owner : la valeur de texte indique les informations relatives à la personne responsable de l'ensemble de données ou à un interlocuteur pour toute question sur l'ensemble de données. Par exemple, vous pouvez indiquer une adresse électronique pour le propriétaire du jeu de données.

    Pour plus d'informations, reportez-vous à Procédure REGISTER.

    Une fois l'inscription terminée sur le clone actualisable, la portée de l'objet inscrit est MY$COMPARTMENT : indique la portée de niveau de compartiment la plus restrictive pour mon compartiment dans ma location pour TRUSTED_COMPARTMENT.SALES.

Vous pouvez annuler l'enregistrement d'un ensemble de données distant uniquement dans les régions distantes, ou dans les régions distantes et dans la région source :

Pour annuler l'enregistrement d'un ensemble de données dans une région distante et désactiver l'accès distant à l'ensemble de données :

  1. Dans le clone actualisable, annulez l'enregistrement de l'ensemble de données.

    Par exemple :

    BEGIN
       DBMS_CLOUD_LINK.UNREGISTER(
        namespace      => 'TRUSTED_COMPARTMENT', 
        name           => 'SALES');
    END;
    /
  2. Actualisez le clone actualisable.

    Pour plus d'informations, reportez-vous à Actualisation d'un clone actualisable sur Autonomous Database.

Pour annuler l'enregistrement d'un ensemble de données sur la base de données source et l'enregistrement sur des clones actualisables de région distante, procédez comme suit :

  1. Sur le clone actualisable distant s'il n'y a qu'un seul clone actualisable, ou sur plusieurs clones actualisables dans les régions distantes s'il y en a plusieurs, annulez l'enregistrement de l'ensemble de données.

    Par exemple :

    BEGIN
       DBMS_CLOUD_LINK.UNREGISTER(
        namespace      => 'TRUSTED_COMPARTMENT', 
        name           => 'SALES');
    END;
    /
  2. Dans la base de données source, annulez l'enregistrement du jeu de données.

    Pour plus d'informations, reportez-vous à Inscription ou annulation de l'inscription d'un ensemble de données.

  3. Actualisez les clones actualisables.

    Pour plus d'informations, reportez-vous à Actualisation d'un clone actualisable sur Autonomous Database.

Remarques concernant l'enregistrement ou l'annulation de l'enregistrement d'un ensemble de données dans une région distante

Fournit des notes pour l'inscription d'un ensemble de données dans une région distante.

  • Lorsque vous inscrivez un ensemble de données sur un clone actualisable dans une région distante, l'appel de DBMS_CLOUD_LINK.REGISTER sur le clone de région distante doit utiliser les mêmes paramètres avec les mêmes valeurs que sur la base de données source, à l'exception du paramètre offload_targets.

    Par exemple, lorsque vous exécutez DBMS_CLOUD_LINK.REGISTER avec une portée définie sur MY$COMPARTMENT sur l'instance Autonomous Database source, exécutez de nouveau la procédure sur le clone actualisable inter-région avec la même valeur de paramètre de portée (MY$COMPARTMENT).

  • Si vous indiquez le paramètre offload_targets avec DBMS_CLOUD_LINK.REGISTER sur la source, vous devez omettre ce paramètre lorsque vous inscrivez l'ensemble de données sur le clone actualisable.

  • Une fois que vous avez inscrit un objet, les utilisateurs peuvent avoir besoin d'attendre jusqu'à dix (10) minutes pour accéder à l'objet avec Cloud Links.

  • Les actions suivantes nécessitent l'actualisation du clone actualisable :

    • Si vous ajoutez une stratégie VPD à l'ensemble de données dans la source, vous devez actualiser le clone actualisable.

    • Si vous octroyez ou révoquez l'ensemble de données sur la base de données source, vous devez actualiser le clone actualisable.

    Pour plus d'informations, reportez-vous à Actualisation d'un clone actualisable sur Autonomous Database.

Enregistrer un jeu de données avec autorisation requise

Lorsque vous enregistrez un ensemble de données (facultatif), en plus de la portée, vous pouvez indiquer que l'autorisation au niveau de la base de données est requise pour accéder à un ensemble de données.

Par rapport à l'exemple précédent où vous avez défini auth_required sur FALSE, dans cet exemple, vous avez défini auth_required sur TRUE. Lorsque auth_required est défini sur TRUE, des étapes supplémentaires sont requises pour indiquer les bases de données à partir desquelles l'accès à l'ensemble de données est autorisé.

Remarque

Vous pouvez uniquement accorder une autorisation, comme indiqué dans ces étapes, si vous disposez d'une autorisation. L'administrateur accorde des privilèges d'autorisation avec DBMS_CLOUD_LINK_ADMIN.GRANT_AUTHORIZE.
  1. Utilisez DBMS_CLOUD_LINK.REGISTER pour inscrire des données avec l'autorisation requise.

    En supposant qu'il existe un schéma CLOUDLINK sur votre instance Autonomous Database et que vous inscrivez l'objet SALES_VIEW_AGG et que vous définissez auth_required sur TRUE, vous devez, en plus de définir la portée, effectuer des étapes supplémentaires pour déterminer le mode d'accès à l'objet.

    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;
    /

    Les paramètres sont les suivants :

    • schema_name : nom du schéma (propriétaire de l'objet).

    • schema_object : nom de l'objet. Les objets valides sont :

      • Tables (y compris la portion de mémoire, externe ou hybride)
      • Vues
      • Vues matérialisées
      Remarque

      Les autres objets tels que les vues analytiques ou les synonymes ne sont pas pris en charge.
    • namespace : espace de noms que vous indiquez comme nom d'accès avec les liens cloud (une partie du nom qualifié complet de lien cloud).

      Une valeur NULL indique une valeur namespace générée par le système, propre à l'instance Autonomous Database.

    • name : nom que vous indiquez pour l'accès avec les liens cloud (une partie du nom qualifié complet de lien cloud).

    • scope : indique la portée. Vous pouvez utiliser l'une des variables : MY$REGION, MY$TENANCY ou MY$COMPARTMENT, ou indiquer des OCID.

      Pour plus d'informations, reportez-vous à Portée de l'ensemble de données, contrôle d'accès et autorisation.

    • auth_required : valeur booléenne indiquant si l'autorisation au niveau de la base de données est requise pour l'ensemble de données, en plus du contrôle d'accès de portée. Lorsque cette valeur est définie sur TRUE, le jeu de données applique une étape d'autorisation supplémentaire.

    • data_set_owner : la valeur de texte indique les informations relatives à la personne responsable de l'ensemble de données ou à un interlocuteur pour toute question sur l'ensemble de données. Par exemple, vous pouvez indiquer une adresse électronique pour le propriétaire du jeu de données.

  2. Obtenez l'ID de la base de données à laquelle vous souhaitez accorder l'autorisation (pour permettre à la base de données d'accéder à l'ensemble de données).

    Sur le système, vous souhaitez accorder l'accès au jeu de données :

    SELECT DBMS_CLOUD_LINK.GET_DATABASE_ID FROM DUAL:
  3. Utilisez l'ID de base de données obtenu pour accorder l'autorisation à un ensemble de données spécifié.

    Vous pouvez uniquement accorder une autorisation et exécuter DBMS_CLOUD_LINK.GRANT_AUTHORIZATION, comme indiqué dans cette étape, si vous disposez d'une autorisation. L'administrateur accorde l'autorisation avec DBMS_CLOUD_LINK_ADMIN.GRANT_AUTHORIZE.

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

    Effectuez ces étapes plusieurs fois si vous souhaitez autoriser des bases de données supplémentaires.

Vous pouvez mettre à jour la valeur du paramètre auth_required après avoir inscrit un ensemble de données. Pour plus d'informations, voir Mettre à jour les attributs d'inscription de jeu de données.

Pour révoquer l'autorisation d'une base de données :

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

Pour plus d'informations, reportez-vous à :

Inscrire un ensemble de données avec des cibles de déchargement pour l'accès à un ensemble de données

Lorsque vous inscrivez un ensemble de données, vous pouvez éventuellement décharger l'accès à l'ensemble de données vers des instances Autonomous Database qui sont des clones actualisables.

Utilisez le paramètre facultatif offload_targets avec DBMS_CLOUD_LINK.REGISTER pour indiquer que l'accès est déchargé vers les clones actualisables. La base de données source de chaque clone actualisable est l'instance Autonomous Database dans laquelle vous enregistrez l'ensemble de données (éditeur de données).

La valeur offload_targets est un document JSON qui définit une ou plusieurs paires clé-valeur CLOUD_LINK_DATABASE_ID et OFFLOAD_TARGET :

  • CLOUD_LINK_DATABASE_ID est l'un des suivants :

    • ID de base de données : indique un ID de base de données pour le consommateur de jeu de données dont la demande est déchargée vers le clone actualisable correspondant indiqué avec la valeur OFFLOAD_TARGET.

      Obtenez l'ID de base de données en exécutant DBMS_CLOUD_LINK.GET_DATABASE_ID. Pour plus d'informations, reportez-vous à Fonction GET_DATABASE_ID.

    • ANY : indique que la demande du consommateur de l'ensemble de données est déchargée vers la cible de déchargement correspondante. La demande d'ensemble de données d'un consommateur est acheminée vers la cible de déchargement correspondante.

      Si vous indiquez ANY sans indiquer d'ID de base de données, toutes les demandes d'ensemble de données des destinataires sont déchargées vers le clone actualisable indiqué avec la valeur OFFLOAD_TARGET.

      Si vous indiquez à la fois des ID de base de données et ANY, les demandes d'ensemble de données provenant de consommateurs qui ne correspondent pas à un ID de base de données sont déchargées vers le clone actualisable indiqué avec la valeur OFFLOAD_TARGET.

  • OFFLOAD_TARGET est l'OCID d'une instance Autonomous Database qui est un clone actualisable.

La figure suivante illustre l'utilisation de cibles de déchargement.

Lorsqu'un destinataire d'ensemble de données demande l'accès à un ensemble de données que vous inscrivez auprès de offload_targets et que l'ID de base de données de l'instance Autonomous Database correspond à la valeur indiquée dans CLOUD_LINK_DATABASE_ID, l'accès est déchargé vers le clone actualisable identifié par OFFLOAD_TARGET dans le fichier JSON fourni.

Par exemple, l'exemple suivant présente un échantillon JSON avec trois paires de valeurs 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"
    }
  ]
}

Lorsqu'un destinataire d'ensemble de données demande l'accès à un ensemble de données que vous inscrivez auprès de offload_targets qui inclut le mot-clé ANY, l'accès est déchargé vers le clone actualisable identifié par OFFLOAD_TARGET dans le JSON fourni (sauf pour les demandes des destinataires qui ont une entrée d'ID de base de données correspondante dans le JSON fourni).

Par exemple, l'exemple suivant présente un échantillon JSON avec une paire de valeurs OFFLOAD_TARGET/CLOUD_LINK_DATABASE_ID explicite et une valeur ANY avec une valeur OFFLOAD_TARGET correspondante :

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

Pour enregistrer un ensemble de données et spécifier des cibles de déchargement, procédez comme suit :

  1. Obtenez l'OCID des clones actualisables pour lesquels vous souhaitez décharger l'accès aux ensembles de données. Les OCID de clone actualisable sont disponibles sur la console Oracle Cloud Infrastructure sur un clone actualisable.
    Remarque

    La création d'un clone actualisable peut prendre jusqu'à 10 minutes pour que le clone actualisable soit visible en tant que cible de déchargement. Cela signifie que vous devrez peut-être attendre jusqu'à 10 minutes après avoir créé un clone actualisable pour que le clone actualisable soit disponible pour l'inscription au déchargement des liens cloud.
  2. Obtenez l'ID de base de données pour les instances Autonomous Database auxquelles vous souhaitez accéder à l'ensemble de données à l'aide des données fournies par le clone actualisable.

    Sur le système auquel vous souhaitez accéder à partir d'un clone actualisable, exécutez la commande suivante :

    SELECT DBMS_CLOUD_LINK.GET_DATABASE_ID FROM DUAL:
  3. Enregistrez un ensemble de données et indiquez le paramètre offload_targets.

    Par exemple, si le schéma CLOUDLINK figure sur votre instance Autonomous Database, vous pouvez inscrire SALES_VIEW_AGG et indiquer les clones actualisables qui fournissent l'accès à l'ensemble de données :

    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;
    /

    Les paramètres sont les suivants :

    • schema_name : nom du schéma (propriétaire de l'objet).

    • schema_object : nom de l'objet. Les objets valides sont :

      • Tables (y compris la portion de mémoire, externe ou hybride)
      • Vues
      • Vues matérialisées
      Remarque

      Les autres objets tels que les vues analytiques ou les synonymes ne sont pas pris en charge.
    • namespace : espace de noms que vous indiquez comme nom d'accès avec les liens cloud (une partie du nom qualifié complet de lien cloud).

      Une valeur NULL indique une valeur namespace générée par le système, propre à l'instance Autonomous Database.

    • name : nom que vous indiquez pour l'accès avec les liens cloud (une partie du nom qualifié complet de lien cloud).

    • scope : indique la portée. Vous pouvez utiliser l'une des variables : MY$REGION, MY$TENANCY ou MY$COMPARTMENT, ou indiquer des OCID.

      Pour plus d'informations, reportez-vous à Portée de l'ensemble de données, contrôle d'accès et autorisation.

    • auth_required : valeur booléenne indiquant si l'autorisation au niveau de la base de données est requise pour l'ensemble de données, en plus du contrôle d'accès de portée. Lorsque cette valeur est définie sur TRUE, le jeu de données applique une étape d'autorisation supplémentaire. Pour plus d'informations, reportez-vous à Inscription d'un ensemble de données avec autorisation requise.

    • data_set_owner : la valeur de texte indique les informations relatives à la personne responsable de l'ensemble de données ou à un interlocuteur pour toute question sur l'ensemble de données. Par exemple, vous pouvez indiquer une adresse électronique pour le propriétaire du jeu de données.

    • offload_targets : indique des OCID Autonomous Database de clones actualisables où l'accès aux ensembles de données est déchargé, à partir de la base de données Autonomous Database où l'ensemble de données est inscrit.

      Pour chaque consommateur d'ensemble de données, l'un des éléments suivants peut correspondre pour décharger la demande vers un clone actualisable :

      • Lorsque la valeur de l'élément cloud_link_database_id indiqué correspond, c'est-à-dire que les valeurs correspondent à l'ID de base de données du consommateur, l'accès est déchargé vers le clone actualisable identifié par l'OCID indiqué dans offload_target.

      • Lorsque le mot-clé ANY est indiqué, si la valeur d'un élément cloud_link_database_id indiqué ne correspond pas, l'accès est déchargé vers le clone actualisable identifié par l'entrée ANY par l'OCID indiqué dans l'élément offload_target correspondant.

    Remarque

    Si votre éditeur de données est un leader de pool élastique ou un membre de pool élastique, au lieu de configurer les détails de la cible de déchargement avec offload_targets, vous pouvez utiliser la fonctionnalité de déchargement de requête unifiée. Dans ce cas, l'éditeur active le déchargement de requête ProxySQL pour décharger les requêtes (lues) vers un nombre quelconque de clones actualisables sans avoir à configurer les cibles. Pour plus d'informations, reportez-vous à Utilisation du déchargement de requête unifié avec des liens cloud.

    Pour plus d'informations, reportez-vous à :

Mettre à jour les attributs d'enregistrement de jeu de données

Après avoir enregistré un jeu de données, vous pouvez mettre à jour certains attributs de jeu de données. Vous ne pouvez pas mettre à jour les attributs de nom de schéma, d'objet de schéma, d'espace de noms ou de nom.

Pour mettre à jour les attributs d'un jeu de données :

  1. L'utilisateur qui a inscrit un ensemble de données peut mettre à jour ses attributs avec DBMS_CLOUD_LINK.UPDATE_REGISTRATION.

    Si vous ne disposez pas des privilèges requis pour mettre à jour les attributs de jeu de données, vous devez obtenir des privilèges d'octroi de registre auprès de l'utilisateur ADMIN.

    Pour plus d'informations, reportez-vous à Octroi de l'accès aux liens cloud aux utilisateurs de base de données.

  2. Mettez à jour un ou plusieurs attributs pour un jeu de données.

    Par exemple, utilisez DBMS_CLOUD_LINK.UPDATE_REGISTRATION pour mettre à jour les attributs description, scope et auth_required de l'ensemble de données dans l'espace de noms REGIONAL_SALES avec le nom SALES_AGG :

    BEGIN
       DBMS_CLOUD_LINK.UPDATE_REGISTRATION(
        namespace      => 'REGIONAL_SALES', 
        name           => 'SALES_AGG',
        description    => 'Updated description for aggregated regional sales information.',
        scope          => 'MY$COMPARTMENT',
        auth_required  =>  TRUE );
    END;
    /

    Les paramètres obligatoires sont les suivants :

    • namespace : espace de noms de l'ensemble de données fourni lors de l'inscription de l'ensemble de données.

    • name : nom de l'ensemble de données que vous avez indiqué lors de son inscription.

    Vous trouverez ci-dessous la liste des paramètres facultatifs. Si NULL est transmis pour une valeur de paramètre facultative, l'attribut n'est pas modifié.

    • description : indique le texte mis à jour pour décrire les données.

    • scope : indique la portée. Vous pouvez utiliser l'une des variables : MY$REGION, MY$TENANCY ou MY$COMPARTMENT, ou indiquer des OCID.

      Pour plus d'informations, reportez-vous à Portée de l'ensemble de données, contrôle d'accès et autorisation.

    • auth_required : valeur booléenne indiquant si l'autorisation au niveau de la base de données est requise pour l'ensemble de données, en plus du contrôle d'accès de portée. Lorsque cette valeur est définie sur TRUE, le jeu de données applique une étape d'autorisation supplémentaire. Pour plus d'informations, reportez-vous à Inscription d'un ensemble de données avec autorisation requise.

    • data_set_owner : la valeur de texte indique les informations relatives à la personne responsable de l'ensemble de données ou à un interlocuteur pour toute question sur l'ensemble de données. Par exemple, vous pouvez indiquer une adresse électronique pour le propriétaire du jeu de données.

    • offload_targets : indique des OCID Autonomous Database de clones actualisables où l'accès aux ensembles de données est déchargé, à partir de la base de données Autonomous Database où l'ensemble de données est inscrit. Pour plus d'informations, reportez-vous à Inscription d'un ensemble de données avec des cibles de déchargement pour l'accès à un ensemble de données.

    Vous ne pouvez pas mettre à jour les attributs schema_name ou schema_object.

    Pour plus d'informations, reportez-vous à Procédure UPDATE_REGISTRATION.

Lorsqu'un ensemble de données est inscrit dans un ou plusieurs clones actualisables inter-région, toute modification apportée à l'inscription dans la base de données source doit être propagée vers les régions distantes.

Pour propager les modifications vers les clones actualisables inter-région, procédez comme suit :

  • Si un producteur a N clones actualisables inter-région dans une région, par exemple dans la région A, exécutez DBMS_CLOUD_LINK.UPDATE_REGISTRATION sur un seul clone actualisable dans la région A.

  • Si le même émetteur a M clones actualisables inter-région dans une autre région distante, par exemple dans la région B, exécutez DBMS_CLOUD_LINK.UPDATE_REGISTRATION sur un seul clone actualisable dans la région B.

Pour mettre à jour les attributs lorsqu'un jeu de données est enregistré dans un ou plusieurs clones actualisables inter-région, procédez comme suit :

  1. Dans la base de données source, mettez à jour l'enregistrement du jeu de données.

  2. Sur un clone actualisable distant dans la région distante s'il n'existe qu'une seule région distante ou sur un clone actualisable distant dans chaque région distante s'il existe des clones actualisables répliqués dans plusieurs régions, mettez à jour l'inscription du jeu de données avec les mêmes valeurs que celles utilisées pour mettre à jour la base de données source, à l'exception du paramètre offload_targets.

    Dans une région distante donnée, vous n'avez besoin d'exécuter DBMS_CLOUD_LINK.UPDATE_REGISTRATION que sur un seul clone actualisable de cette région (si plusieurs clones actualisables sont associés au même ensemble de données, vous n'avez besoin d'exécuter la procédure qu'une seule fois pour propager les modifications vers tous les clones actualisables d'une région distante donnée).

  3. Actualisez les clones actualisables.

    Pour plus d'informations, reportez-vous à Actualisation d'un clone actualisable sur Autonomous Database.

Rechercher des ensembles de données et utiliser des liens cloud

Un utilisateur disposant d'un accès en lecture aux liens cloud peut rechercher des ensembles de données disponibles pour une instance Autonomous Database, et peut accéder aux ensembles de données inscrits et les utiliser avec ses requêtes.

Une fois que l'utilisateur ADMIN a exécuté GRANT_READ, il peut rechercher et utiliser des liens cloud.

  1. Recherchez les ensembles de données disponibles sur votre instance Autonomous Database.

    Par exemple, recherchez tous les jeux de données qui contiennent la chaîne "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"}]

    Les paramètres sont les suivants :

    • search_string : chaîne à rechercher. Le respect maj/min ne distingue pas les majuscules des minuscules.

    • search_result : document JSON qui inclut les valeurs d'espace de noms, de nom et de description de l'ensemble de données.

    Pour plus d'informations, reportez-vous à Procédure FIND.

    La procédure DBMS_CLOUD_LINK.FIND fournit le nom qualifié complet que vous pouvez utiliser avec les liens cloud. Dans le cas présent, FOREST.TREE_DATA.

  2. Utilisez la vue DBA_CLOUD_LINK_ACCESS pour répertorier les ensembles de données disponibles :
    SELECT * FROM DBA_CLOUD_LINK_ACCESS;
    
    NAMESPACE            NAME
    ---------            -------------- 
    FOREST               TREE_DATA 
    REGIONAL_SALES       SALES_AGG
    TRUSTED_COMPARTMENT  SALES
  3. Utilisez la procédure DBMS_CLOUD_LINK.DESCRIBE pour obtenir plus de détails sur un ensemble de données enregistré.
    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. Utilisez l'ensemble de données enregistré dans une requête.
    SELECT * FROM FOREST.TREE_DATA@cloud$link;
    Remarque

    L'inscription d'un ensemble de données auprès de DBMS_CLOUD_LINK.REGISTER peut prendre jusqu'à 10 minutes pour que l'ensemble de données soit visible et accessible.
Les liens cloud prennent en charge les synonymes privés et publics. Par exemple, vous pouvez définir et utiliser un synonyme pour FOREST.TREE_DATA@cloud$link :
CREATE SYNONYM S1 for FOREST.TREE_DATA@cloud$link;
CREATE PUBLIC SYNONYM S2 for FOREST.TREE_DATA@cloud$link;

SELECT * FROM S1;

SELECT * FROM S2;

Pour plus d'informations, reportez-vous à CREATE SYNONYM.

Utiliser les options de consommateur de liens cloud

Vous pouvez définir le mapping de nom de service à utiliser pour accéder aux données d'une base de données consommateur et activer la mise en cache sur un consommateur d'ensembles de données pour les résultats d'une requête ou pour un fragment de requête qui accède aux données Cloud Link.

Définir la correspondance des noms de service de base de données pour les destinataires de liens cloud

Vous pouvez définir le mappage des noms de service à utiliser lorsque les consommateurs de Cloud Links accèdent aux données d'un propriétaire de jeu de données.

Les liens cloud s'appuient sur les ressources de base de données dans l'instance Autonomous Database qui est l'émetteur d'ensembles de données, ou sur les ressources d'un clone actualisable, pour accéder aux données partagées. Par défaut, la connectivité distante permettant aux destinataires d'accéder aux données Cloud Links utilise le service de base de données MEDIUM.

Utilisez DBMS_CLOUD_LINK_ADMIN.ADD_SERVICE_MAPPING pour définir le mapping de service de base de données pour un destinataire. Dans cette procédure, vous indiquez un ID de base de données ou le mot-clé ANY pour indiquer le mapping de service consommateur. Par exemple, la figure suivante illustre un mapping entre le consommateur A et le service HIGH, le consommateur B et le service MEDIUM, le consommateur C et le service LOW, ainsi qu'un mapping entre ANY et le service TP, ce qui signifie que tous les autres consommateurs accèdent aux liens cloud à l'aide du service TP.



Pour plus d'informations sur les caractéristiques des services de base de données, reportez-vous à Noms de service Database pour Autonomous Database.

Pour définir le service de base de données à utiliser pour un consommateur Cloud Links, procédez comme suit :

  1. Obtenez l'ID de la base de données pour laquelle vous souhaitez définir un mappage de service.

    Sur la base de données du consommateur, exécutez GET_DATABASE_ID pour obtenir l'ID de base de données du consommateur. Par exemple :

    SELECT DBMS_CLOUD_LINK.GET_DATABASE_ID FROM DUAL:

    Pour plus d'informations, reportez-vous à Fonction GET_DATABASE_ID.

  2. Sur l'instance Autonomous Database du propriétaire du jeu de données, indiquez une mise en correspondance de service.

    Effectuez cette étape sur l'instance Autonomous Database du propriétaire du jeu de données (c'est-à-dire sur la base de données du producteur).

    BEGIN
       DBMS_CLOUD_LINK_ADMIN.ADD_SERVICE_MAPPING(
        database_id      => 'database_id', 
        service_name     => 'HIGH');
    END;
    /

    Où la valeur du paramètre database_id est l'ID de base de données obtenu à l'étape 1.

    Indiquez la valeur ANY pour database_id afin d'utiliser l'élément service_name indiqué avec toutes les bases de données consommateur auxquelles aucun élément service_name n'est associé à l'élément database_id. Autrement dit, toute valeur database_id dont service_name n'a pas été définie avec DBMS_CLOUD_LINK_ADMIN.ADD_SERVICE_MAPPING.

    Pour plus d'informations, reportez-vous à Procédure ADD_SERVICE_MAPPING.

    Seuls l'utilisateur ADMIN et les schémas dotés du rôle PDB_DBA peuvent exécuter DBMS_CLOUD_LINK_ADMIN.ADD_SERVICE_MAPPING.

  3. Vérifiez les ID de base de données et le mapping de service en répertoriant les mappings de service Cloud Links.

    Par exemple :

    SELECT * FROM  DBA_CLOUD_LINK_SERVICE_MAPPINGS;

    Pour plus d'informations, reportez-vous à DBA_CLOUD_LINK_SERVICE_MAPPINGS View.

Remarques concernant la définition et la modification des mappages de service :

  • Les mappages de service prennent effet au moment de l'établissement des connexions. Si les mappings de service d'un consommateur donné sont modifiés, les nouveaux mappings ne s'appliquent qu'aux nouvelles sessions du consommateur.

  • Tout mappage de service configuré dans un propriétaire de jeu de données pour un consommateur spécifique est honoré même si l'accès du consommateur est déchargé vers un clone actualisable. Le clone actualisable doit être actualisé à un point dans le temps après le moment où les mappages de service ont été configurés dans le propriétaire du jeu de données. Le déchargement vers un clone actualisable est configuré avec l'argument offload_targets lors de l'inscription du jeu de données.

    Pour plus d'informations, reportez-vous à Inscription d'un ensemble de données avec des cibles de déchargement pour l'accès à un ensemble de données.

  • Utilisez la procédure DBMS_CLOUD_LINK_ADMIN.REMOVE_SERVICE_MAPPING pour enlever un mapping de service pour une valeur database_id indiquée.

    Après l'exécution de DBMS_CLOUD_LINK_ADMIN.REMOVE_SERVICE_MAPPING, un destinataire utilise le service de base de données MEDIUM par défaut ou service_name que vous indiquez si vous exécutez DBMS_CLOUD_LINK_ADMIN.ADD_SERVICE_MAPPING avec la valeur database_id ANY. Pour plus d'informations, reportez-vous à Procédure REMOVE_SERVICE_MAPPING.

Définir la correspondance des noms de service de base de données pour les destinataires de liens cloud dans la région distante

Un ensemble de données inscrit dans une région source est accessible via des liens cloud à partir d'une région distante lorsque vous créez un clone actualisable inter-région dans la région distante.

Dans ce cas, les mappings de service pour les consommateurs de la région distante doivent être ajoutés deux fois, dans la base de données source et dans le clone actualisable de la région distante.

Procédez comme suit pour définir les mises en correspondance de service pour les destinataires de liens cloud dans une région distante.

  1. Créez un clone actualisable inter-région de la base de données source (le clone actualisable est un clone du propriétaire de l'ensemble de données Cloud Links dans la région distante).
  2. Enregistrez le jeu de données.

    Pour plus d'informations, reportez-vous à Inscription d'un ensemble de données.

  3. Ajoutez les mappages de service au propriétaire du jeu de données.
  4. Actualisez le clone actualisable.

    Pour plus d'informations, reportez-vous à Actualisation d'un clone actualisable sur Autonomous Database.

  5. Sur le clone actualisable distant, enregistrez le jeu de données à l'aide des arguments que vous avez utilisés pour l'enregistrer dans la région source (c'est-à-dire, utilisez les mêmes arguments que ceux que vous avez utilisés à l'étape 2).
  6. Dans le clone actualisable distant, ajoutez les mappings de service en utilisant les mêmes arguments que ceux utilisés dans la région source (c'est-à-dire en utilisant les mêmes arguments que ceux utilisés à l'étape 3).

Lorsqu'un destinataire de la région distante accède aux données Cloud Links, l'accès utilise les mêmes mappings de service que ceux que vous avez ajoutés dans la base de données du propriétaire du jeu de données de la région source.

Activation de la mise en cache pour un consommateur de liens cloud

Vous pouvez activer la mise en cache sur un consommateur d'ensembles de données pour les résultats d'une requête ou pour un fragment d'interrogation qui accède aux données Cloud Link.

Pour activer la mise en cache sur un consommateur d'ensemble de données, utilisez le conseil RESULT_CACHE avec l'option SHELFLIFE. Avec l'option SHELFLIFE, vous fournissez une valeur qui indique la durée, en secondes, pendant laquelle un résultat de requête est mis en cache. Une fois l'intervalle SHELFLIFE passé, le résultat mis en cache est marqué comme non valide. Tant que le résultat mis en cache est valide, une interrogation extrait les données mises en cache du cache de la base de données consommateur, ce qui évite un aller-retour vers la base de données du propriétaire du jeu de données.

Utilisez le conseil RESULT_CACHE avec l'option SHELFLIFE lorsque l'ensemble de données est statique ou lorsque le consommateur peut tolérer des résultats obsolètes. La valeur SHELFLIFE permet au consommateur d'ensemble de données Cloud Link de contrôler la durée, en secondes, pendant laquelle les données du cache sont valides (le degré acceptable de persistance).

Si le résultat de l'interrogation est volumineux et ne tient pas dans la mémoire, vous pouvez utiliser le conseil RESULT_CACHE avec l'option SHELFLIFE et l'option TEMP pour indiquer que le résultat doit être écrit sur le disque dans le tablespace temporaire.

Pour mettre en cache les données Cloud Link avec le conseil RESULT_CACHE :

  1. Dans une requête, indiquez le conseil RESULT_CACHE avec l'option SHELFLIFE.

    Par exemple :

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

    Cette valeur RESULT_CACHE indique une valeur SHELFLIFE de 120. Cela indique que le résultat doit être mis en mémoire cache pendant 120 secondes. Au bout de 120 secondes, le résultat mis en cache est marqué comme non valide.

    La valeurs SHELFLIFE doit être un entier positif. La valeur maximale de SHELFLIFE est 4294967295.

  2. Si le résultat de l'interrogation est volumineux et ne tient pas dans la mémoire, utilisez les options SHELFLIFE et TEMP pour indiquer que le résultat doit être écrit sur le disque dans le tablespace temporaire.
    SELECT /*+ RESULT_CACHE (TEMP=true SHELFLIFE=360) */ * FROM FOREST.TREE_DATA@cloud$link;

Pour plus d'informations sur l'utilisation du cache de résultats avec Autonomous Database, reportez-vous à RESULT_CACHE_MODE.

Pour plus d'informations sur RESULT_CACHE avec SHELFLIFE, reportez-vous à Conseil RESULT_CACHE.

Reportez-vous à la page DBMS_RESULT_CACHE pour plus d'informations sur les procédures de gestion du cache de résultats et d'invalidation des objets dans le cache de résultats.

Surveillance et affichage des informations sur les liens cloud

Autonomous Database fournit des vues qui vous permettent de surveiller et d'auditer les liens cloud.

Afficher Description
Vues V$CLOUD_LINK_ACCESS_STATS et GV$CLOUD_LINK_ACCESS_STATS

Permet de suivre l'accès à chaque ensemble de données inscrit sur l'instance Autonomous Database. Ces vues permettent de suivre le temps écoulé, le temps CPU, le nombre de lignes extraites et des informations supplémentaires sur les jeux de données enregistrés. Vous pouvez utiliser les informations de ces vues pour auditer l'accès et l'utilisation des jeux de données Cloud Links.

Vues DBA_CLOUD_LINK_REGISTRATIONS et ALL_CLOUD_LINK_REGISTRATIONS

Permet de répertorier les détails des ensembles de données inscrits sur une instance Autonomous Database.

Vues DBA_CLOUD_LINK_ACCESS et ALL_CLOUD_LINK_ACCESS

Permet d'extraire les détails des ensembles de données enregistrés auxquels une base de données est autorisée à accéder.

DBA_CLOUD_LINK_AUTHORIZATIONS Vue

Fournit des informations sur les bases de données autorisées à accéder aux jeux de données. Cela s'applique aux ensembles de données où le paramètre auth_required est TRUE.

Vues DBA_CLOUD_LINK_PRIVS et USER_CLOUD_LINK_PRIVS

Fournit des informations sur les privilèges propres au lien cloud, REGISTER, READ ou AUTHORIZE, accordés à tous les utilisateurs ou à l'utilisateur en cours.

DBA_CLOUD_LINK_SERVICE_MAPPINGS Vue

Affiche les détails de toutes les mises en correspondance de service pour les bases de données consommateur Cloud Links. Chaque mappage de service se compose d'un ID de base de données Cloud Link et d'un service de base de données.

Définir une stratégie de base de données privée virtuelle pour sécuriser un ensemble de données inscrit

En définissant des stratégies de base de données privée virtuelle (VPD) pour un ensemble de données inscrit, vous pouvez fournir un contrôle d'accès de liaison cloud détaillé afin qu'un seul sous-ensemble de données (lignes) soit visible pour des sites distants spécifiques.

Oracle Virtual Private Database (VPD) est une fonctionnalité de sécurité qui vous permet de contrôler dynamiquement l'accès aux données au niveau ligne pour les utilisateurs et les applications en appliquant des filtres sur le même ensemble de données.

Tout utilisateur disposant d'un accès en lecture aux liens cloud peut accéder aux jeux de données inscrits et les utiliser s'ils sont dans la portée indiquée lors de l'inscription de l'ensemble de données, et si le paramètre d'autorisation supplémentaire requis est défini pour l'ensemble de données, l'accès provient d'une base de données autorisée. Chaque accès distant est effectué dans le contexte de l'instance Autonomous Database distante qui accède à l'ensemble de données inscrit (sur la base de données où l'ensemble de données a été inscrit).

Utilisez la fonction DBMS_CLOUD_LINK.GET_DATABASE_ID sur le système distant pour obtenir l'ID unique de la base de données. En définissant une stratégie VPD sur la base de données qui a inscrit un ensemble de données, vous pouvez désormais utiliser l'identificateur de la base de données distante en tant que règle SYS_CONTEXT pour fournir un contrôle plus détaillé. Vous pouvez définir des règles pour les bases de données distantes qui accèdent à votre ensemble de données inscrit et limiter l'accès au-delà de ce qui est possible en indiquant une portée Cloud Link.

Prenons un exemple dans lequel REGIONAL_SALES.SALES_AGG est rendu disponible au niveau de la location. Si vous souhaitez restreindre l'accès à toutes les bases de données, à l'exception d'une base de données spécifique, en autorisant uniquement l'accès complet à la base de données indiquée, vous pouvez ajouter une stratégie VPD sur l'ensemble de données inscrit.

Par exemple :

  1. Obtenez l'ID de base de données Cloud Link unique pour l'instance Autonomous Database où vous souhaitez fournir un accès complet.
    DECLARE
         DB_ID NUMBER;
     BEGIN
         DB_ID := DBMS_CLOUD_LINK.GET_DATABASE_ID;
         DBMS_OUTPUT.PUT_LINE('Database ID:' || DB_ID);
     END;
     /
  2. Créez une stratégie VPD sur la base de données qui a enregistré l'ensemble de données en autorisant uniquement un accès complet à la base de données spécifique dont vous avez obtenu l'identificateur dans la base de données en question à l'étape 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;
    /

    Pour plus d'informations, reportez-vous à DBMS_RLS.

  3. Enregistrez la stratégie VPD pour l'ensemble de données inscrit afin de limiter l'accès complet à la base de données identifiée à l'étape 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;
    /

    Pour plus d'informations, reportez-vous à DBMS_RLS.

Remarques sur les liens cloud

Fournit des notes et des restrictions pour l'utilisation des liens cloud.

  • Le nombre d'ensembles de données que vous pouvez enregistrer est limité à 4096.

    Chaque instance Autonomous Database ne peut pas inscrire plus de 4096 ensembles de données. Cette limite s'applique à toutes les instances Autonomous Database, quel que soit le nombre d'ECPU (OCPU si votre base de données utilise des OCPU) ou la taille de stockage de l'instance. La limite est une valeur fixe et le fait de définir le nombre d'ECPU sur une valeur supérieure ne vous permet pas d'enregistrer d'autres jeux de données.

  • Vous pouvez inscrire un objet dans un autre schéma si vous disposez du privilège READ WITH GRANT OPTION sur l'objet.

  • Pour enregistrer des jeux de données ou afficher et accéder à des jeux de données distants, vous devez disposer du privilège approprié pour l'enregistrement ou la lecture des jeux de données. Cela est également vrai pour ADMIN. Cependant, ADMIN peut accorder ce privilège à l'utilisateur.

  • Pour utiliser DBMS_CLOUD_LINK.REGISTER ou DBMS_CLOUD_LINK.UPDATE_REGISTRATION, vous devez disposer du privilège d'exécution sur le package DBMS_CLOUD_LINK, en plus du privilège d'enregistrement affecté à DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER. Seuls l'utilisateur ADMIN et les schémas avec PDB_DBA disposent de ce privilège par défaut.

  • Si vous supprimez et recréez une table enregistrée, vous devez la réenregistrer pour un accès distant.

  • Seuls l'utilisateur ADMIN et les utilisateurs dotés du rôle PDB_DBA sont autorisés à accéder aux vues suivantes :

    • DBA_CLOUD_LINK_ACCESS

    • DBA_CLOUD_LINK_REGISTRATIONS

    • DBA_CLOUD_LINK_AUTHORIZATIONS

    • DBA_CLOUD_LINK_PRIVS

    Pour plus d'informations, reportez-vous à DBMS_CLOUD_LINK Vues.

  • Pour accéder aux données enregistrées et distantes, la base de données distante doit être ouverte. Si la base de données distante est fermée ou en mode restreint, vous ne pourrez pas accéder aux données et une erreur Oracle sera renvoyée.

  • Il existe un maximum de quatre liens de base de données ouverts par session. Le dépassement de cette limite peut conduire à ORA-02020 ou ORA-12545.

  • Si le cache de résultats est activé, comme le comportement par défaut dans Autonomous Database avec la charge globale Data Warehouse, vous devez vous assurer que le cache de résultats n'est pas utilisé lorsque des données en temps réel sont requises.

  • Lorsque vous mettez à jour votre type de licence de Gratuit à Payé, vous devez réinscrire les jeux de données Cloud Links. Pour plus d'informations, reportez-vous à Mise à jour d'une instance Toujours gratuit vers la version payante avec Autonomous Database.

  • Par défaut, la connectivité distante Cloud Links utilise le service de base de données MEDIUM. Vous pouvez modifier la valeur par défaut avec DBMS_CLOUD_LINK_ADMIN.ADD_SERVICE_MAPPING en utilisant ANY comme valeur pour DATABASE_ID. Vous pouvez modifier le service de base de données d'un destinataire avec DBMS_CLOUD_LINK_ADMIN.ADD_SERVICE_MAPPING en indiquant DATABASE_ID du destinataire. Pour plus d'informations, reportez-vous à Définition du mappage des noms de service de base de données pour les destinataires de liens cloud.

    Vous pouvez voir les connexions distantes en tant qu'utilisateur C##DATA$SHARE dans V$SESSION et les vues de liens cloud V$CLOUD_LINK_ACCESS_STATS et vues GV$CLOUD_LINK_ACCESS_STATS fournissent plus de détails sur les connexions distantes.

  • Toutes les interfaces sont sensibles à la casse, sauf indication contraire, comme suit :

    • Tout ce que vous saisissez qui existe dans la base de données, par exemple les noms d'utilisateur et les noms de table, la casse est importante et doit être saisi en majuscules.
    • Variables prédéfinies, par exemple, les valeurs de portée prédéfinies doivent être saisies en majuscules.
    • Tout ce que vous indiquez pour la configuration des liens cloud, par exemple les espaces de noms ou les noms de tables dans un espace de noms, doit être indiqué comme indiqué. Par exemple, si vous définissez un espace de noms en tant que trees, vous devez placer l'espace de noms entre guillemets doubles, en tant que "trees", lorsque vous y accédez avec SQL.
  • Vous pouvez partager des liens cloud lorsqu'un ensemble de données réside sur une instance Autonomous Database en mode Lecture seule. Pour plus d'informations, reportez-vous à Utilisation de liens cloud à partir d'une instance Autonomous Database en lecture seule.

  • La création d'un clone actualisable peut prendre jusqu'à 10 minutes pour que le clone actualisable soit visible en tant que cible de déchargement. Cela signifie que vous devrez peut-être attendre jusqu'à 10 minutes après avoir créé un clone actualisable pour que le clone actualisable soit disponible pour l'inscription au déchargement des liens cloud.

    Pour plus d'informations, reportez-vous à Inscription d'un ensemble de données avec des cibles de déchargement pour l'accès à un ensemble de données et à Création d'un clone actualisable pour une instance Autonomous Database.

Utilisation de liens cloud à partir d'une instance Autonomous Database en lecture seule

Vous pouvez partager des liens cloud lorsqu'un ensemble de données réside sur une instance Autonomous Database en lecture seule.

Pour partager des liens cloud à partir d'une instance Autonomous Database en mode lecture seule, procédez comme suit :
  1. Passez en Mode Lecture/écriture dans la base de données.
  2. Lorsque la base de données est en mode lecture/écriture, procédez comme suit pour enregistrer un ensemble de données.
    1. Accorder l'accès aux liens cloud aux utilisateurs de base de données
    2. Inscrire ou désinscrire un ensemble de données
  3. Une fois que vous avez inscrit un ou plusieurs ensembles de données, passez en mode lecture seule.