Présentation des vues autorisées

Les vues autorisées dans Bigtable vous permettent d'accorder un accès précis à des sous-ensembles spécifiques de données de table, séparément de la table sous-jacente.

Vous pouvez utiliser ces vues pour isoler les données dans les tables multitenants et contrôler l'accès en lecture et en écriture. Vous pouvez également créer des milliers de vues de manière programmatique, comme des vues modifiables ou des alias filtrés dans d'autres systèmes de stockage.

Avant de commencer, assurez-vous de bien connaître le modèle de stockage Bigtable. Pour obtenir des instructions de configuration, consultez Créer et gérer des vues autorisées.

Qu'est-ce qu'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 dans la famille de colonnes spécifiée)
  • Combinaison d'un préfixe de clé de ligne et d'un 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 avec 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 clé de ligne et de qualificatif de colonne que vous utilisez pour définir une vue autorisée sont traitées comme des données de service. Pour cette raison, 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 l'Avis de confidentialité deCloud de Confiance by S3NS .

Inclusion de colonnes dans une famille ou dans 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 qui suit dans le sous-ensemble de la famille : "qualifierPrefixes": [""].

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

Pour éviter les vues autorisées trop complexes, Bigtable vous permet de spécifier au maximum 10 préfixes de qualificateurs distincts. Cela signifie qu'une vue autorisée peut spécifier une famille de colonnes avec 10 préfixes de qualificatifs, 10 familles de colonnes avec un seul préfixe de qualificatif, ou toute combinaison intermédiaire, à condition que le nombre total de qualificatifs ne dépasse pas 10.

Il est recommandé de spécifier une clé une seule fois par objet JSON. Si vous spécifiez une clé, telle qu'un nom de famille de colonnes, plusieurs fois, la dernière entrée pour la clé remplace toutes les entrées précédentes pour 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 la colonne address de la famille de colonnes customer et les colonnes qui commencent par tel pour les lignes avec un préfixe de clé de ligne de examplepetstore1#.

    {
      "subsetView":
      {
        "rowPrefixes": ["examplepetstore1#"],
        "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 dans la famille de colonnes order et toutes les colonnes de la famille de colonnes customer.

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

Voici un exemple de fichier de définition pour une vue autorisée qui n'inclut que les données de la colonne skus dans la famille de colonnes order des 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": [""]
        "familySubsets": {
          "order": {
            "qualifiers": ["skus", "agents"]
          "pet_id": {
            "qualifiers": ["dog", "cat", "bird"]
          }
          }
        }
      }
    }

Étapes suivantes