Créer, gérer et surveiller des liens hypertexte de table

Présente les étapes de création, de gestion et de surveillance des liens hypertexte de table.

Créer un lien hypertexte de table pour une table ou une vue

Affiche les étapes de création d'un lien hypertexte de table que vous pouvez utiliser pour partager l'accès à un objet de schéma (table ou vue).

Lorsqu'un lien hypertexte de table est exécuté, il utilise les privilèges accordés à l'utilisateur de base de données qui génère le lien hypertexte de table. L'utilisateur qui génère un lien hypertexte de table doit disposer des privilèges minimum requis pour fournir l'accès aux données. Pour maintenir la sécurité, Oracle recommande de ne pas exécuter DBMS_DATA_ACCESS.CREATE_URL en tant qu'utilisateur ADMIN.

Pour utiliser un lien hypertexte de table afin de fournir un accès aux données en tant qu'objet de schéma (table ou vue), procédez comme suit :

  1. Identifiez la table ou la vue à partager.

    S'il existe des restrictions sur les données que vous voulez rendre disponibles, utilisez le paramètre application_user_id lorsque vous générez le lien hypertexte de table et créez une stratégie VPD pour restreindre les données que vous exposez. Pour plus d'informations, reportez-vous à Définition d'une stratégie de base de données privée virtuelle pour sécuriser les données de lien hypertexte de table.

  2. Exécutez DBMS_DATA_ACCESS.CREATE_URL pour générer le lien hypertexte de table.
    DECLARE
       status CLOB;
       BEGIN
          DBMS_DATA_ACCESS.CREATE_URL(
              schema_name => 'SCOTT',
              schema_object_name    => 'TREE_DATA',
              expiration_minutes    => 360,
              result                => status);
           dbms_output.put_line(status);
        END;
    /

    Le paramètre expiration_minutes indique que le lien hypertexte de table expire et est invalidé au bout de 360 minutes.

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

  3. Vérifiez le résultat.

    Dans cet exemple, status contient le résultat qui inclut des informations sur le lien hypertexte de table.

    {
      "status" : "SUCCESS",
      "id" : "wPY0uxyx-gioxOndiKVlqVF585xqJs14CIp9M1qHd-m8bqJi-QCahwfwGesG",
      "preauth_url" : "https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/Y0uxyx-gioxOndiKVlqVF585xqJs14CIp9M1qHhVJUCWm5OEG3fNq2m0HCjaMt8s/data",
      "expiration_ts" : "2025-08-12T04:30:41.484Z"
    }

Créer un lien hypertexte de table avec une instruction Select

Présente les étapes de création d'un lien hypertexte de table qui permet d'accéder aux données à l'aide d'une instruction de requête SQL.

Lorsqu'un lien hypertexte de table est exécuté, il utilise les privilèges accordés à l'utilisateur de base de données qui génère le lien hypertexte de table. L'utilisateur qui génère un lien hypertexte de table doit disposer des privilèges minimum requis pour fournir l'accès aux données. Pour maintenir la sécurité, Oracle recommande de ne pas exécuter DBMS_DATA_ACCESS.CREATE_URL en tant qu'utilisateur ADMIN.

Pour utiliser un lien hypertexte de table afin de fournir un accès aux données en tant qu'instruction de requête SQL arbitraire :

  1. Identifiez la table ou la vue qui contient les informations à partager, ainsi que l'instruction SELECT de la table ou de la vue à utiliser.

    S'il existe des restrictions sur les données que vous voulez rendre disponibles, utilisez le paramètre application_user_id lorsque vous générez le lien hypertexte de table et créez une stratégie VPD pour restreindre les données que vous exposez. Pour plus d'informations, reportez-vous à Définition d'une stratégie de base de données privée virtuelle pour sécuriser les données de lien hypertexte de table.

  2. Exécutez DBMS_DATA_ACCESS.CREATE_URL pour générer le lien hypertexte de table.

    Vous disposez de deux options, selon que vous souhaitez inclure des valeurs de variable attachée (bind variables) par défaut (si vous incluez des variables attachées dans l'instruction SELECT).

    1. Fournissez une instruction SELECT et n'utilisez pas le paramètre facultatif default_bind_values.

      Par exemple :

      DECLARE
         status CLOB;
         BEGIN
            DBMS_DATA_ACCESS.CREATE_URL(
                sql_statement        => 'SELECT species, height FROM TREE_DATA',
                expiration_minutes   => 360,
                result               => status);
             dbms_output.put_line(status);
          END;
      /
      La valeur sql_statement doit être une instruction SELECT. L'instruction SELECT prend en charge les variables attachées. Si des variables attachées sont incluses dans l'instruction SELECT, les valeurs des variables attachées doivent être ajoutées au lien hypertexte de table généré en tant que paramètre de requête lors de l'accès aux données.
    2. Fournissez une instruction SELECT et incluez le paramètre default_bind_values.

      Par exemple :

      DECLARE
         status CLOB;
         BEGIN
            DBMS_DATA_ACCESS.CREATE_URL(
                sql_statement => 'select * FROM TREE_DATA WHERE COUNTY = :countyNAME',
                default_bind_values  => '{"countyNAME" : "First"}',
                expiration_minutes   => 360,
                result               => status);
             dbms_output.put_line(status);
          END;
      /

      Le paramètre sql_statement doit être une instruction SELECT. L'instruction SELECT prend en charge les variables attachées.

      Le paramètre default_bind_values indique des valeurs pour une ou plusieurs variables attachées dans sql_statement. Lorsque default_bind_values est inclus avec DBMS_DATA_ACCESS.CREATE_URL :

      • Pour les variables attachées indiquées dans default_bind_values, vous pouvez omettre les valeurs des variables attachées lorsque vous accédez aux données. La valeur par défaut est utilisée pour une variable attachée spécifiée si aucun remplacement n'est fourni dans l'URL du lien hypertexte de table en tant que paramètre de requête lorsque vous accédez aux données.

      • Vous pouvez remplacer une valeur de variable attachée par défaut indiquée dans default_bind_values si vous ajoutez la valeur de variable attachée dans l'URL de lien hypertexte de table en tant que paramètre de requête lorsque vous accédez aux données.

      • Si une variable attachée est incluse dans l'instruction SELECT et qu'aucune valeur par défaut n'est indiquée pour la variable attachée dans le paramètre default_bind_values, vous devez ajouter une valeur de variable attachée à l'URL de lien hypertexte de table générée en tant que paramètre de requête lorsque vous accédez aux données.

    La prise en charge des variables attachées est disponible pour les types de colonne NUMBER et VARCHAR2.

    Dans ces exemples, le paramètre expiration_minutes indique que le lien hypertexte de table expire et est invalidé après 360 minutes.

  3. Vérifiez le résultat.

    Dans cet exemple, status contient le résultat qui inclut le lien hypertexte de table.

    {
      "status" : "SUCCESS",
      "id" : "LCvtpALqZgcHGL4Lxyzabcxyza-QVEFngwh1UGhg8jjuFAHOQJLGFi",
      "preauth_url" : "https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/GL4Lxyzabcxyza-QVEFngwh1UGhg8n4GfPaHCgdGoLJl-V1tTUxMDgdQ/data",
      "expiration_ts" : "2025-08-12T04:33:40.162Z"
    }

Créer un lien hypertexte de table avec les fonctionnalités d'interface utilisateur spécifiées sur les colonnes

Lorsque vous créez un lien hypertexte de table, vous pouvez utiliser le paramètre column_lists pour indiquer les fonctionnalités d'interface utilisateur pour les colonnes indiquées.

Le paramètre column_lists est une valeur JSON qui spécifie les options par colonne. Les valeurs prises en charge dans column_lists sont les suivantes :

Valeur column_lists Description
order_by_columns

Indique les colonnes qui prennent en charge le tri. Les colonnes sont indiquées dans un tableau JSON.

filter_columns

Indique les colonnes qui prennent en charge le filtrage. Les colonnes sont indiquées dans un tableau JSON.

default_color_columns

Indique que la coloration par défaut doit être utilisée uniquement pour les colonnes indiquées. Les colonnes sont indiquées dans un tableau JSON.

group_by_columns

Indique que le regroupement est autorisé pour les colonnes spécifiées (la consultation des données en regroupant la colonne spécifiée est autorisée). Les colonnes sont indiquées dans un tableau JSON.

Pour spécifier les fonctionnalités d'interface utilisateur de niveau colonne de vue de table pour un lien hypertexte de table :

  1. Identifiez la table ou la vue ou sélectionnez l'instruction à partager.

    Cet exemple génère un lien hypertexte de table à l'aide du paramètre column_lists avec une table. Vous pouvez également utiliser ce paramètre lorsque vous générez un lien hypertexte de table avec une instruction SELECT.

    Pour plus d'informations, reportez-vous à Créer un lien hypertexte de table pour une table ou une vue et à Créer un lien hypertexte de table avec une instruction Select.

  2. Exécutez DBMS_DATA_ACCESS.CREATE_URL pour générer le lien hypertexte de table et indiquez l'option Grouper par colonnes à afficher avec un navigateur :

    Par exemple, pour indiquer des colonnes de regroupement :

    DECLARE
       status CLOB;
       BEGIN
          DBMS_DATA_ACCESS.CREATE_URL(
              schema_name => 'SCOTT',
              schema_object_name    => 'TREE_DATA',
              expiration_minutes    => 360,
              column_lists          => '{ "group_by_columns": ["COUNTY", "SPECIES"] }',
              result                => status);
    
           dbms_output.put_line(status);
        END;
    /

    Le paramètre column_lists est un format JSON qui contient la liste des tableaux JSON de colonnes définissant la fonctionnalité de lien hypertexte de table. Utilisez ce paramètre pour indiquer les colonnes d'au moins une des options suivantes : order_by_columns, filter_columns, default_color_columns ou group_by_columns.

    Par exemple :

    column_lists => '{ 
            "group_by_columns":["COUNTY", "SPECIES"], 
            "order_by_columns":["COUNTY"] }'

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

  3. Vérifiez le résultat.

    Dans cet exemple, status contient le résultat qui inclut des informations sur le lien hypertexte de table.

    {
      "status" : "SUCCESS",
      "id" : "LLUZjJ5Yy8d0txydMiuxCVL_j4abc_xyzV198nGw-3yFYctMNm1p3atJr",
      "preauth_url" : "https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/-P46uQtYRt_yRfTxbcabc_xyzWlANP5RmM9Ys/data",
      "expiration_ts" : "2025-08-12T04:37:22.190Z"
    }
    

    Reportez-vous à la section Use Table Hyperlinks to Access Data with the Group By Option in Table Format pour obtenir un exemple illustrant l'utilisation des colonnes de regroupement.

  4. Exécutez DBMS_DATA_ACCESS.CREATE_URL pour générer le lien hypertexte de table et indiquez une option de format d'interface utilisateur.

    Par exemple, pour définir les colonnes pouvant être triées, utilisez l'option column_lists order_by_columns :

    DECLARE
       status CLOB;
       column_lists CLOB;
       BEGIN
          DBMS_DATA_ACCESS.CREATE_URL(
              schema_name => 'SCOTT',
              schema_object_name    => 'TREE_DATA',
              expiration_minutes    => 360,
              column_lists          => '{ "order_by_columns": ["COUNTY", "SPECIES"] }',
              result                => status);
           dbms_output.put_line(status);
        END;
    /

    Le paramètre column_lists est un format JSON qui contient la liste des tableaux JSON de colonnes définissant la fonctionnalité de lien hypertexte de table. Utilisez ce paramètre pour indiquer les colonnes d'au moins une des options suivantes : order_by_columns, filter_columns, default_color_columns ou group_by_columns.

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

  5. Vérifiez le résultat.

    Dans cet exemple, status contient le résultat qui inclut des informations sur le lien hypertexte de table.

    {
      "status" : "SUCCESS",
      "id" : "tCz2IRLIaDDymwOe1o105WQMGtyw4Z_0mGwfbv0ARcjI5SPkzR_xyz_abceyMgV",
      "preauth_url" : "https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/yfWQoyYxyz_abcGxQnCx0trQhH72m0HCjaMt8s/data",
      "expiration_ts" : "2025-08-12T04:41:05.115Z"
    }

    Reportez-vous à la section Use Table Hyperlinks in Table Format with Column Sorting pour obtenir un exemple d'utilisation de l'ordre par colonne.

Vous pouvez également effectuer les opérations suivantes :

  • Utilisez DBMS_DATA_ACCESS.LIST_ACTIVE_URLS pour afficher les liens hypertexte de table. Pour plus de détails, reportez-vous à Liste des liens hypertexte de table et des groupes de liens hypertexte de table.
  • Utilisez DBMS_DATA_ACCESS.EXTEND_URL pour prolonger la durée de vie d'un lien hypertexte de table. Pour plus d'informations, reportez-vous à Procédure EXTEND_URL.
  • Générez des liens hypertexte de table qui sont traités avec des garanties et des ressources de niveau de service différentes. Par exemple, l'accès à un objet ou à une instruction SQL peut être mis en correspondance avec les services HIGH ou MEDIUM, tandis que l'accès à un autre objet ou à une autre instruction SQL peut être mis en correspondance avec le service LOW. Pour plus d'informations, reportez-vous à Procédure CREATE_URL.

Créer un lien hypertexte de table protégée par mot de passe

Lorsque vous créez un lien hypertexte de table, vous pouvez indiquer un mot de passe de lien hypertexte de table.

Lorsqu'un utilisateur accède à un lien hypertexte de table protégé par mot de passe, il doit s'authentifier à l'aide du mot de passe spécifié lors de la création du lien hypertexte de table. Cela fournit une étape de sécurité supplémentaire pour éviter les accès malveillants, dans le cas où un lien hypertexte de table est exposé à un public plus large que prévu.

Pour créer un lien hypertexte de table protégé par mot de passe :

  1. Identifiez la table, la vue ou l'instruction d'interrogation des données à partager.

    Vous pouvez spécifier un lien hypertexte de table ou un groupe de liens hypertexte de table protégé par mot de passe.

  2. Lorsque vous créez un lien hypertexte de table ou un groupe de liens hypertexte de table, indiquez le paramètre password.

    Par exemple :

    DECLARE
       status CLOB;
       BEGIN
          DBMS_DATA_ACCESS.CREATE_URL(
              schema_name => 'SCOTT',
              schema_object_name          => 'TREE_DATA',
              password                    => passwd,
              max_failed_access_attempts  => 15,
              result                      => status);
           dbms_output.put_line(status);
        END;
    /

    Le paramètre password indique le mot de passe requis pour accéder au lien hypertexte de table (ou au groupe de liens hypertexte de table). Outre le mot de passe, toutes les protections de sécurité qui s'appliquent à un lien hypertexte de table, telles que le temps d'expiration et le nombre d'expiration, s'appliquent également à un lien hypertexte de table protégé par mot de passe.

    Le paramètre max_failed_access_attempts indique le nombre maximal d'échecs séquentiels de tentative de mot de passe. Si cette valeur est dépassée, le lien hypertexte de table est invalidé. La valeur par défaut pour ce paramètre est 10. Le nombre de tentatives d'accès en échec séquentielles est réinitialisé à 0 lorsque l'utilisateur fournit le mot de passe correct.

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

  3. Vérifiez le résultat.

    Dans cet exemple, status contient le résultat qui inclut des informations sur le lien hypertexte de table.

    {
      "status" : "SUCCESS",
      "id" : "wPY0uxyx-gioxOndiKVlqVF585xqJs14CIp9M1qHabc_1",
      "url" : "https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/-pPLdrbUTcLUr1XetvO0tekak4p92m0HCjaMt8s/data",
      "expiration_ts" : "2025-11-06T22:41:14.779Z"
    }

Lorsque vous incluez le paramètre password avec DBMS_DATA_ACCESS.CREATE_URL, tenez compte des points suivants :

  • Le résultat inclut l'attribut url avec la valeur d'URL de lien hypertexte de table. Sans le paramètre password, l'attribut de résultat est preauth_url. Cette différence vous permet de distinguer un lien hypertexte de table protégé par mot de passe dans le résultat.

  • La longueur minimale du mot de passe est de 12 caractères et le mot de passe doit inclure au moins une lettre majuscule, une lettre minuscule et un caractère numérique. Ces règles sont identiques à celles appliquées pour les règles de complexité de mot de passe pour un utilisateur de base de données associé à une fonction de vérification de mot de passe (PVF) NULL. Si CREATE_URL est appelé avec le paramètre de mot de passe et que le mot de passe fourni n'est pas conforme à ces règles, par exemple, le mot de passe contient moins de 12 caractères, la création de l'URL échoue avec une erreur.

    Pour plus d'informations, reportez-vous à Gestion de la complexité des mots de passe sur une base de données d'IA autonome.

  • Il n'est pas possible de modifier ou de réinitialiser un mot de passe après avoir défini un mot de passe. Si vous exécutez CREATE_URL et que par la suite vous n'avez pas enregistré ou que vous ne pouvez pas mémoriser le mot de passe que vous avez défini, vous devez créer un lien hypertexte de table.

  • Il n'existe aucune association entre le mot de passe d'un lien hypertexte de table protégé par mot de passe et le mot de passe de l'utilisateur qui crée l'URL. Si l'utilisateur SCOTT crée un lien hypertexte de table protégé par mot de passe avec CREATE_URL, il n'existe aucune association entre le mot de passe de l'URL de lien hypertexte de table créée et le mot de passe de l'utilisateur SCOTT.

Création d'un lien hypertexte de table avec la liste de contrôle d'accès

Affiche les étapes de création d'un lien hypertexte de table qui inclut une liste de contrôle d'accès (ACL) pour restreindre l'accès à des adresses IP ou des plages CIDR spécifiées. Vous pouvez utiliser cette méthode pour contrôler les clients autorisés à accéder à un objet de schéma partagé (table ou vue).

Pour maintenir la sécurité, Oracle vous recommande d'éviter l'exécution de DBMS_DATA_ACCESS.CREATE_URL en tant qu'utilisateur ADMIN.

Pour créer un lien hypertexte de table avec des restrictions d'ACL pour un objet de schéma (table ou vue), procédez comme suit :

  1. Identifiez la table ou la vue à partager.

    Par exemple, vous pouvez partager une vue telle que STUDENTS_VIEW appartenant à l'utilisateur USER1.

  2. Définissez des règles d'accès IP à l'aide du paramètre acl.

    Le paramètre acl accepte un tableau JSON contenant des adresses IP ou des plages CIDR qui indiquent l'accès autorisé.

    Exemple :
    '["1.1.1.1", "1.1.1.0/24"]'
    

    Cette configuration permet l'accès uniquement à partir de l'adresse IP spécifique 1.1.1.1 et de l'ensemble du sous-réseau 1.1.1.0/24.

  3. Exécutez DBMS_DATA_ACCESS.CREATE_URL pour générer le lien hypertexte de table avec l'ACL en place.
    DECLARE
       status CLOB;
    BEGIN
       DBMS_DATA_ACCESS.CREATE_URL(
          schema_name         => 'USER1',
          schema_object_name  => 'STUDENTS_VIEW',
          expiration_minutes  => 120,
          acl                 => '["1.1.1.1", "1.1.1.0/24"]',
          result              => status);
       dbms_output.put_line(status);
    END;
    /

    Le paramètre expiration_minutes indique que le lien hypertexte de table expire et devient non valide au bout de 120 minutes.

    Le paramètre acl garantit que seuls les clients se connectant à partir d'adresses IP approuvées peuvent utiliser le lien hypertexte.

    Pour plus d'informations sur les paramètres et les options d'utilisation, reportez-vous à Procédure CREATE_URL.

  4. Vérifiez le résultat.
    La variable d'état contient la sortie qui inclut des informations sur le lien hypertexte de table généré, telles que son ID, son URL et son horodatage d'expiration. Une sortie réussie peut ressembler à ceci :
    {
      "status" : "SUCCESS",
      "id" : "example_unique_id_string",
      "preauth_url" : "https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/example_unique_id_string/data",
      "expiration_ts" : "2025-12-23T04:30:41.484Z"
    }
    

Vous pouvez partager l'URL générée en toute sécurité avec les destinataires autorisés, en veillant à ce que les contrôles à durée limitée et basés sur IP s'appliquent aux données exposées.

Créer un lien hypertexte de table qui hérite des paramètres d'ACL

Affiche les étapes de création d'un lien hypertexte de table qui hérite des paramètres de liste de contrôle d'accès (ACL) existants d'un objet de schéma parent (table ou vue). Cela permet un comportement de contrôle d'accès cohérent sans spécifier manuellement les paramètres d'ACL lors du partage des données.

Pour créer un lien hypertexte de table qui hérite des paramètres d'ACL :

  1. Identifiez la table ou la vue à partager.
    Par exemple, vous pouvez partager une vue nommée STUDENTS_VIEW appartenant au schéma USER1.
  2. Déterminez la période d'expiration du lien hypertexte.
    Utilisez le paramètre expiration_minutes pour définir combien de temps le lien doit rester valide avant d'expirer. Dans cet exemple, le lien expire après 120 minutes.
  3. Activer l'héritage ACL.
    Définissez le paramètre inherit_acl => TRUE pour appliquer automatiquement la même liste de contrôle d'accès que la table ou la vue source. Cela garantit que le lien hypertexte hérite de toutes les autorisations configurées sur l'objet de schéma parent.
  4. Exécutez DBMS_DATA_ACCESS.CREATE_URL pour générer le lien hypertexte de table.
    DECLARE
       status CLOB;
    BEGIN
       DBMS_DATA_ACCESS.CREATE_URL(
          schema_name         => 'USER1',
          schema_object_name  => 'STUDENTS_VIEW',
          expiration_minutes  => 120,
          inherit_acl         => TRUE,
          result              => status);
       dbms_output.put_line(status);
    END;
    /
    

    Le paramètre inherit_acl indique à Oracle Autonomous AI Database de réutiliser la liste de contrôle d'accès définie pour l'objet source, en maintenant les mêmes restrictions pour tous les utilisateurs accédant au lien hypertexte.

  5. Vérifiez le résultat.
    Le bloc PL/SQL renvoie une réponse JSON dans la variable status. Cette réponse inclut des métadonnées sur le lien hypertexte de table nouvellement créé, telles que son statut, son ID de lien hypertexte, son URL préautorisée et son horodatage d'expiration.
    Par exemple,
    {
      "status" : "SUCCESS",
      "id" : "hY04uxyx-PoLxnHadiCQrsVQ785xqJs14CIp9M1qHd-m8bqJi-QC7skfwGesG",
      "preauth_url" : "https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/hY04uxyx-PoLxnHadiCQrsVQ785xqJs14CIp9M1qHd/data",
      "expiration_ts" : "2025-12-22T18:45:41.484Z"
    }
    

    Vous pouvez désormais partager le fichier preauth_url généré en toute sécurité avec les utilisateurs autorisés. Le lien hypertexte héritant des paramètres d'ACL, il applique automatiquement les mêmes restrictions d'adresse IP, d'utilisateur ou de réseau que l'objet de schéma STUDENTS_VIEW sous-jacent.

Créer un lien hypertexte de table cohérente pour une table ou une vue

Affiche les étapes de création d'un lien hypertexte de table avec l'option cohérente activée, ce qui vous permet de générer une vue cohérente en lecture des données à un moment donné.

Pour créer un lien hypertexte de table qui génère un cliché de données cohérent pour un objet de schéma (table ou vue), procédez comme suit :

  1. Identifiez la table ou la vue à partager.

    Dans cet exemple, une vue nommée STUDENTS_VIEW dans le schéma USER1 est utilisée.

  2. Déterminez la période d'expiration du lien hypertexte.

    Le paramètre expiration_minutes indique la durée (en minutes) pendant laquelle le lien hypertexte reste valide. Dans ce cas, le lien hypertexte expire au bout de 120 minutes.

  3. Activez le mode de cohérence.

    Définissez le paramètre cohérent sur TRUE pour vous assurer que toutes les données extraites via le lien hypertexte représentent un cliché transactionnel unique de l'objet source.

  4. Exécutez DBMS_DATA_ACCESS.CREATE_URL pour créer le lien hypertexte de table.
    DECLARE
       status CLOB;
    BEGIN
       DBMS_DATA_ACCESS.CREATE_URL(
          schema_name         => 'USER1',
          schema_object_name  => 'STUDENTS_VIEW',
          expiration_minutes  => 120,
          consistent          => TRUE,
          result              => status);
       dbms_output.put_line(status);
    END;
    /
    

    Le paramètre cohérent garantit que toute opération de lecture effectuée via ce lien hypertexte extrait les données à un moment donné, même si des mises à jour ultérieures ont lieu dans la table ou la vue de base.

    Pour plus d'informations sur tous les paramètres pris en charge par cette procédure, reportez-vous à Procédure CREATE_URL.
  5. Vérifiez le résultat.

    La variable de statut contient la sortie de l'opération, qui inclut des informations telles que le statut du lien hypertexte, l'ID, l'URL générée et l'horodatage d'expiration.

    Exemple :
    {
      "status" : "SUCCESS",
      "id" : "pK80uxyx-GioxJndiQVrVFG585xqJs14CIp9M1qHd-m8bqJi-QCahwfwGesH",
      "preauth_url" : "https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/pK80uxyx-GioxJndiQVrVFG585xqJs14CIp9M1qHd/data",
      "expiration_ts" : "2025-12-22T23:16:41.484Z"
    }
    

Vous pouvez désormais partager l'URL générée en toute sécurité avec les utilisateurs autorisés. Le paramètre cohérent garantit que tous les utilisateurs accédant au lien hypertexte voient la même vue cohérente sur le plan transactionnel des données STUDENTS_VIEW au moment de la création de l'URL.

Invalider les liens hypertexte de table

A tout moment, un utilisateur disposant des privilèges appropriés peut invalider un lien hypertexte de table.

Pour invalider un lien hypertexte de table, vous avez besoin du lien hypertexte de table id. Utilisez DBMS_DATA_ACCESS.LIST_ACTIVE_URLS pour générer la liste des liens hypertexte de table et des liens id associés.

Utilisez DBMS_DATA_ACCESS.INVALIDATE_URL pour invalider un lien hypertexte de table. Par exemple :

DECLARE
    status CLOB;
    BEGIN
       DBMS_DATA_ACCESS.INVALIDATE_URL(
        id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
        result => status);           
       dbms_output.put_line(status);
    END;
/

Vous pouvez également utiliser DBMS_DATA_ACCESS.INVALIDATE_URL pour invalider un groupe de liens hypertexte de table.

Pour plus d'informations, reportez-vous à Invalidate a Table Hyperlink Group et à INVALIDATE_URL Procedure.

Définir une stratégie de base de données privée virtuelle pour sécuriser les données de lien hypertexte de table

En définissant des stratégies Oracle Virtual Private Database (VPD) pour les données que vous partagez avec un lien hypertexte de table, vous pouvez fournir un contrôle d'accès de niveau fin afin que seul un sous-ensemble de données (lignes) soit visible pour un lien hypertexte de table spécifique.

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. Lorsqu'un lien hypertexte de table est accessible, la valeur de application_user_id indiquée lors de la génération du lien hypertexte de table est disponible via sys_context('DATA_ACCESS_CONTEXT$', 'USER_IDENTITY'). Vous pouvez définir des stratégies VPD qui utilisent la valeur de ce contexte d'application pour restreindre les données et les lignes visibles par l'utilisateur de l'application.

Tout utilisateur disposant d'un accès en lecture avec un lien hypertexte de table peut accéder aux données et les utiliser (table, vue ou données fournies avec une instruction SELECT). En définissant une stratégie VPD sur la base de données qui a généré un lien hypertexte de table, vous pouvez utiliser la valeur application_user_id dans une règle SYS_CONTEXT pour fournir un contrôle plus détaillé. Prenons un exemple où les données sont mises à disposition avec un lien hypertexte de table. Si vous souhaitez restreindre l'accès à certaines données, vous pouvez ajouter une stratégie VPD.

Par exemple :

  1. Obtenez la valeur application_user_id que vous avez indiquée lorsque vous avez généré le lien hypertexte de table.
  2. Créez une stratégie VPD sur la base de données dans laquelle vous avez généré le lien hypertexte de table.
    CREATE OR REPLACE FUNCTION limit_sal (v_schema IN VARCHAR2, v_objname IN VARCHAR2)
      RETURN VARCHAR2 authid current_user AS
    BEGIN
         RETURN 'employee_id = SYS_CONTEXT(''DATA_ACCESS_CONTEXT$'', ''USER_IDENTITY'')';
    END;
    

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

  3. Enregistrez la stratégie VPD.
    BEGIN
       DBMS_RLS.ADD_POLICY( 
            object_schema        => 'HR',
            object_name          => 'EMPLOYEE',
            policy_name          => 'POL',
            policy_function      => 'LIMIT_SAL');
    END;
    /

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

Surveiller et afficher l'utilisation des liens hypertexte de table

Autonomous AI Database fournit des vues qui vous permettent de surveiller l'utilisation des liens hypertexte de table.

Vues Description
Vues V$DATA_ACCESS_URL_STATS et GV$DATA_ACCESS_URL_STATS

Ces vues permettent de suivre l'utilisation des liens hypertexte de table, notamment le temps écoulé, le temps CPU et des informations supplémentaires.

Remarques concernant la création d'un lien hypertexte de table ou d'un groupe de liens hypertexte de table

Remarques concernant la création d'un lien hypertexte de table ou d'un groupe de liens hypertexte de table avec DBMS_DATA_ACCESS.CREATE_URL :

  • Vous pouvez utiliser le paramètre facultatif service_name pour indiquer qu'un lien hypertexte de table généré est traité avec une garantie et des ressources de niveau de service spécifiques. Par exemple, utilisez le paramètre service_name pour indiquer que l'accès à l'instruction SQL est mis en correspondance avec le service HIGH.

  • Vous pouvez utiliser l'un des paramètres facultatifs inherit_acl et acl ou les deux si vous voulez limiter l'accès aux données de lien hypertexte de table :

    • inherit_acl : utilisez le paramètre facultatif inherit_acl si vous voulez limiter l'accès aux données de lien hypertexte de table. Définissez ce paramètre sur TRUE pour hériter des listes de contrôle d'accès. Lorsque la valeur de ce paramètre est TRUE, l'adresse IP d'un destinataire de lien hypertexte de table entrant est validée avec les listes de contrôle d'accès de la base de données du producteur avant d'autoriser l'accès aux données. Si aucune liste de contrôle d'accès n'est configurée pour la base de données du fournisseur, la valeur inherit_acl est ignorée et l'accès aux données est autorisé sans aucune vérification d'ACL.

    • acl : utilisez le paramètre facultatif acl pour indiquer une liste de contrôle d'accès qui s'applique au lien hypertexte de table. La valeur du paramètre indique la liste des adresses IP autorisées, des blocs CIDR ou des OCID de VCN OCI. Lorsque le paramètre acl est spécifié, un destinataire de lien hypertexte de table peut uniquement accéder aux données à partir des hôtes spécifiés dans l'ACL.

    Lorsque inherit_acl a la valeur TRUE et que le paramètre acl est défini pour indiquer une liste de contrôle d'accès, un destinataire de lien hypertexte de table peut accéder aux données d'un lien hypertexte de table à partir des hôtes indiqués avec le paramètre acl ou des hôtes hérités définis dans la liste de contrôle d'accès indiquée pour l'instance de base de données Autonomous AI.

    Pour plus d'informations, reportez-vous à Configuration de l'accès réseau avec des règles de contrôle d'accès (ACL).

  • Lorsque vous définissez le paramètre facultatif consistent sur TRUE, un fournisseur de liens hypertexte de table génère des données de manière cohérente sur différentes pages. Cela permet à un consommateur d'accéder aux données de toutes les pages associées à un lien hypertexte de table en utilisant le même cliché de données (SCN) que le SCN associé à l'accès à la première page. Cette option permet à un émetteur de renvoyer des données cohérentes à un destinataire où les réponses sont paginées et où plusieurs pages sont renvoyées (les données sont renvoyées page par page lors de l'accès).

    Lorsque consistent est défini sur TRUE et qu'un lien hypertexte de table référence des objets de schéma à partir du schéma d'un autre utilisateur, l'utilisateur de base de données qui crée le lien hypertexte de table doit disposer du privilège FLASHBACK sur tous les objets de schéma utilisés dans le lien hypertexte de table qui appartiennent au schéma de l'autre utilisateur.

    Par exemple :

    GRANT FLASHBACK ON TREE_SCHEMA.TREE_DATA TO SCOTT;

    Remarque : Si l'activité de la base de données est importante et que le temps écoulé entre l'extraction de la première page et l'extraction d'une page suivante est suffisant, il se peut qu'il ne soit pas possible d'extraire les données suivantes cohérentes avec le premier accès. Dans ce cas, l'extraction génère une erreur.

    Pour plus d'informations, reportez-vous à Accès aux données avec des liens hypertexte de table ou avec un groupe de liens hypertexte de table.

  • Lorsque vous créez un lien hypertexte de table sur une instance de base de données Autonomous AI avec une adresse privée, le résultat inclut un nom private_preauth_url avec la valeur du format : "https://private-endpoint/adb/p/parurl-token/data".

    Lorsque vous créez un lien hypertexte de table sur une instance de base de données Autonomous AI avec une adresse privée et que l'adresse privée est configurée avec l'option Autoriser l'accès public activée, le résultat inclut à la fois l'adresse preauth_url pour l'adresse publique et private_preauth_url.

    Pour plus d'informations, reportez-vous à Configuration des adresses privées et à Utilisation d'une adresse privée avec accès public autorisé.

  • Utilisez DBMS_DATA_ACCESS.LIST_ACTIVE_URLS pour afficher les liens hypertexte de table. Pour plus de détails, reportez-vous à Liste des liens hypertexte de table et des groupes de liens hypertexte de table.

  • Utilisez DBMS_DATA_ACCESS.EXTEND_URL pour prolonger la durée de vie d'un lien hypertexte de table. Pour plus d'informations, reportez-vous à Procédure EXTEND_URL.