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