Crear, gestionar y supervisar hipervínculos de tabla
Muestra los pasos para crear, gestionar y supervisar hipervínculos de tabla.
Creación de un Hiperenlace de Tabla para una Tabla o Vista
Muestra los pasos para crear un hiperenlace de tabla que puede utilizar para compartir el acceso a un objeto de esquema (tabla o vista).
Cuando se ejecuta un hiperenlace de tabla, utiliza los privilegios otorgados al usuario de la base de datos que genera el hiperenlace de tabla. El usuario que genera un hiperenlace de tabla debe tener los privilegios mínimos necesarios para proporcionar acceso a los datos. Para mantener la seguridad, Oracle recomienda que no ejecute DBMS_DATA_ACCESS.CREATE_URL como usuario ADMIN.
Para utilizar un hiperenlace de tabla para proporcionar acceso a los datos como objeto de esquema (tabla o vista):
-
Identifique la tabla o vista que desea compartir.
Si hay restricciones en los datos que desea que estén disponibles, utilice el parámetro
application_user_idal generar el hiperenlace de tabla y cree una política de VPD para restringir los datos que exponga. Consulte Definición de una política de base de datos privada virtual para proteger los datos de hiperenlace de tabla para obtener más información. -
Ejecute
DBMS_DATA_ACCESS.CREATE_URLpara generar el hiperenlace de tabla.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; /El parámetro
expiration_minutesespecifica que el hiperenlace de tabla caduca y se invalida después de 360 minutos.Consulte Procedimiento CREATE_URL para obtener más información.
-
Compruebe el resultado.
En este ejemplo,
statuscontiene el resultado que incluye información sobre el hiperenlace de tabla.{ "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" }
Crear un hiperenlace de tabla con una sentencia Select
Muestra los pasos para crear un hiperenlace de tabla que proporciona acceso a los datos mediante una sentencia de consulta SQL.
Cuando se ejecuta un hiperenlace de tabla, utiliza los privilegios otorgados al usuario de la base de datos que genera el hiperenlace de tabla. El usuario que genera un hiperenlace de tabla debe tener los privilegios mínimos necesarios para proporcionar acceso a los datos. Para mantener la seguridad, Oracle recomienda que no ejecute DBMS_DATA_ACCESS.CREATE_URL como usuario ADMIN.
Para utilizar un hiperenlace de tabla para proporcionar acceso a los datos como una sentencia de consulta SQL arbitraria:
-
Identifique la tabla o vista que contiene la información que desea compartir, así como la sentencia
SELECTde la tabla o vista que desea utilizar.Si hay restricciones en los datos que desea que estén disponibles, utilice el parámetro
application_user_idal generar el hiperenlace de tabla y cree una política de VPD para restringir los datos que exponga. Consulte Definición de una política de base de datos privada virtual para proteger los datos de hiperenlace de tabla para obtener más información. -
Ejecute
DBMS_DATA_ACCESS.CREATE_URLpara generar el hiperenlace de tabla.Tiene dos opciones, dependiendo de si desea incluir valores de variables de enlace por defecto (si incluye variables de enlace en la sentencia select).
-
Proporcione una sentencia select y no utilice el parámetro opcional
default_bind_values.Por ejemplo:
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; /El valor
sql_statementdebe ser una sentenciaSELECT. La sentenciaSELECTsoporta variables ligadas. Si las variables de enlace se incluyen en la sentencia select, los valores de las variables de enlace se deben agregar al hiperenlace de tabla generado como parámetro de consulta al acceder a los datos. -
Proporcione una sentencia select e incluya el parámetro
default_bind_values.Por ejemplo:
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; /El parámetro
sql_statementdebe ser una sentenciaSELECT. La sentenciaSELECTsoporta variables ligadas.El parámetro
default_bind_valuesespecifica valores para una o más variables de enlace ensql_statement. Cuandodefault_bind_valuesse incluye conDBMS_DATA_ACCESS.CREATE_URL:-
Para las variables de enlace especificadas en
default_bind_values, puede omitir los valores de las variables de enlace al acceder a los datos. El valor por defecto se utiliza para una variable de enlace especificada si no se proporciona una sustitución en la URL de hiperenlace de tabla como parámetro de consulta al acceder a los datos. -
Puede sustituir un valor de variable de enlace por defecto especificado en
default_bind_valuessi agrega el valor de variable de enlace en la URL de hiperenlace de tabla como parámetro de consulta al acceder a los datos. -
Si se incluye una variable de enlace en la sentencia select y no se especifica un valor por defecto para la variable de enlace en el parámetro
default_bind_values, debe agregar un valor de variable de enlace a la URL de hiperenlace de tabla generada como parámetro de consulta al acceder a los datos.
-
El soporte de variables de enlace está disponible para los tipos de columna
NUMBERyVARCHAR2.En estos ejemplos, el parámetro
expiration_minutesespecifica que el hiperenlace de tabla caduca y se invalida después de 360 minutos. -
-
Compruebe el resultado.
En este ejemplo,
statuscontiene el resultado que incluye el hiperenlace de tabla.{ "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" }
Creación de un hiperenlace de tabla con funciones de interfaz de usuario especificadas en columnas
Al crear un hiperenlace de tabla, puede utilizar el parámetro column_lists para especificar las funciones de la interfaz de usuario para las columnas especificadas.
El parámetro column_lists es un valor JSON que especifica opciones por columna. Los valores soportados en column_lists son uno o más de los siguientes:
| Valor de column_lists | Descripción |
|---|---|
order_by_columns |
Especifica las columnas que soportan la ordenación. Las columnas se especifican en una matriz de JSON. |
filter_columns |
Especifica las columnas que soportan el filtrado. Las columnas se especifican en una matriz de JSON. |
default_color_columns |
Especifica que sólo se utilice la coloración por defecto para las columnas especificadas. Las columnas se especifican en una matriz de JSON. |
group_by_columns |
Especifica que se permite agrupar por para las columnas especificadas (se permite ver los datos agrupando la columna especificada). Las columnas se especifican en una matriz de JSON. |
Para especificar las funciones de la interfaz de usuario de nivel de columna de vista de tabla para un hiperenlace de tabla:
-
Identifique la tabla o vista o seleccione la sentencia que desea compartir.
En este ejemplo se genera un hiperenlace de tabla mediante el parámetro
column_listscon una tabla. También puede utilizar este parámetro al generar un hiperenlace de tabla con una sentenciaSELECT.Consulte Creación de un Hiperenlace de Tabla para una Tabla o Vista y Creación de un Hiperenlace de Tabla con una Sentencia Select para obtener más información.
-
Ejecute
DBMS_DATA_ACCESS.CREATE_URLpara generar el hiperenlace de tabla y especificar la opción Agrupar por columnas para ver con un explorador:Por ejemplo, para especificar el agrupamiento por columnas:
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; /El parámetro
column_listses JSON que contiene una lista de matrices JSON de columnas que definen la funcionalidad de hiperenlace de tabla. Utilice este parámetro para especificar las columnas para una o más de las opciones:order_by_columns,filter_columns,default_color_columnsogroup_by_columns.Por ejemplo:
column_lists => '{ "group_by_columns":["COUNTY", "SPECIES"], "order_by_columns":["COUNTY"] }'Consulte Procedimiento CREATE_URL para obtener más información.
-
Compruebe el resultado.
En este ejemplo,
statuscontiene el resultado que incluye información sobre el hiperenlace de tabla.{ "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" }Consulte Uso de hiperenlaces de tabla para acceder a datos con la opción Agrupar por en formato de tabla para ver un ejemplo que muestra el uso de agrupar por columnas.
-
Ejecute
DBMS_DATA_ACCESS.CREATE_URLpara generar el hiperenlace de tabla y especificar una opción de formato de interfaz de usuario.Por ejemplo, para definir las columnas que se pueden ordenar, utilice la opción
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; /El parámetro
column_listses JSON que contiene una lista de matrices JSON de columnas que definen la funcionalidad de hiperenlace de tabla. Utilice este parámetro para especificar las columnas para una o más de las opciones:order_by_columns,filter_columns,default_color_columnsogroup_by_columns.Consulte Procedimiento CREATE_URL para obtener más información.
-
Compruebe el resultado.
En este ejemplo,
statuscontiene el resultado que incluye información sobre el hiperenlace de tabla.{ "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" }Consulte Uso de hipervínculos de tabla en formato de tabla con ordenación de columnas para ver un ejemplo que muestra el uso de orden por columnas.
También puede:
-
Utilice
DBMS_DATA_ACCESS.LIST_ACTIVE_URLSpara mostrar hipervínculos de tabla. Consulte Lista de hiperenlaces de tablas y grupos de hiperenlaces de tablas para obtener más información. -
Utilice
DBMS_DATA_ACCESS.EXTEND_URLpara ampliar la vida útil de un hiperenlace de tabla. Consulte Procedimiento EXTEND_URL para obtener más información. -
Generar hipervínculos de tabla con diferentes garantías y recursos de nivel de servicio. Por ejemplo, el acceso a un objeto o sentencia SQL se puede asignar a los servicios HIGH o MEDIUM, mientras que el acceso a otro objeto o sentencia SQL se puede asignar al servicio LOW. Consulte Procedimiento CREATE_URL para obtener más información.
Creación de un hiperenlace de tabla protegida con contraseña
Al crear un hiperenlace de tabla, puede especificar una contraseña de hiperenlace de tabla.
Cuando un usuario accede a un hiperenlace de tabla protegido por contraseña, debe autenticarse mediante la contraseña especificada cuando se crea el hiperenlace de tabla. Esto proporciona un paso de seguridad adicional para evitar el acceso malicioso, en el caso de que un hiperenlace de tabla esté expuesto a un público más amplio de lo previsto.
Para crear un hiperenlace de tabla protegido con contraseña:
-
Identifique la tabla, vista o sentencia de consulta para los datos que desea compartir.
Puede especificar un hiperenlace de tabla o un grupo de hiperenlaces de tabla protegidos por contraseña.
-
Al crear un hiperenlace de tabla o un grupo de hiperenlaces de tabla, especifique el parámetro
password.Por ejemplo:
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; /El parámetro
passwordespecifica la contraseña necesaria para acceder al hiperenlace de tabla (o grupo de hiperenlaces de tabla). Además de la contraseña, todas las protecciones de seguridad que se aplican a un hipervínculo de tabla, como el tiempo de caducidad y el recuento de caducidad, también se aplican a un hipervínculo de tabla protegido por contraseña.El parámetro
max_failed_access_attemptsespecifica el número máximo de intentos de contraseña fallidos secuenciales; si se supera este valor, se invalidará el hiperenlace de tabla. El valor por defecto para este parámetro es 10. El recuento para realizar un seguimiento del número de intentos de acceso fallidos secuenciales se restablece a 0 cuando el usuario proporciona la contraseña correcta.Consulte Procedimiento CREATE_URL para obtener más información.
-
Compruebe el resultado.
En este ejemplo,
statuscontiene el resultado que incluye información sobre el hiperenlace de tabla.{ "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" }
Tenga en cuenta lo siguiente al incluir el parámetro password con DBMS_DATA_ACCESS.CREATE_URL:
-
El resultado incluye el atributo
urlcon el valor URL de hiperenlace de tabla. Sin el parámetropassword, el atributo de resultado espreauth_url. Esta diferencia le permite distinguir un hipervínculo de tabla protegido por contraseña en el resultado. -
La longitud mínima de la contraseña es de 12 caracteres y debe incluir al menos una letra en mayúscula, una letra en minúscula y un carácter numérico. Estas reglas son las mismas que las que se aplican para las reglas de complejidad de contraseñas para un usuario de base de datos asociado a un PVF
NULL(función de verificación de contraseña). Si se llama aCREATE_URLcon el parámetro de contraseña y la contraseña proporcionada no cumple con estas reglas, por ejemplo, la contraseña tiene menos de 12 caracteres, la creación de la URL falla y se produce un error.Consulte Gestión de la complejidad de las contraseñas en la base de datos de IA autónoma para obtener más información.
-
No hay opción para cambiar o restablecer una contraseña después de definirla. Si ejecuta
CREATE_URLy posteriormente no ha guardado o no puede recordar la contraseña definida, debe crear un nuevo hipervínculo de tabla. -
No hay ninguna asociación entre la contraseña de un hiperenlace de tabla protegido por contraseña y la contraseña del usuario que crea la URL. Si el usuario
SCOTTcrea un hiperenlace de tabla protegido por contraseña conCREATE_URL, no hay ninguna asociación entre la contraseña para la URL de hiperenlace de tabla que se crea y la contraseña para el usuarioSCOTT.
Creación de un hiperenlace de tabla con la lista de control de acceso (ACL)
Muestra los pasos para crear un hiperenlace de tabla que incluya una lista de control de acceso (ACL) para restringir el acceso a direcciones IP o rangos de CIDR especificados. Puede utilizar este método para controlar qué clientes pueden acceder a un objeto de esquema compartido (tabla o vista).
Para mantener la seguridad, Oracle recomienda evitar la ejecución de DBMS_DATA_ACCESS.CREATE_URL como usuario ADMIN.
Para crear un hiperenlace de tabla con restricciones de ACL para un objeto de esquema (tabla o vista):
-
Identifique la tabla o vista que desea compartir.
Por ejemplo, puede que desee compartir una vista como
STUDENTS_VIEWque es propiedad del usuarioUSER1. -
Defina las reglas de acceso IP mediante el parámetro
acl.El parámetro
aclacepta una matriz de JSON que contiene una o más direcciones IP o rangos de CIDR que especifican el acceso permitido.Ejemplo:
'["1.1.1.1", "1.1.1.0/24"]'Esta configuración permite el acceso solo desde la IP específica
1.1.1.1y desde toda la subred1.1.1.0/24. -
Ejecute
DBMS_DATA_ACCESS.CREATE_URLpara generar el hiperenlace de tabla con la ACL en su lugar.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; /El parámetro
expiration_minutesespecifica que el hiperenlace de tabla caduca y deja de ser válido después de 120 minutos.El parámetro
aclgarantiza que solo los clientes que se conectan desde direcciones IP aprobadas puedan utilizar el hiperenlace.Consulte Procedimiento CREATE_URL para obtener más información sobre los parámetros y las opciones de uso.
-
Compruebe el resultado.
La variable de estado contiene la salida que incluye información sobre el hiperenlace de tabla generado, como su ID, URL y registro de hora de caducidad. Una salida correcta puede tener un aspecto similar al siguiente:
{ "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" }
Puede compartir la URL generada de forma segura con los destinatarios autorizados, lo que garantiza que tanto el tiempo limitado como los controles basados en IP se apliquen a los datos expuestos.
Creación de un hiperenlace de tabla que hereda la configuración de ACL
Muestra los pasos para crear un hiperenlace de tabla que hereda la configuración existente de la lista de control de acceso (ACL) de un objeto de esquema principal (tabla o vista). Esto permite un comportamiento de control de acceso consistente sin especificar manualmente los parámetros de ACL al compartir datos.
Para crear un hiperenlace de tabla que herede la configuración de ACL:
-
Identifique la tabla o vista que desea compartir.
Por ejemplo, puede compartir una vista denominada
STUDENTS_VIEWque es propiedad del esquemaUSER1. -
Decida el período de caducidad del hiperenlace.
Utilice el parámetro
expiration_minutespara definir cuánto tiempo debe permanecer válido el enlace antes de que caduque. En este ejemplo, el enlace caduca después de120 minutes. -
Active la herencia de ACL.
Defina el parámetro
inherit_acl => TRUEpara aplicar automáticamente la misma ACL que la tabla o vista de origen. Esto garantiza que el hiperenlace hereda todos los permisos configurados en el objeto de esquema principal. -
Ejecute
DBMS_DATA_ACCESS.CREATE_URLpara generar el hiperenlace de tabla.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; /El parámetro
inherit_aclindica a Oracle Autonomous AI Database que reutilice la lista de control de acceso definida para el objeto de origen, manteniendo las mismas restricciones para todos los usuarios que acceden al hiperenlace. -
Compruebe el resultado.
El bloque PL/SQL devuelve una respuesta JSON en la variable
status. Esta respuesta incluye metadatos sobre el hiperenlace de tabla recién creado, como su estado, ID de hiperenlace, URL con autorización previa y registro de hora de caducidad.Por ejemplo,
{ "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" }Ahora puede compartir el
preauth_urlgenerado de forma segura con usuarios autorizados. Dado que el hiperenlace hereda la configuración de ACL, aplica automáticamente las mismas restricciones de IP, usuario o red que el objeto de esquemaSTUDENTS_VIEWsubyacente.
Creación de un Hiperenlace de Tabla Consistente para una Tabla o Vista
Muestra los pasos para crear un hiperenlace de tabla con la opción consistente activada, lo que le permite generar una vista de lectura consistente de los datos en un momento específico.
Para crear un hiperenlace de tabla que produzca una instantánea de datos consistente para un objeto de esquema (tabla o vista):
-
Identifique la tabla o vista que desea compartir.
En este ejemplo, se utiliza una vista denominada
STUDENTS_VIEWen el esquemaUSER1. -
Determine el período de vencimiento del hiperenlace.
El parámetro
expiration_minutesespecifica la duración (en minutos) durante la cual el hiperenlace sigue siendo válido. En este caso, el hiperenlace caducará después de120minutos. -
Active el modo de coherencia.
Defina el parámetro consistente en
TRUEpara asegurarse de que todos los datos recuperados mediante el hiperenlace representan una única instantánea transaccional del objeto de origen. -
Ejecute
DBMS_DATA_ACCESS.CREATE_URLpara crear el hiperenlace de tabla.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; /El parámetro consistente garantiza que cualquier operación de lectura realizada a través de este hiperenlace recupere datos a partir de un punto en el tiempo específico, incluso si se producen actualizaciones posteriores en la tabla o vista base.
Consulte Procedimiento CREATE_URL para obtener detalles sobre todos los parámetros admitidos por este procedimiento.
-
Compruebe el resultado.
La variable de estado contiene la salida de la operación, que incluye información como el estado del hiperenlace, el ID, la URL generada y el registro de hora de caducidad.
Ejemplo:
{ "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" }
Ahora puede compartir la URL generada de forma segura con usuarios autorizados. La configuración consistente garantiza que todos los usuarios que acceden al hiperenlace vean la misma vista transaccionalmente consistente de los datos STUDENTS_VIEW en el momento en que se creó la URL.
Invalidar hiperenlaces de tablas
En cualquier momento, un usuario con los privilegios adecuados puede invalidar un hiperenlace de tabla.
Para invalidar un hipervínculo de tabla, necesita el hipervínculo de tabla id. Utilice DBMS_DATA_ACCESS.LIST_ACTIVE_URLS para generar una lista de hiperenlaces de tabla y su id asociado.
Utilice DBMS_DATA_ACCESS.INVALIDATE_URL para invalidar un hiperenlace de tabla. Por ejemplo:
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.INVALIDATE_URL(
id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
result => status);
dbms_output.put_line(status);
END;
/También puede utilizar DBMS_DATA_ACCESS.INVALIDATE_URL para invalidar un grupo de hipervínculos de tabla.
Consulte Invalidate a Table Hyperlink Group y INVALIDATE_URL Procedure para obtener más información.
Definición de una política de base de datos privada virtual para proteger los datos de hiperenlace de tabla
Al definir políticas de Oracle Virtual Private Database (VPD) para los datos que comparte con un hiperenlace de tabla, puede proporcionar un control de acceso detallado para que solo un subjuego de datos, filas, sea visible para un hiperenlace de tabla específico.
Oracle Virtual Private Database (VPD) es una función de seguridad que permite controlar el acceso a los datos de forma dinámica a nivel de fila para usuarios y aplicaciones mediante la aplicación de filtros en el mismo juego de datos. Cuando se accede a un hiperenlace de tabla, el valor de application_user_id especificado durante la generación del hiperenlace de tabla está disponible a través de sys_context('DATA_ACCESS_CONTEXT$', 'USER_IDENTITY'). Puede definir políticas de VPD que utilicen el valor de este contexto de aplicación para restringir los datos, las filas y el usuario de la aplicación.
Cualquier usuario al que se le conceda acceso para leer datos con un hiperenlace de tabla puede acceder a los datos y utilizarlos (ya sea una tabla, una vista o los datos proporcionados con una sentencia select). Al definir una política de VPD en la base de datos que ha generado un hiperenlace de tabla, puede utilizar el valor application_user_id en una regla SYS_CONTEXT para proporcionar un control más detallado. Considere un ejemplo en el que los datos están disponibles con un hiperenlace de tabla. Si desea restringir el acceso a algunos de los datos, puede agregar una política de VPD.
Por ejemplo:
-
Obtenga el valor
application_user_idque especificó al generar el hiperenlace de tabla. -
Cree la política de VPD en la base de datos en la que ha generado el hiperenlace de tabla.
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.
-
Registre la política de VPD.
BEGIN DBMS_RLS.ADD_POLICY( object_schema => 'HR', object_name => 'EMPLOYEE', policy_name => 'POL', policy_function => 'LIMIT_SAL'); END; /Consulte DBMS_RLS para obtener más información.
Consulte Uso de Oracle Virtual Private Database para Controlar el Acceso a Datos para obtener más información.
Supervisión y visualización del uso del hiperenlace de la tabla
La base de datos de IA autónoma proporciona vistas que le permiten supervisar el uso del hiperenlace de tabla.
| Vistas | Descripción |
|---|---|
| Vistas V$DATA_ACCESS_URL_STATS y GV$DATA_ACCESS_URL_STATS | Estas vistas realizan un seguimiento del uso del hiperenlace de tabla, incluido el tiempo transcurrido, el tiempo de CPU y la información adicional. |
Notas para crear un hipervínculo de tabla o un grupo de hipervínculos de tabla
Notas para crear un hiperenlace de tabla o un grupo de hiperenlaces de tabla con DBMS_DATA_ACCESS.CREATE_URL:
-
Puede utilizar el parámetro opcional
service_namepara especificar que se sirva un hiperenlace de tabla generado con una garantía y recursos de nivel de servicio específicos. Por ejemplo, utilice el parámetroservice_namepara especificar que el acceso a la sentencia SQL se asigne al servicio HIGH. -
Puede utilizar uno o ambos parámetros opcionales
inherit_aclyaclsi desea limitar el acceso a los datos de hiperenlace de tabla:-
inherit_acl: utilice el parámetro opcionalinherit_aclsi desea limitar el acceso a los datos de hiperenlace de tabla. Establezca este parámetro enTRUEpara heredar las ACL. Cuando el valor de este parámetro esTRUE, la dirección IP de un consumidor de hiperenlace de tabla entrante se valida con las ACL en la base de datos del productor antes de permitir el acceso a los datos. Si la base de datos del productor no tiene ACL configuradas, se ignora el valorinherit_acly se permite el acceso a los datos sin ninguna comprobación de ACL. -
acl: utilice el parámetro opcionalaclpara especificar una ACL que se aplique al hiperenlace de tabla. El valor del parámetro especifica la lista de direcciones IP permitidas, bloques CIDR u OCID de VCN de OCI. Cuando se especifica el parámetroacl, un consumidor de hiperenlace de tabla solo puede acceder a los datos de los hosts especificados en la ACL.
Cuando
inherit_aclesTRUEy el parámetroaclestá definido para especificar una ACL, un consumidor de hiperenlace de tabla puede acceder a los datos de un hiperenlace de tabla desde los hosts especificados con el parámetroaclo desde los hosts heredados definidos en la ACL especificada para la instancia de base de datos de IA autónoma.Consulte Configuración del acceso de red con reglas de control de acceso (ACL) para obtener más información.
-
-
Al definir el parámetro opcional
consistentenTRUE, un productor de hiperenlace de tabla produce datos de forma consistente en distintas páginas. Esto permite a un consumidor acceder a los datos de todas las páginas asociadas a un hiperenlace de tabla mediante la misma instantánea de datos (SCN) que el SCN asociado al acceso de la primera página. Esta opción permite a un productor devolver datos consistentes a un consumidor donde las respuestas se paginan y se devuelven varias páginas (los datos se devuelven página por página, a medida que se accede).Cuando
consistentestá definido enTRUEy un hiperenlace de tabla hace referencia a objetos de esquema de otro esquema de usuario, el usuario de la base de datos que crea el hiperenlace de tabla debe tener el privilegioFLASHBACKen todos los objetos de esquema utilizados en el hiperenlace de tabla que pertenezcan al esquema del otro usuario.Por ejemplo:
GRANT FLASHBACK ON TREE_SCHEMA.TREE_DATA TO SCOTT;Nota: si hay una gran cantidad de actividad de la base de datos y transcurre suficiente tiempo entre la recuperación de la primera página y la recuperación de una página posterior, puede que no sea posible recuperar datos posteriores que sean consistentes con el primer acceso. En este caso, la recuperación genera un error.
Consulte Acceso a datos con hipervínculos de tabla o con un grupo de hipervínculos de tabla para obtener más información.
-
Al crear un hiperenlace de tabla en una instancia de base de datos de IA autónoma con un punto final privado, el resultado incluye un nombre
private_preauth_urlcon el valor del formulario:"https://private-endpoint/adb/p/parurl-token/data".Al crear un hiperenlace de tabla en una instancia de base de datos de IA autónoma con un punto final privado y el punto final privado está configurado con la opción Permitir acceso público activada, el resultado incluye
preauth_urlpara el punto final público yprivate_preauth_url.Consulte Configuración de puntos finales privados y Uso de un punto final privado con acceso público permitido para obtener más información.
-
Utilice
DBMS_DATA_ACCESS.LIST_ACTIVE_URLSpara mostrar hipervínculos de tabla. Consulte Lista de hiperenlaces de tablas y grupos de hiperenlaces de tablas para obtener más información. -
Utilice
DBMS_DATA_ACCESS.EXTEND_URLpara ampliar la vida útil de un hiperenlace de tabla. Consulte Procedimiento EXTEND_URL para obtener más información.