Autorisierte Ansichten – Übersicht
Autorisierte Ansichten sind logische Tabellenansichten, die Ihnen eine detaillierte Zugriffssteuerung der Bigtable-Daten ermöglichen. Eine autorisierte Ansicht ist eine Teilmenge einer Tabelle, die Sie so konfigurieren, dass sie bestimmte Tabellendaten enthält. Anschließend gewähren Sie unabhängig vom Zugriff auf die Tabelle Zugriff auf die autorisierte Ansicht.
Autorisierte Ansichten sind nützlich für Tabellen mit mehreren Mietern oder in anderen Situationen, in denen Ihre Tabelle Daten enthält, auf die nicht alle Nutzer zugreifen können sollten. Im Gegensatz zu Ansichten in anderen Datenbankdiensten können mit autorisierten Bigtable-Ansichten sowohl Lese- als auch Schreibzugriff gesteuert werden. Sie können tausende autorisierte Ansichten programmatisch erstellen, genau wie bei anderen Speichersystemen, die als „aktualisierbare Ansichten“ oder „gefilterte Aliasse“ bezeichnet werden.
In diesem Dokument werden autorisierte Ansichten beschrieben und es werden Beispiele für Definitiondateien aufgeführt. Bevor Sie dieses Dokument lesen, sollten Sie mit dem Bigtable-Speichermodell vertraut sein. Eine Anleitung finden Sie unter Autorisierte Ansichten erstellen und verwalten.
Definition einer autorisierten Ansicht
Beim Erstellen einer autorisierten Ansicht geben Sie die Daten an, die in die autorisierte Ansicht aufgenommen werden sollen. Dazu können Sie einen der folgenden Parameter verwenden:
- Präfix für Zeilenschlüssel, z. B. alle Zeilen, die mit
examplepetstore1|
beginnen - Präfix des Spaltenqualifizierers, z. B. alle Spalten in der angegebenen Spaltenfamilie, deren Qualifizierer mit
order#
beginnen - Spaltenqualifizierer, z. B. nur die Spalte
order-examplepetstore
in der angegebenen Spaltenfamilie - Eine Kombination aus Zeilenschlüsselpräfix und Spaltenqualifizierer
Wenn derselbe Spaltenqualifizierer in mehreren Spaltenfamilien verwendet wird und Sie alle Spalten mit diesem Qualifizierer in der Ansicht einbeziehen möchten, müssen Sie beim Definieren der Ansicht jede Kombination aus Spaltenqualifizierer und Spaltenfamilie separat angeben.
Die Werte für den Zeilenschlüssel und den Spaltenqualifizierer, die Sie zum Definieren einer autorisierten Ansicht verwenden, werden als Dienstdaten behandelt. Erstellen Sie deshalb keine autorisierte Ansicht mit Zeilenschlüssel- oder Spaltenqualifiziererwerten, die vertrauliche Daten enthalten. Informationen zum Umgang mit Dienstdaten finden Sie in der Google Cloud Datenschutzerklärung.
Spalten in einer Familie oder alle Zeilen einschließen
Wenn Sie sicherstellen möchten, dass alle Spalten, die einer Spaltenfamilie in der zugrunde liegenden Tabelle hinzugefügt werden, auch in der autorisierten Ansicht enthalten sind, sollten Sie den leeren String (""
) als Präfix für den Spaltenqualifizierer angeben. In einer Definitionsdatei würde dies beispielsweise in der Familienuntergruppe enthalten sein: "qualifierPrefixes": [""]
.
Wenn Sie eine autorisierte Ansicht definieren möchten, die alle Zeilen in der Tabelle enthält, geben Sie den leeren String (""
) als Zeilenzwischenschlüsselpräfix an. In einer Definitionsdatei wird dies im Ansichtssubset als "rowPrefixes": [""]
geschrieben.
Um übermäßig komplexe autorisierte Ansichten zu vermeiden, können Sie in Bigtable maximal 10 verschiedene Präfixe für die Qualifier angeben. Das bedeutet, dass in einer autorisierten Ansicht eine Spaltenfamilie mit 10 Qualifikatorpräfixen, 10 Spaltenfamilien mit einem einzelnen Qualifiziererpräfix oder eine beliebige Kombination aus diesen Elementen angegeben werden kann, solange die Gesamtzahl der Qualifizierer maximal 10 beträgt.
Geben Sie einen Schlüssel nach Möglichkeit nur einmal pro JSON-Objekt an. Wenn Sie einen Schlüssel, z. B. den Namen einer Spaltenfamilie, mehrmals angeben, werden alle vorherigen Einträge für den Schlüssel durch den letzten Eintrag für den Schlüssel überschrieben.
Beispiele für Definitionsdateien
In diesem Abschnitt finden Sie Beispiele für Definitionen von autorisierten Ansichten im JSON-Format.
Im folgenden Beispiel wird eine Definitionsdatei für eine autorisierte Ansicht mit allen Zeilen mit dem Präfix examplepetstore1#
für den Zeilenschlüssel gezeigt.
{
"subsetView":
{
"rowPrefixes": ["examplestore1#"],
"familySubsets":
{
"customer":
{
"qualifiers":["address"],
"qualifierPrefixes":["tel"]
}
}
},
"deletionProtection": true
}
Im Folgenden finden Sie ein Beispiel für eine Definitionsdatei für eine autorisierte Ansicht, die die Spalte skus
in der Spaltenfamilie order
und alle Spalten in der Spaltenfamilie customer
enthält.
{
"subsetView": {
"familySubsets": {
"order": {
"qualifiers": ["skus"]
}
}
"familySubsets": {
"key": "customer"
"qualifierPrefixes": [""]
}
}
}
Im folgenden Beispiel wird eine Definitiondatei für eine autorisierte Ansicht gezeigt, die nur Daten in der Spalte skus
in der Spaltenfamilie order
in Zeilen mit dem Präfix examplepetstore1#
für den Zeilenschlüssel enthält.
{
"subsetView": {
"rowPrefixes": ["examplepetstore1#"]
"familySubsets": {
"order": {
"qualifiers": ["skus"]
}
}
}
}
Im Folgenden finden Sie ein Beispiel für eine Definitionsdatei für eine autorisierte Ansicht, die nur Daten in den Spalten skus
und agents
der Spaltenfamilie order
und in den Spalten dog
, cat
und bird
der Spaltenfamilie pet_id
enthält.
{
"subsetView": {
"rowPrefixes": ["examplepetstore1#"]
"familySubsets": {
"order": {
"qualifiers": ["skus", "agents"]
"pet_id": {
"qualifiers": ["dog", "cat", "bird"]
}
}
}
}
}
Nächste Schritte
- Daten über eine autorisierte Datenansicht löschen
- Weitere Informationen zum Tagging von Bigtable-Ressourcen