Présentation des vues autorisées
Les vues autorisées des tables Bigtable 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. 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 multilocataires ou dans 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 l'accès en lecture et en écriture. Vous pouvez créer des milliers de vues autorisées de manière programmatique, de la même manière que vous pouvez le faire 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 avoir pris connaissance du 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, seule la colonne
order-examplepetstore
de 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 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 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é deGoogle Cloud .
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 de la table, 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 excessivement 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 ne spécifier une clé qu'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 dont le préfixe de clé de ligne est 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
- Supprimez des données à l'aide d'une vue autorisée.
- Découvrez comment taguer les ressources Bigtable.