Présentation des vues autorisées

Les vues autorisées sont des vues logiques de tables qui vous offrent un contrôle d'accès précis sur vos données Bigtable. Une vue autorisée est un sous-ensemble d'une table que vous configurez pour inclure des données de table spécifiques. Vous accordez ensuite l'accès à la vue autorisée séparément de l'accès à la table.

Les vues autorisées sont utiles pour les tables multi-locataires ou d'autres situations où votre table contient des données auxquelles tous les utilisateurs ne doivent pas avoir accès. Contrairement aux vues d'autres services de base de données, les vues autorisées Bigtable peuvent être utilisées pour contrôler à la fois l'accès en lecture et en écriture. Vous pouvez créer des milliers de vues autorisées de manière programmatique, comme vous le pouvez avec ce que d'autres systèmes de stockage appellent des "vues modifiables" ou des "alias filtrés".

Ce document décrit les vues autorisées et fournit des exemples de fichiers de définition. Avant de lire ce document, vous devez connaître le modèle de stockage Bigtable. Pour obtenir des instructions, consultez Créer et gérer des vues autorisées.

Qu'est-ce qui définit une vue autorisée ?

Lorsque vous créez une vue autorisée, vous la définissez en spécifiant les données à inclure dans la vue autorisée à l'aide de l'un des paramètres suivants:

  • Préfixe de clé de ligne (par exemple, toutes les lignes commençant par examplepetstore1|)
  • Préfixe du qualificatif de colonne (par exemple, toutes les colonnes dont les qualificatifs commencent par order# dans la famille de colonnes spécifiée)
  • Qualificatif de colonne (par exemple, uniquement la colonne order-examplepetstore de la famille de colonnes spécifiée)
  • Une combinaison de préfixe de clé de ligne et de qualificatif de colonne

Si le même qualificatif de colonne est utilisé dans plusieurs familles de colonnes et que vous souhaitez inclure toutes les colonnes associées à ce qualificatif dans la vue, vous devez spécifier chaque combinaison de qualificatif de colonne et de famille de colonnes séparément lorsque vous définissez la vue.

Les valeurs de la clé de ligne et du qualificatif de colonne que vous utilisez pour définir une vue autorisée sont traitées comme des données de service. Par conséquent, ne créez pas de vue autorisée à l'aide de valeurs de clé de ligne ou de qualificatif de colonne contenant des informations sensibles. Pour en savoir plus sur le traitement des données de service, consultez la Avis de confidentialitéGoogle Cloud .

Inclure des colonnes d'une famille ou toutes les lignes

Si vous souhaitez vous assurer que toute colonne ajoutée à une famille de colonnes dans la table sous-jacente est également incluse dans votre vue autorisée, vous devez spécifier la chaîne vide ("") comme préfixe de qualificatif de colonne. Par exemple, un fichier de définition inclurait ce sous-ensemble de famille : "qualifierPrefixes": [""].

De même, si vous souhaitez définir une vue autorisée qui inclut toutes les lignes de la table, spécifiez la chaîne vide ("") comme préfixe de clé de ligne. Dans un fichier de définition, il est écrit sous la forme "rowPrefixes": [""] dans le sous-ensemble de vues.

Pour éviter les vues autorisées excessivement complexes, Bigtable vous permet de spécifier au maximum 10 préfixes de qualificatif distincts. Cela signifie qu'une vue autorisée peut spécifier une famille de colonnes avec 10 préfixes de qualificatif, 10 familles de colonnes avec un seul préfixe de qualificatif, ou n'importe quelle valeur comprise entre ces deux valeurs, à condition que le nombre total de qualificatifs ne dépasse pas 10.

Il est recommandé de ne spécifier une clé qu'une seule fois par objet JSON. Si vous spécifiez une clé, comme un nom de famille de colonnes, plusieurs fois, la dernière entrée de la clé écrase toutes les entrées précédentes de la clé.

Exemples de fichiers de définition

Cette section présente des exemples de fichiers de définition de vues autorisées au format JSON.

Voici un exemple de fichier de définition pour une vue autorisée qui inclut toutes les lignes avec un préfixe de clé de ligne examplepetstore1#.

    {
      "subsetView":
      {
        "rowPrefixes": ["examplestore1#"],
        "familySubsets":
        {
          "customer":
          {
            "qualifiers":["address"],
            "qualifierPrefixes":["tel"]
          }
        }
      },
      "deletionProtection": true
    }

Voici un exemple de fichier de définition pour une vue autorisée qui inclut la colonne skus de la famille de colonnes order et toutes les colonnes de la famille de colonnes customer.

    {
      "subsetView": {
      "familySubsets": {
        "order": {
          "qualifiers": ["skus"]
        }
      }
        "familySubsets": {
          "key": "customer"
          "qualifierPrefixes": [""]
        }
      }
    }

Vous trouverez ci-dessous un exemple de fichier de définition pour une vue autorisée qui n'inclut que les données de la colonne skus de la famille de colonnes order dans les lignes dont le préfixe de clé de ligne est examplepetstore1#.

    {
      "subsetView": {
        "rowPrefixes": ["examplepetstore1#"]
        "familySubsets": {
          "order": {
            "qualifiers": ["skus"]
          }
        }
      }
    }

Vous trouverez ci-dessous un exemple de fichier de définition pour une vue autorisée qui n'inclut que les données des colonnes skus et agents de la famille de colonnes order, ainsi que les colonnes dog, cat et bird de la famille de colonnes pet_id.

    {
      "subsetView": {
        "rowPrefixes": ["examplepetstore1#"]
        "familySubsets": {
          "order": {
            "qualifiers": ["skus", "agents"]
          "pet_id": {
            "qualifiers": ["dog", "cat", "bird"]
          }
          }
        }
      }
    }

Étape suivante