Übersicht über autorisierte Ansichten

Autorisierte Ansichten von Bigtable-Tabellen ermöglichen Ihnen eine detaillierte Zugriffssteuerung Ihrer Bigtable-Daten. 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 Mandantentabellen 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 autorisierte Bigtable-Ansichten verwendet werden, um Lese- und Schreibzugriff zu steuern. Sie können Tausende von autorisierten Ansichten programmatisch erstellen, so wie Sie es auch mit anderen Speichersystemen tun können, die „aktualisierbare Ansichten“ oder „gefilterte Aliase“ verwenden.

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

Was ist eine autorisierte Ansicht?

Wenn Sie eine autorisierte Ansicht erstellen, definieren Sie sie, indem Sie die Daten angeben, die in der autorisierten Ansicht enthalten sein sollen. Verwenden Sie dazu einen der folgenden Parameter:

  • Präfix für Zeilenschlüssel, z. B. alle Zeilen, die mit examplepetstore1| beginnen
  • Präfix für Spaltenqualifizierer, z. B. alle Spalten, deren Qualifizierer 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 Qualifizierer in die Ansicht aufnehmen möchten, müssen Sie jede Kombination aus Spaltenqualifizierer und Spaltenfamilie beim Definieren der Ansicht 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 Zeilenschlüssel- oder Spaltenqualifiziererwerten, die vertrauliche Informationen enthalten. Informationen zum Umgang mit Dienstdaten finden Sie in der Google Cloud -Datenschutzerklärung.

Einbeziehung von Spalten in eine Familie oder alle Zeilen

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

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

Um übermäßig komplexe autorisierte Ansichten zu vermeiden, können Sie in Bigtable maximal 10 unterschiedliche Qualifier-Präfixe angeben. Das bedeutet, dass in einer autorisierten Ansicht eine Spaltenfamilie mit 10 Qualifiziererpräfixen, 10 Spaltenfamilien mit einem einzelnen Qualifiziererpräfix oder eine beliebige Kombination dazwischen angegeben werden kann, solange die Gesamtzahl der Qualifizierer höchstens 10 beträgt.

Als Best Practice sollten Sie einen Schlüssel nur einmal pro JSON-Objekt angeben. Wenn Sie einen Schlüssel, z. B. einen Spaltenfamiliennamen, mehr als einmal angeben, überschreibt der letzte Eintrag für den Schlüssel alle vorherigen Einträge für den Schlüssel.

Beispiele für Definitionsdateien

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

Das folgende Beispiel zeigt eine Definitionsdatei für eine autorisierte Ansicht, die die Spalte address der Spaltenfamilie customer und Spalten enthält, die mit tel beginnen, für Zeilen mit dem Zeilenschlüsselpräfix examplepetstore1#.

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

Im Folgenden sehen 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": {
        "rowPrefixes": [""],
        "familySubsets": {
          "order": {
            "qualifiers": ["skus"]
          },
          "customer": {
            "qualifierPrefixes": [""]
          }
        }
      }
    }

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

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

Im Folgenden sehen Sie ein Beispiel für eine Definitionsdatei für eine autorisierte Ansicht, die nur Daten in den Spalten skus und agents in der Spaltenfamilie order sowie in den Spalten dog, cat und bird in der Spaltenfamilie pet_id enthält.

    {
      "subsetView": {
        "rowPrefixes": [""]
        "familySubsets": {
          "order": {
            "qualifiers": ["skus", "agents"]
          "pet_id": {
            "qualifiers": ["dog", "cat", "bird"]
          }
          }
        }
      }
    }

Nächste Schritte