Control de acceso detallado para flujos de cambios

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

Para los usuarios de control de acceso detallado, permites el acceso de lectura a los datos de flujos de cambios con los siguientes otorgamientos. Ambos otorgamientos son obligatorios.

  • Otorga SELECT en el flujo de cambios.

    GoogleSQL

    GRANT SELECT ON CHANGE STREAM CHANGE_STREAM_NAME TO ROLE ROLE_NAME;
    

    PostgreSQL

    GRANT SELECT ON CHANGE STREAM CHANGE_STREAM_NAME TO ROLE_NAME;
    
  • Otorga EXECUTE en la función de lectura que se para el flujo de cambios. Usas la función de lectura para leer registros de flujos de cambios.

    GoogleSQL

    GRANT EXECUTE ON TABLE FUNCTION READ_FUNCTION_NAME TO ROLE ROLE_NAME;
    

    PostgreSQL

    GRANT EXECUTE ON FUNCTION READ_FUNCTION_NAME TO ROLE_NAME;
    

    Para obtener información sobre las convenciones de nombres para las funciones de lectura del flujo de cambios y sobre el formato de la información que devuelve, consulta los siguientes temas:

INFORMATION_SCHEMA vistas para flujos de cambios

En las siguientes vistas, se muestra información sobre los privilegios y los roles de la base de datos para el cambio transmisiones:

Las filas de esta vista se filtran según el rol de la base de datos actual privilegios en los flujos de cambios. Esto garantiza que las principales puedan ver solo la roles, privilegios y flujos de cambios a los que tienen acceso.

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

GoogleSQL

La función del sistema spanner_info_reader y sus miembros siempre ven un filtro INFORMATION_SCHEMA

PostgreSQL

La función del sistema spanner_info_reader y sus miembros ven un filtro information_schema

El filtrado de filas también se aplica a las siguientes vistas de metadatos para los flujos de cambios funciones de lectura:

Advertencias

  • Los flujos de cambios usan una base de datos de metadatos para mantener el estado interno. El de metadatos puede ser igual o diferente a la de la aplicación en la base de datos. Te recomendamos que uses una base de datos diferente. Sin embargo, para usuarios de control de acceso detallados, la base de datos de metadatos no puede ser la misma que la aplicación en la base de datos. Esto se debe a que la principal de IAM que ejecuta El trabajo de Dataflow necesita acceso de lectura/escritura a nivel de base de datos para el en la base de datos de metadatos. Esto anulará los privilegios de control de acceso detallados que se configuraron para la base de datos de la aplicación.

    Para obtener más información, consulta Considera usar una base de datos de metadatos independiente.

  • Debido a que un flujo de cambios contiene una copia independiente de los datos del en las tablas y columnas con seguimiento, ten cuidado cuando otorgues a los usuarios acceso a la flujo de cambios. Los lectores del flujo de cambios pueden ver los cambios de datos de las tablas y columnas con seguimiento, incluso cuando no tienen SELECT privilegios en las tablas y las columnas. Aunque es más flexible establecer controles separados en flujos de cambios y sus tablas de seguimiento columnas, existe un riesgo potencial, así que asegúrate de estructurar la base de datos los roles y privilegios necesarios. Por ejemplo, cuando revocas SELECT privilegio sobre una tabla de un rol, considera también revocar SELECT en el flujo de cambios y revocar EXECUTE en la lectura asociada .

  • Si otorgas SELECT en un flujo de cambios que realiza un seguimiento de todas las tablas, el beneficiario puedes ver los cambios en los datos de las tablas que agregues en el futuro.

Más información