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

Cette page explique le fonctionnement du contrôle précis des accès avec Spanner. flux de modifications.

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 sur le 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 présentent des informations sur les rôles et les droits de base de données pour les modifications flux:

Les lignes de cette vue sont filtrées en fonction du rôle de base de données actuel des droits 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 un lien non filtré information_schema

Le filtrage des lignes s'applique également aux vues de métadonnées suivantes pour le flux de modifications lire les fonctions:

Mises en garde

  • Les flux de modifications utilisent une base de données de métadonnées pour maintenir 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, ultraprécises, la base de données de métadonnées ne peut pas être identique à celle de l'application base de données. En effet, le compte principal IAM qui exécute Le job Dataflow requiert 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 privilèges du contrôle des accès ultraprécis dont 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 pour 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 l'autorisation SELECT sur un flux de modifications qui suit toutes les tables, le bénéficiaire peut voir les modifications des données pour toutes les tables ajoutées par la suite.

En savoir plus