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 :
-
Identifiez la table ou la vue à partager.
Si les données que vous voulez rendre disponibles sont soumises à des restrictions, utilisez le paramètre
application_user_idlorsque 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. -
Exécutez
DBMS_DATA_ACCESS.CREATE_URLpour 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_minutesindique 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.
-
Vérifiez le résultat.
Dans cet exemple,
statuscontient 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 :
-
Identifiez la table ou la vue qui contient les informations à partager, ainsi que l'instruction
SELECTde la table ou de la vue à utiliser.Si les données que vous voulez rendre disponibles sont soumises à des restrictions, utilisez le paramètre
application_user_idlorsque 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. -
Exécutez
DBMS_DATA_ACCESS.CREATE_URLpour 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).
-
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_statementdoit être une instructionSELECT. L'instructionSELECTprend 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. -
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_statementdoit être une instructionSELECT. L'instructionSELECTprend en charge les variables attachées.Le paramètre
default_bind_valuesindique des valeurs pour une ou plusieurs variables attachées danssql_statement. Lorsquedefault_bind_valuesest inclus dansDBMS_DATA_ACCESS.CREATE_URL, procédez comme suit :-
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_valuessi 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
NUMBERetVARCHAR2.Dans ces exemples, le paramètre
expiration_minutesindique que le lien hypertexte de table expire et est invalidé après 360 minutes. -
-
Vérifiez le résultat.
Dans cet exemple,
statuscontient 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 :
-
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_listsavec une table. Vous pouvez également utiliser ce paramètre lorsque vous générez un lien hypertexte de table avec une instructionSELECT.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.
-
Exécutez
DBMS_DATA_ACCESS.CREATE_URLpour 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_listsest 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_columnsougroup_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.
-
Vérifiez le résultat.
Dans cet exemple,
statuscontient 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.
-
Exécutez
DBMS_DATA_ACCESS.CREATE_URLpour 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_listsest 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_columnsougroup_by_columns.Pour plus d'informations, reportez-vous à Procédure CREATE_URL.
-
Vérifiez le résultat.
Dans cet exemple,
statuscontient 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_URLSpour 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_URLpour 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 :
-
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.
-
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
passwordindique 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_attemptsindique 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.
-
Vérifiez le résultat.
Dans cet exemple,
statuscontient 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
urlavec la valeur URL du lien hypertexte de table. Sans le paramètrepassword, l'attribut de résultat estpreauth_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. SiCREATE_URLest 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, puis que vous n'avez pas enregistré le mot de passe ou que vous ne pouvez pas vous souvenir du 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
SCOTTcrée un lien hypertexte de table protégé par mot de passe avecCREATE_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'utilisateurSCOTT.
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 :
-
Identifiez la table ou la vue à partager.
Par exemple, vous pouvez partager une vue telle que
STUDENTS_VIEWappartenant à l'utilisateurUSER1. -
Définissez des règles d'accès IP à l'aide du paramètre
acl.Le paramètre
aclaccepte 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 autorise l'accès uniquement à partir de l'adresse IP spécifique
1.1.1.1et de l'ensemble du sous-réseau1.1.1.0/24. -
Exécutez
DBMS_DATA_ACCESS.CREATE_URLpour 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_minutesindique que le lien hypertexte de table expire et devient non valide au bout de 120 minutes.Le paramètre
aclgarantit 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.
-
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 :
-
Identifiez la table ou la vue à partager.
Par exemple, vous pouvez partager une vue nommée
STUDENTS_VIEWappartenant au schémaUSER1. -
Déterminez la période d'expiration du lien hypertexte.
Utilisez le paramètre
expiration_minutespour définir la durée pendant laquelle le lien doit rester valide avant l'expiration. Dans cet exemple, le lien expire après120 minutes. -
Activer l'héritage ACL.
Définissez le paramètre
inherit_acl => TRUEpour 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. -
Exécutez
DBMS_DATA_ACCESS.CREATE_URLpour 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_aclindique à 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. -
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_urlgé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émaSTUDENTS_VIEWsous-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 :
-
Identifiez la table ou la vue à partager.
Dans cet exemple, une vue nommée
STUDENTS_VIEWdans le schémaUSER1est utilisée. -
Déterminez la période d'expiration du lien hypertexte.
Le paramètre
expiration_minutesindique la durée (en minutes) pendant laquelle le lien hypertexte reste valide. Dans ce cas, le lien hypertexte expire au bout de120minutes. -
Activez le mode de cohérence.
Définissez le paramètre cohérent sur
TRUEpour vous assurer que toutes les données extraites via le lien hypertexte représentent un cliché transactionnel unique de l'objet source. -
Exécutez
DBMS_DATA_ACCESS.CREATE_URLpour 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 de détails sur tous les paramètres pris en charge par cette procédure, reportez-vous à Procédure CREATE_URL.
-
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 les 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 :
-
Obtenez la valeur
application_user_idque vous avez indiquée lorsque vous avez généré le lien hypertexte de table. -
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;See [DBMS_RLS](/pls/topic/lookup?ctx=en/cloud/paas/autonomous-database/serverless/adbsb&id=ARPLS-GUID-27507923-FF74-4193-B55D-6ECB11B58FCC) for more information.
-
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.
Pour plus d'informations, reportez-vous à Utilisation d´Oracle Virtual Private Database pour contrôler l´accès aux données.
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_namepour 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ètreservice_namepour 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_acletaclou les deux si vous voulez limiter l'accès aux données de lien hypertexte de table :-
inherit_acl: utilisez le paramètre facultatifinherit_aclsi vous voulez limiter l'accès aux données de lien hypertexte de table. Définissez ce paramètre surTRUEpour hériter des listes de contrôle d'accès. Lorsque la valeur de ce paramètre estTRUE, l'adresse IP d'un consommateur 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 producteur, la valeurinherit_aclest ignorée et l'accès aux données est autorisé sans aucune vérification d'ACL. -
acl: utilisez le paramètre facultatifaclpour 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ètreaclest spécifié, un destinataire de lien hypertexte de table peut uniquement accéder aux données à partir des hôtes indiqués dans l'ACL.
Lorsque
inherit_acla la valeurTRUEet que le paramètreaclest 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ètreaclou 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
consistentsurTRUE, 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
consistentest défini surTRUEet 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ègeFLASHBACKsur 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_urlavec 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_urlpour l'adresse publique etprivate_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_URLSpour 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_URLpour prolonger la durée de vie d'un lien hypertexte de table. Pour plus d'informations, reportez-vous à Procédure EXTEND_URL.