Présentation des vues autorisées

Les vues autorisées sont des vues logiques des tables qui vous permettent de contrôler précisément l'accès à 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. Ensuite, accordez l'accès à la vue autorisée indépendamment de l'accès à la table.

Les vues autorisées sont utiles pour les tables mutualisées ou d'autres situations lorsque 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 les accès en lecture et en écriture. Vous pouvez créer des milliers de vues autorisées par programmation, comme vous le feriez avec ce que d'autres systèmes de stockage appellent des "vues pouvant être mises à jour" 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 vous familiariser avec le modèle de stockage Bigtable. Pour obtenir des instructions, consultez la page 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 de la famille de colonnes spécifiée)
  • Une 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 portant 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é de Google Cloud.

Inclure des colonnes dans une famille ou toutes les lignes

Si vous souhaitez vous assurer que toutes les colonnes ajoutées à une famille de colonnes de la table sous-jacente sont également incluses dans votre vue autorisée, vous devez spécifier la chaîne vide ("") comme préfixe du qualificatif de colonne. Par exemple, un fichier de définition inclurait ceci 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 de la table, spécifiez la chaîne vide ("") comme préfixe de clé de ligne. Dans un fichier de définition, cette valeur est écrite sous la forme "rowPrefixes": [""] dans le sous-ensemble de vues.

Exemples de fichiers de définition

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

Voici un exemple de fichier de définition pour une vue autorisée qui inclut toutes les lignes dont le préfixe de clé de ligne est 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 dans la famille de colonnes order et toutes les colonnes de la famille de colonnes customer.

"subsetView": {
 "familySubsets": {
  "order": {
     "qualifiers": ["skus"]
  }
}
  "familySubsets": {
    "key": "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 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"]
    }
  }
}

Étapes suivantes