Cette page explique le fonctionnement du contrôle des accès précis avec les flux de modifications Spanner.
Pour les utilisateurs disposant d'un contrôle des accès précis, vous autorisez l'accès en lecture pour modifier les données des flux en à l'aide des autorisations suivantes. Vous devez fournir les deux autorisations.
Accordez
SELECT
au flux de modifications.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;
Accordez
EXECUTE
sur la fonction de lecture qui est automatiquement créé pour le flux de modifications. Vous utilisez la fonction read pour lire les enregistrements de flux de modifications.GoogleSQL
GRANT EXECUTE ON TABLE FUNCTION READ_FUNCTION_NAME TO ROLE ROLE_NAME;
PostgreSQL
GRANT EXECUTE ON FUNCTION READ_FUNCTION_NAME TO ROLE_NAME;
Pour plus d'informations sur les conventions d'attribution de noms pour les fonctions de lecture des flux de modifications et sur la mise en forme des informations renvoyées, consultez les articles suivants:
INFORMATION_SCHEMA
vues pour les flux de modifications
Les vues suivantes affichent des informations sur les rôles et les droits de base de données pour les flux de modifications :
- Bases de données en dialecte GoogleSQL :
INFORMATION_SCHEMA.CHANGE_STREAM_PRIVILEGES
- Bases de données en dialecte PostgreSQL :
information_schema.change_stream_privileges
Les lignes de ces vues sont filtrées en fonction des droits du rôle de base de données actuel sur les flux de modifications. Ainsi, les comptes principaux ne peuvent afficher que leurs rôles et leurs droits, et les flux de modifications auxquels ils ont accès.
Le filtrage des lignes s'applique également aux vues liées aux flux de modifications suivants:
GoogleSQL
INFORMATION_SCHEMA.CHANGE_STREAMS
INFORMATION_SCHEMA.CHANGE_STREAM_TABLES
INFORMATION_SCHEMA.CHANGE_STREAM_COLUMNS
INFORMATION_SCHEMA.CHANGE_STREAM_OPTIONS
Le rôle système spanner_info_reader
et ses membres voient toujours un libellé non filtré
INFORMATION_SCHEMA
PostgreSQL
information_schema.change_streams
information_schema.change_stream_tables
information_schema.change_stream_columns
information_schema.change_stream_options
Le rôle système spanner_info_reader
et ses membres voient une information_schema
non filtrée.
Le filtrage des lignes s'applique également aux vues de métadonnées suivantes pour les fonctions de lecture du flux de modifications :
GoogleSQL
PostgreSQL
Mises en garde
Les flux de modifications utilisent une base de données de métadonnées pour gérer l'état interne. La peut être identique ou différente de celle de l'application base de données. Nous vous recommandons d'utiliser une autre base de données. Toutefois, pour les utilisateurs du contrôle d'accès précis, la base de données de métadonnées ne peut pas être la même que la base de données de l'application. En effet, le principal IAM qui exécute le job Dataflow a besoin d'un accès en lecture/écriture au niveau de la base de données pour la base de données de métadonnées. Cela remplacerait les droits de contrôle des accès précis qui ont été configurés pour la base de données de l'application.
Pour en savoir plus, consultez Envisager une base de données de métadonnées distincte.
Comme un flux de modifications contient une copie distincte des données dans les tables et colonnes suivies, faites attention lorsque vous accordez aux utilisateurs l'accès flux de modifications. Les lecteurs du flux de modifications peuvent afficher les modifications de données les tableaux et colonnes suivis, même s'ils ne comportent pas
SELECT
sur les tables et les colonnes. Bien qu'il soit plus flexible de configurer des commandes distinctes sur les flux de modifications et leurs tableaux de suivi, colonnes, il existe un risque. Veillez donc à structurer les bases de données les rôles et les droits appropriés. Par exemple, lorsque vous révoquezSELECT
droit sur une table à partir d'un rôle, déterminez s'il faut également révoquerSELECT
sur le flux de modifications et révoquerEXECUTE
sur la lecture associée .Si vous accordez
SELECT
sur un flux de modifications qui suit toutes les tables, le bénéficiaire peut voir les modifications de données pour toutes les tables ajoutées ultérieurement.
En savoir plus
- À propos des flux de modifications
- Créer et gérer des flux de modifications
- À propos du contrôle ultraprécis des accès