Übersicht über autorisierte Ansichten

Autorisierte Ansichten sind logische Ansichten von Tabellen, die Ihnen eine differenzierte Steuerung des Zugriffs auf Ihre Bigtable-Daten ermöglichen. Eine autorisierte Ansicht ist eine Teilmenge einer Tabelle, die Sie so konfigurieren, dass sie bestimmte Tabellendaten einschließen. Dann gewähren Sie unabhängig vom Zugriff auf die Tabelle Zugriff auf die autorisierte Ansicht.

Autorisierte Ansichten sind nützlich für mehrmandantenfähige Tabellen oder andere 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 Bigtable autorisierte Ansichten verwendet werden, um sowohl den Lese- als auch den Schreibzugriff zu steuern. Sie können programmgesteuert Tausende autorisierte Ansichten erstellen, genau wie andere Speichersysteme als "aktualisierbare Ansichten" oder "gefilterte Aliasse" bezeichnen.

In diesem Dokument werden autorisierte Ansichten und Beispiele für Definitionsdateien beschrieben. Bevor Sie dieses Dokument lesen, sollten Sie sich mit dem Bigtable-Speichermodell vertraut machen. Eine Anleitung dazu finden Sie unter Autorisierte Ansichten erstellen und verwalten.

Was ist eine autorisierte Ansicht?

Wenn Sie eine autorisierte Ansicht erstellen, definieren Sie diese, indem Sie mit einem der folgenden Parameter die Daten angeben, die in der autorisierten Ansicht enthalten sein sollen:

  • Zeilenschlüsselpräfix, z. B. alle Zeilen, die mit examplepetstore1| beginnen
  • Präfix für Spaltenqualifizierer, z. B. alle Spalten, deren Qualifier mit order# in der angegebenen Spaltenfamilie 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 Qualifier in der Ansicht einschließen möchten, müssen Sie beim Definieren der Ansicht jede Kombination aus Spaltenqualifizierer und Spaltenfamilie separat angeben.

Die Zeilenschlüssel- und Spaltenqualifiziererwerte, die Sie zum Definieren einer autorisierten Ansicht verwenden, werden als Dienstdaten behandelt. Erstellen Sie daher keine autorisierte Ansicht mit Werten für Zeilenschlüssel oder Spaltenqualifizierer, die vertrauliche Informationen enthalten. Informationen zum Umgang mit Dienstdaten finden Sie in den Datenschutzhinweisen für Google Cloud.

Spalten in einer Familie oder allen Zeilen einschließen

Wenn Sie dafür sorgen möchten, dass jede Spalte, die einer Spaltenfamilie in der zugrunde liegenden Tabelle hinzugefügt wird, auch in der autorisierten Ansicht enthalten ist, sollten Sie den leeren String ("") als Spaltenqualifizierpräfix angeben. Eine Definitionsdatei würde beispielsweise Folgendes zur Familienuntergruppe hinzufügen: "qualifierPrefixes": [""].

Wenn Sie eine autorisierte Ansicht definieren möchten, die alle Zeilen in der Tabelle enthält, geben Sie den leeren String ("") als Zeilenschlüsselpräfix an. In einer Definitionsdatei wird dies als "rowPrefixes": [""] in der Ansichts-Teilmenge geschrieben.

Beispiele für Definitionsdateien

In diesem Abschnitt finden Sie Beispiele im JSON-Format für autorisierte Ansichtsdefinitionsdateien.

Das folgende Beispiel zeigt eine Definitionsdatei für eine autorisierte Ansicht, die alle Zeilen mit dem Zeilenschlüsselpräfix examplepetstore1# enthält.

    {
      "subsetView":
      {
        "rowPrefixes": ["examplestore1#"],
        "familySubsets":
        {
          "customer":
          {
            "qualifiers":["address"],
            "qualifierPrefixes":["tel"]
          }
        }
      },
      "deletionProtection": true
    }

Das folgende Beispiel zeigt 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": [""]
  }
}

Das folgende Beispiel zeigt eine Definitionsdatei für eine autorisierte Ansicht, die nur Daten aus der Spalte skus in der Spaltenfamilie order in Zeilen mit dem Zeilenschlüsselpräfix examplepetstore1# enthält.

"subsetView": {
  "rowPrefixes": ["examplepetstore1#"]
  "familySubsets": {
    "order": {
      "qualifiers": ["skus"]
    }
  }
}

Nächste Schritte