Créer, gérer et surveiller des hyperliens de table
Affiche les étapes de création, de gestion et de surveillance des hyperliens de table.
Créer un hyperlien de table pour une table ou une vue
Affiche les étapes de création d'un hyperlien de table que vous pouvez utiliser pour partager l'accès à un objet de schéma (table ou vue).
Lorsqu'un hyperlien de table est exécuté, il utilise les privilèges accordés à l'utilisateur de base de données qui génère l'hyperlien de table. L'utilisateur qui génère un hyperlien de table doit disposer des privilèges minimum requis pour fournir l'accès aux données. Pour assurer la sécurité, Oracle recommande de ne pas exécuter DBMS_DATA_ACCESS.CREATE_URL en tant qu'utilisateur ADMIN.
Pour utiliser un hyperlien de table pour fournir l'accès aux données en tant qu'objet de schéma (table ou vue) :
-
Identifiez la table ou la vue à partager.
Si des restrictions s'appliquent aux données que vous voulez rendre disponibles, utilisez le paramètre
application_user_idlorsque vous générez l'hyperlien de table et créez une politique de BDVP pour limiter les données que vous exposez. Pour plus d'informations, voir Définir une politique de base de données privée virtuelle pour sécuriser les données d'hyperlien de table. -
Exécutez
DBMS_DATA_ACCESS.CREATE_URLpour générer l'hyperlien 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_minutesspécifie que l'hyperlien de table expire et est invalidé après 360 minutes.Pour plus d'informations, voir Procédure CREATE_URL.
-
Vérifiez le résultat.
Dans cet exemple,
statuscontient le résultat qui inclut des informations sur l'hyperlien 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 hyperlien de table avec un énoncé Select
Affiche les étapes de création d'un hyperlien de table qui permet d'accéder aux données à l'aide d'un énoncé d'interrogation SQL.
Lorsqu'un hyperlien de table est exécuté, il utilise les privilèges accordés à l'utilisateur de base de données qui génère l'hyperlien de table. L'utilisateur qui génère un hyperlien de table doit disposer des privilèges minimum requis pour fournir l'accès aux données. Pour assurer la sécurité, Oracle recommande de ne pas exécuter DBMS_DATA_ACCESS.CREATE_URL en tant qu'utilisateur ADMIN.
Pour utiliser un hyperlien de table pour fournir l'accès aux données en tant qu'énoncé d'interrogation SQL arbitraire :
-
Identifiez la table ou la vue qui contient les informations à partager, ainsi que l'énoncé
SELECTde la table ou de la vue à utiliser.Si des restrictions s'appliquent aux données que vous voulez rendre disponibles, utilisez le paramètre
application_user_idlorsque vous générez l'hyperlien de table et créez une politique de BDVP pour limiter les données que vous exposez. Pour plus d'informations, voir Définir une politique de base de données privée virtuelle pour sécuriser les données d'hyperlien de table. -
Exécutez
DBMS_DATA_ACCESS.CREATE_URLpour générer l'hyperlien de table.Vous disposez de deux options, selon que vous souhaitez inclure des valeurs de variable de liaison par défaut (si vous incluez des variables de liaison dans l'instruction SELECT).
-
Indiquez un énoncé de sélection et n'utilisez pas le paramètre facultatif
default_bind_values.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 un énoncéSELECT. L'énoncéSELECTprend en charge les variables de liaison. Si des variables attachées sont incluses dans l'instruction SELECT, les valeurs des variables attachées doivent être ajoutées à l'hyperlien de table généré en tant que paramètre d'interrogation lors de l'accès aux données. -
Indiquez un énoncé de sélection et incluez le paramètre
default_bind_values.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 un énoncéSELECT. L'énoncéSELECTprend en charge les variables de liaison.Le paramètre
default_bind_valuesspécifie des valeurs pour une ou plusieurs variables de liaison danssql_statement. Lorsquedefault_bind_valuesest inclus avecDBMS_DATA_ACCESS.CREATE_URL:-
Pour les variables de liaison spécifiées dans
default_bind_values, vous pouvez omettre les valeurs de variable de liaison lorsque vous accédez aux données. La valeur par défaut est utilisée pour une variable de liaison spécifiée si aucun remplacement n'est fourni dans l'URL de l'hyperlien de la table en tant que paramètre d'interrogation lorsque vous accédez aux données. -
Vous pouvez remplacer une valeur de variable de liaison par défaut spécifiée dans
default_bind_valuessi vous ajoutez la valeur de variable de liaison dans l'URL de l'hyperlien de table en tant que paramètre d'interrogation lorsque vous accédez aux données. -
Si une variable de liaison est incluse dans l'énoncé de sélection et qu'aucune valeur par défaut n'est spécifiée pour la variable de liaison dans le paramètre
default_bind_values, vous devez ajouter une valeur de variable de liaison à l'URL d'hyperlien de table générée en tant que paramètre d'interrogation lorsque vous accédez aux données.
-
La prise en charge des variables de liaison est disponible pour les types de colonne
NUMBERetVARCHAR2.Dans ces exemples, le paramètre
expiration_minutesspécifie que l'hyperlien de table expire et est invalidé après 360 minutes. -
-
Vérifiez le résultat.
Dans cet exemple,
statuscontient le résultat qui inclut l'hyperlien 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 hyperlien de table avec les fonctions d'interface utilisateur spécifiées dans les colonnes
Lorsque vous créez un hyperlien de table, vous pouvez utiliser le paramètre column_lists pour spécifier des fonctions d'interface utilisateur pour les colonnes spécifié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 une ou plusieurs des valeurs suivantes :
| Valeur column_lists | Description |
|---|---|
order_by_columns |
Spécifie les colonnes qui prennent en charge le tri. Les colonnes sont spécifiées dans un tableau JSON. |
filter_columns |
Spécifie les colonnes qui prennent en charge le filtrage. Les colonnes sont spécifiées dans un tableau JSON. |
default_color_columns |
Spécifie d'utiliser uniquement la coloration par défaut pour les colonnes spécifiées. Les colonnes sont spécifié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 spécifiées dans un tableau JSON. |
Pour spécifier les fonctions d'interface utilisateur au niveau colonne de la vue de table pour un hyperlien de table :
-
Identifiez la table, la vue ou l'instruction de sélection à partager.
Cet exemple génère un hyperlien de table à l'aide du paramètre
column_listsavec une table. Vous pouvez également utiliser ce paramètre lorsque vous générez un hyperlien de table avec un énoncéSELECT.Pour plus d'informations, voir Créer un hyperlien de table pour une table ou une vue et Créer un hyperlien de table avec un énoncé Select.
-
Exécutez
DBMS_DATA_ACCESS.CREATE_URLpour générer l'hyperlien de table et spécifier l'option Regrouper par colonnes à afficher dans un navigateur :Par exemple, pour spécifier 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 JSON et contient une liste de tableaux JSON de colonnes définissant la fonctionnalité d'hyperlien de table. Utilisez ce paramètre pour spécifier les colonnes pour une ou plusieurs des options :order_by_columns,filter_columns,default_color_columnsougroup_by_columns.Exemple :
column_lists => '{ "group_by_columns":["COUNTY", "SPECIES"], "order_by_columns":["COUNTY"] }'Pour plus d'informations, voir Procédure CREATE_URL.
-
Vérifiez le résultat.
Dans cet exemple,
statuscontient le résultat qui inclut des informations sur l'hyperlien 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" }Voir Utiliser des hyperliens de table pour accéder aux données avec l'option Regrouper par dans le format de table pour un exemple montrant l'utilisation des colonnes Regrouper par.
-
Exécutez
DBMS_DATA_ACCESS.CREATE_URLpour générer l'hyperlien de table et spécifier 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 JSON et contient une liste de tableaux JSON de colonnes définissant la fonctionnalité d'hyperlien de table. Utilisez ce paramètre pour spécifier les colonnes pour une ou plusieurs des options :order_by_columns,filter_columns,default_color_columnsougroup_by_columns.Pour plus d'informations, voir Procédure CREATE_URL.
-
Vérifiez le résultat.
Dans cet exemple,
statuscontient le résultat qui inclut des informations sur l'hyperlien 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" }Voir Utiliser des hyperliens de table en format de table avec tri de colonnes pour un exemple montrant l'ordre d'utilisation des colonnes.
Vous pouvez également :
-
Utilisez
DBMS_DATA_ACCESS.LIST_ACTIVE_URLSpour afficher les hyperliens de table. Voir Lister les hyperliens de table et les groupes d'hyperliens de table pour plus de détails. -
Utilisez
DBMS_DATA_ACCESS.EXTEND_URLpour prolonger la durée de vie d'un hyperlien de table. Pour plus d'informations, voir Procédure EXTEND_URL. -
Générer des hyperliens de table qui sont traités avec différentes garanties et ressources de niveau de service. Par exemple, l'accès à un objet ou à une instruction SQL peut être mappé avec les services HIGH ou MEDIUM, tandis que l'accès à un autre objet ou à une autre instruction SQL peut être mappé avec le service LOW. Pour plus d'informations, voir Procédure CREATE_URL.
Créer un hyperlien de table protégée par mot de passe
Lorsque vous créez un hyperlien de table, vous pouvez spécifier un mot de passe d'hyperlien de table.
Lorsqu'un utilisateur accède à un hyperlien 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 de l'hyperlien de table. Cela fournit une étape de sécurité supplémentaire pour éviter l'accès malveillant, dans le cas où un hyperlien de table est exposé à un public plus large que prévu.
Pour créer un hyperlien de table protégé par mot de passe :
-
Identifiez la table, la vue ou l'instruction d'interrogation pour les données que vous souhaitez partager.
Vous pouvez spécifier un hyperlien de table ou un groupe d'hyperliens de table protégé par mot de passe.
-
Lorsque vous créez un hyperlien de table ou un groupe d'hyperliens de table, spécifiez le paramètre
password.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
passwordspécifie le mot de passe requis pour accéder à l'hyperlien de table (ou au groupe d'hyperliens de table). En plus du mot de passe, toutes les protections de sécurité qui s'appliquent à un hyperlien de table, telles que le délai d'expiration et le nombre d'expiration, s'appliquent également à un hyperlien de table protégé par mot de passe.Le paramètre
max_failed_access_attemptsspécifie le nombre maximal d'échecs de tentatives de mot de passe séquentielles; si cette valeur est dépassée, l'hyperlien de la 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, voir Procédure CREATE_URL.
-
Vérifiez le résultat.
Dans cet exemple,
statuscontient le résultat qui inclut des informations sur l'hyperlien 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" }
Notez ce qui suit lorsque vous incluez le paramètre password avec DBMS_DATA_ACCESS.CREATE_URL :
-
Le résultat inclut l'attribut
urlavec la valeur d'URL d'hyperlien de table. Sans le paramètrepassword, l'attribut de résultat estpreauth_url. Cette différence vous permet de distinguer un hyperlien 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 comprendre au moins une lettre majuscule, une lettre minuscule et un caractère numérique. Ces règles sont les mêmes que celles appliquées aux règles de complexité de mot de passe pour un utilisateur de base de données associé à une fonction PVF
NULL(Password Verification Function). 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, voir Gérer la complexité des mots de passe sur la 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_URLet que vous n'avez pas enregistré par la suite ou que vous ne pouvez pas vous souvenir du mot de passe que vous avez défini, vous devez créer un nouvel hyperlien de table. -
Il n'y a aucune association entre le mot de passe d'un hyperlien 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 hyperlien de table protégé par mot de passe avecCREATE_URL, il n'y a aucune association entre le mot de passe pour l'URL d'hyperlien de table créée et le mot de passe pour l'utilisateurSCOTT.
Créer un hyperlien de table avec liste de contrôle d'accès
Affiche les étapes de création d'un hyperlien de table qui inclut une liste de contrôle d'accès (LCA) pour restreindre l'accès aux adresses IP ou aux intervalles CIDR spécifiés. 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 assurer la sécurité, Oracle vous recommande d'éviter d'exécuter DBMS_DATA_ACCESS.CREATE_URL en tant qu'utilisateur ADMIN.
Pour créer un hyperlien de table avec des restrictions de liste de contrôle d'accès pour un objet de schéma (table ou vue) :
-
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 une ou plusieurs adresses IP ou intervalles CIDR spécifiant 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
1.1.1.1spécifique et de l'ensemble du sous-réseau1.1.1.0/24. -
Exécutez
DBMS_DATA_ACCESS.CREATE_URLpour générer l'hyperlien de table avec la liste de contrôle d'accès 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_minutesspécifie que l'hyperlien de table expire et devient non valide après 120 minutes.Le paramètre
aclgarantit que seuls les clients se connectant à partir d'adresses IP approuvées peuvent utiliser l'hyperlien.Voir Procédure CREATE_URL pour plus de détails sur les paramètres et les options d'utilisation.
-
Vérifiez le résultat.
La variable de statut contient la sortie qui inclut des informations sur l'hyperlien 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 vous assurant que les contrôles limités dans le temps et basés sur IP s'appliquent aux données exposées.
Créer un hyperlien de table qui hérite des paramètres de liste de contrôle d'accès
Affiche les étapes de création d'un hyperlien de table qui hérite des paramètres de liste de contrôle d'accès (LCA) existants à partir 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 de liste de contrôle d'accès lors du partage des données.
Pour créer un hyperlien de table qui hérite des paramètres de liste de contrôle d'accès :
-
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 des listes de contrôle d'accès.
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 l'hyperlien 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 l'hyperlien 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 qui accèdent à l'hyperlien. -
Vérifiez le résultat.
Le bloc PL/SQL retourne une réponse JSON dans la variable
status. Cette réponse comprend des métadonnées sur l'hyperlien de table nouvellement créé, telles que son statut, son ID hyperlien, 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 maintenant partager
preauth_urlgénéré en toute sécurité avec les utilisateurs autorisés. Comme l'hyperlien hérite des paramètres de liste de contrôle d'accès, 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 hyperlien de table cohérente pour une table ou une vue
Affiche les étapes de création d'un hyperlien 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 précis.
Pour créer un hyperlien de table qui génère un cliché cohérent des données pour un objet de schéma (table ou vue) :
-
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_minutesspécifie la durée (en minutes) pendant laquelle l'hyperlien reste valide. Dans ce cas, l'hyperlien expirera après120minutes. -
Activer le mode de cohérence.
Réglez le paramètre cohérent à
TRUEpour vous assurer que toutes les données extraites au moyen du lien hypertexte représentent un instantané transactionnel unique de l'objet source. -
Exécutez
DBMS_DATA_ACCESS.CREATE_URLpour créer l'hyperlien de la 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 au moyen de cet hyperlien extrait les données à un moment précis, même si des mises à jour ultérieures ont lieu dans la table ou la vue de base.
Voir Procédure CREATE_URL pour plus de détails sur tous les paramètres pris en charge par cette procédure.
-
Vérifiez le résultat.
La variable de statut contient la sortie de l'opération, qui inclut des informations telles que le statut de l'hyperlien, 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 de cohérence garantit que tous les utilisateurs accédant à l'hyperlien voient la même vue de cohérence transactionnelle des données STUDENTS_VIEW au moment de la création de l'URL.
Invalider les hyperliens de table
À tout moment, un utilisateur disposant des privilèges appropriés peut invalider un hyperlien de table.
Pour invalider un hyperlien de table, vous avez besoin de l'hyperlien de table id. Utilisez DBMS_DATA_ACCESS.LIST_ACTIVE_URLS pour générer une liste d'hyperliens de table et leurs id associés.
Utilisez DBMS_DATA_ACCESS.INVALIDATE_URL pour invalider un hyperlien 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 d'hyperliens de table.
Pour plus d'informations, voir Invalider un groupe d'hyperliens de table et Procédure INVALIDATE_URL.
Définir une politique de base de données privée virtuelle pour sécuriser les données d'hyperlien de table
En définissant des stratégies Oracle Virtual Private Database (VPD) pour les données que vous partagez avec un hyperlien de table, vous pouvez fournir un contrôle d'accès détaillé afin que seul un sous-ensemble de données (rangées) soit visible pour un hyperlien 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 jeu de données. Lors de l'accès à un hyperlien de table, la valeur application_user_id spécifiée lors de la génération de l'hyperlien de table est disponible au moyen de sys_context('DATA_ACCESS_CONTEXT$', 'USER_IDENTITY'). Vous pouvez définir des stratégies de BDVP qui utilisent la valeur de ce contexte applicatif pour limiter l'affichage des données et des lignes à l'utilisateur de l'application.
Tout utilisateur autorisé à lire des données à l'aide d'un hyperlien 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 politique de BDVP sur la base de données qui a généré un hyperlien 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 hyperlien de table. Si vous souhaitez restreindre l'accès à certaines données, vous pouvez ajouter une stratégie de BDVP.
Exemple :
-
Obtenez la valeur
application_user_idque vous avez spécifiée lors de la génération de l'hyperlien de table. -
Créez une stratégie de BDVP dans la base de données où vous avez généré l'hyperlien 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; /Voir DBMS_RLS pour plus d'informations.
Pour plus d'informations, voir Utilisation d'Oracle Virtual Private Database pour contrôler l'accès aux données.
Surveiller et voir l'utilisation des hyperliens de table
Autonomous AI Database fournit des vues qui vous permettent de surveiller l'utilisation de l'hyperlien de table.
| Vues | Description |
|---|---|
| V$DATA_ACCESS_URL_STATS et Vues GV$DATA_ACCESS_URL_STATS | Ces vues suivent l'utilisation des hyperliens de table, notamment le temps écoulé, le temps CPU et des informations supplémentaires. |
Notes pour créer un hyperlien de table ou un groupe d'hyperliens de table
Notes pour créer un hyperlien de table ou un groupe d'hyperliens de table avec DBMS_DATA_ACCESS.CREATE_URL :
-
Vous pouvez utiliser le paramètre facultatif
service_namepour spécifier qu'un hyperlien de table généré est traité avec une garantie de niveau de service et des ressources spécifiques. Par exemple, utilisez le paramètreservice_namepour spécifier que l'accès à l'énoncé SQL est mappé au service HIGH. -
Vous pouvez utiliser l'un des paramètres facultatifs
inherit_acletaclou les deux pour limiter l'accès aux données de l'hyperlien de table :-
inherit_acl: Utilisez le paramètre facultatifinherit_aclpour limiter l'accès aux données de l'hyperlien de table. Réglez ce paramètre àTRUEpour hériter des listes de contrôle d'accès. Lorsque la valeur de ce paramètre estTRUE, l'adresse IP d'un consommateur d'hyperlien de table entrant est validée avec les listes de contrôle d'accès de la base de données du fournisseur 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 valeurinherit_aclest ignorée et l'accès aux données est autorisé sans vérification de liste de contrôle d'accès. -
acl: Utilisez le paramètre facultatifaclpour spécifier une liste de contrôle d'accès qui s'applique à l'hyperlien de table. La valeur du paramètre spécifie la liste des adresses IP autorisées, des blocs CIDR ou des OCID de VCN OCI. Lorsque le paramètreaclest spécifié, un consommateur d'hyperlien de table ne peut accéder aux données qu'à partir des hôtes spécifiés dans la liste de contrôle d'accès.
Lorsque
inherit_acla la valeurTRUEet que le paramètreaclest réglé pour spécifier une liste de contrôle d'accès, un consommateur d'hyperlien de table peut accéder aux données d'un hyperlien de table à partir des hôtes spécifiés avec le paramètreaclou à partir des hôtes hérités définis dans la liste de contrôle d'accès spécifiée pour l'instance de base de données de l'IA autonome.Pour plus d'informations, voir Configuration de l'accès au réseau à l'aide de règles de contrôle d'accès (LCA).
-
-
Lorsque vous réglez le paramètre facultatif
consistentàTRUE, un producteur d'hyperliens de table produit des données de manière cohérente sur différentes pages. Cela permet au consommateur d'accéder aux données de toutes les pages associées à un hyperlien de table à l'aide du même instantané de données (SCN) que le numéro SCN associé à l'accès de la première page. Cette option permet à un fournisseur de portlets de retourner des données cohérentes à un consommateur où les réponses sont paginées et où plusieurs pages sont retournées (les données sont retournées page par page, au fur et à mesure de l'accès).Lorsque
consistentest réglé àTRUEet qu'un hyperlien de table référence des objets de schéma provenant du schéma d'un autre utilisateur, l'utilisateur de base de données qui crée l'hyperlien de table doit avoir le privilègeFLASHBACKsur tous les objets de schéma utilisés dans l'hyperlien de table qui appartiennent au schéma de l'autre utilisateur.Exemple :
GRANT FLASHBACK ON TREE_SCHEMA.TREE_DATA TO SCOTT;Remarque : si l'activité de la base de données est importante et que suffisamment de temps passe entre l'extraction de la première page et l'extraction d'une page suivante, il peut ne pas être possible d'extraire des données ultérieures cohérentes avec le premier accès. Dans ce cas, l'extraction entraîne une erreur.
Pour plus d'informations, voir Accéder aux données à l'aide d'hyperliens de table ou d'un groupe d'hyperliens de table.
-
Lorsque vous créez un hyperlien de table sur une instance de base de données du service d'intelligence artificielle autonome avec un point d'extrémité privé, le résultat inclut un nom
private_preauth_urlavec la valeur du formulaire :"https://private-endpoint/adb/p/parurl-token/data".Lorsque vous créez un hyperlien de table sur une instance de base de données du service d'intelligence artificielle autonome avec un point d'extrémité privé et que le point d'extrémité privé est configuré avec l'option Autoriser l'accès public activée, le résultat inclut à la fois
preauth_urlpour le point d'extrémité public etprivate_preauth_url.Pour plus d'informations, voir Configurer des points d'extrémité privés et Utiliser un point d'extrémité privé avec accès public autorisé.
-
Utilisez
DBMS_DATA_ACCESS.LIST_ACTIVE_URLSpour afficher les hyperliens de table. Voir Lister les hyperliens de table et les groupes d'hyperliens de table pour plus de détails. -
Utilisez
DBMS_DATA_ACCESS.EXTEND_URLpour prolonger la durée de vie d'un hyperlien de table. Pour plus d'informations, voir Procédure EXTEND_URL.