Control de acceso detallado para transmisiones de cambios

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

En esta página, se explica cómo funciona el control de acceso detallado con las transmisiones de cambios de Cloud Spanner.

Para los usuarios de control de acceso detallados, permites el acceso de lectura a los datos de transmisión de cambios mediante las siguientes concesiones. Ambas becas son obligatorias.

  • Otorga SELECT en la transmisión de cambios.

    GRANT SELECT ON CHANGE STREAM CHANGE_STREAM_NAME TO ROLE ROLE_NAME;
    
  • Otorga EXECUTE en la función con valor de tabla (TVF) que se crea de forma automática para la transmisión de cambios. Usas el TVF para realizar lecturas en los datos de transmisión de cambios.

    GRANT EXECUTE ON TABLE FUNCTION TABLE_FUNCTION_NAME TO ROLE ROLE_NAME;
    

    Para obtener información sobre los TVF de transmisiones de cambios, consulta Cambia la sintaxis de consulta de transmisión.

INFORMATION_SCHEMA tablas de transmisiones de cambios

En la tabla INFORMATION_SCHEMA.CHANGE_STREAM_PRIVILEGES, se muestran las funciones de la base de datos y los privilegios para las transmisiones de cambios.

Las filas de esta tabla se filtran según los privilegios de la función de base de datos actual en los flujos de cambios. Esto garantiza que las principales solo puedan ver las funciones, los privilegios y los flujos de cambio a los que tienen acceso.

El filtrado de filas también se aplica a las siguientes tablas relacionadas con los flujos de cambios:

La función del sistema spanner_info_reader y sus miembros siempre ven una versión sin filtrar de INFORMATION_SCHEMA.

Advertencias

  • Debido a que una transmisión de cambios contiene una copia separada de los datos de las tablas y columnas con seguimiento, ten cuidado cuando les otorgues a los usuarios acceso a la transmisión de cambios. Los lectores de la transmisión de cambios pueden ver los cambios en los datos de las tablas y columnas en las que se realizó el seguimiento, aunque es posible que no tengan privilegios SELECT en las tablas y columnas. Aunque es más flexible poder configurar controles separados sobre las transmisiones de cambios y sus tablas y columnas con seguimiento, ten en cuenta el riesgo potencial y asegúrate de estructurar las funciones y los privilegios según corresponda. Por ejemplo, cuando revocas el privilegio SELECT en una tabla desde una función, considera si también debes revocar SELECT en la transmisión de cambios (y revocar EXECUTE en la función asociada con valor de tabla).

  • Si otorgas SELECT en una transmisión de cambios que hace un seguimiento de todas las tablas, el beneficiario podrá ver los cambios en los datos de cualquier tabla que se agregue en el futuro.

Más información