Contrôle précis des accès pour les flux de modifications

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 :

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

Le rôle système spanner_info_reader et ses membres voient toujours un libellé non filtré INFORMATION_SCHEMA

PostgreSQL

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 :

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évoquez SELECT droit sur une table à partir d'un rôle, déterminez s'il faut également révoquer SELECT sur le flux de modifications et révoquer EXECUTE 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