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:
GoogleSQL
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 privilegioSELECT
en una tabla desde una función, considera si también debes revocarSELECT
en la transmisión de cambios (y revocarEXECUTE
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
- Acerca de los flujos de cambios
- Cómo crear y administrar flujos de cambios
- Acerca del control de acceso detallado