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 les flux de modifications Spanner.

Pour les utilisateurs dotés d'un contrôle des accès ultraprécis, vous autorisez l'accès en lecture aux données de flux de modifications en utilisant les 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éée pour le flux de modifications. La fonction read permet de 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 en savoir plus sur les conventions de dénomination des fonctions de lecture des flux de modifications et sur la mise en forme des informations qu'elles renvoient, consultez les rubriques suivantes:

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 flux de modifications:

Les lignes de cette vue 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 les rôles, les 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 INFORMATION_SCHEMA non filtré.

PostgreSQL

Le rôle système spanner_info_reader et ses membres voient un information_schema non filtré.

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

Mises en garde

  • Les flux de modifications utilisent une base de données de métadonnées pour maintenir l'état interne. La base de données de métadonnées peut être identique ou différente de la base de données de l'application. Nous vous recommandons d'utiliser une autre base de données. Toutefois, pour les utilisateurs avec contrôle des accès ultraprécis, la base de données de métadonnées ne peut pas être identique à la base de données de l'application. En effet, le compte 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 ultraprécis 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.

  • Étant donné qu'un flux de modifications contient une copie distincte des données des tables et des colonnes suivies, soyez prudent lorsque vous accordez aux utilisateurs l'accès au flux de modifications. Les lecteurs du flux de modifications peuvent consulter les modifications apportées aux données des tables et colonnes suivies, même s'ils ne disposent pas des droits SELECT sur les tables et les colonnes. Bien qu'il soit plus flexible de configurer des contrôles distincts sur les flux de modifications et leurs tables et colonnes suivies, il existe un risque potentiel. Veillez donc à structurer les rôles et les droits de base de données en conséquence. Par exemple, lorsque vous révoquez le droit SELECT sur une table d'un rôle, déterminez s'il faut également révoquer SELECT sur le flux de modifications et révoquer EXECUTE sur la fonction de 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 de données pour toutes les tables ajoutées par la suite.

En savoir plus