Als Administrator mit Datenschutzbereichen arbeiten

Ein Datenschutzbereich definiert die möglichen Werte in einer Spalte, ähnlich wie ein mathematischer Bereich. Snowflake verwendet einen Datenschutzbereich, um zu bestimmen, wie viel Rauschen in die Ergebnisse einfließen soll.

Um ein umfassendes Verständnis der Datenschutzbereiche zu erlangen, bevor Sie die Aufgaben in diesem Abschnitt ausführen, siehe Über Datenschutzbereiche.

Es ist eine bewährte Methode, dass ein Datenanbieter einen Datenschutzbereich für alle numerischen und kategorialen Spalten festlegt, auf die ein Analyst möglicherweise reagieren möchte, bevor er Daten an ihn verteilt.

Auswahl eines Datenschutzbereichs

Ein Datenschutzbereich definiert mögliche Werte in einer Spalte, nicht unbedingt tatsächliche Werte. Sie können einen Datenschutzbereich nach Bedarf einschränken oder erweitern, sodass er keine tatsächlichen Werte enthält. Sie können zum Beispiel Folgendes tun:

  • Definieren Sie eine breitere Liste, um exakte Werte zu verschleiern. Da ein Analyst den Datenschutzbereich anzeigen kann, möchten Sie möglicherweise nicht den genauen Inhalt einer Spalte offenlegen. Nehmen wir zum Beispiel an, eine Spalte enthält eine Teilmenge von Postleitzahlen. Vielleicht möchten Sie den Datenschutzbereich erweitern, um alle möglichen Postleitzahlen einzuschließen und so zu verschleiern, ob eine bestimmte Postleitzahl im Datenset enthalten ist.

  • Definieren Sie einen engeren Bereich, um das Vorhandensein eines Ausreißerwerts zu verschleiern. Wenn beispielsweise die meisten Werte zwischen 1 und 50 liegen, möchten Sie vielleicht nicht, dass ein Wert von 100 in einen Durchschnittswert aufgenommen wird, weil der Analyst auf das Vorhanden sein von 100 schließen könnte, da der Durchschnitt ungewöhnlich hoch ist.

Informationen darüber, wie Werte außerhalb eines Datenschutzbereichs behandelt werden, finden Sie unter Werte außerhalb eines Datenschutzbereichs.

Wichtig

Jeder, der die Berechtigung hat, eine datenschutzgeschützte Tabelle abzufragen, hat die Möglichkeit, den Datenschutzbereich für eine Spalte in dieser Tabelle einzusehen, wählen Sie Ihre Datenschutzbereiche also sorgfältig aus.

Während die meisten Felder einen Datenschutzbereich haben sollten, gibt es wichtige Ausnahmen. Zum Beispiel sollten Felder mit eindeutigen Bezeichnern wie Benutzer-ID, E-Mail-Adresse, Kreditkartennummern und Sozialversicherungsnummern keinen Datenschutzbereich haben. Benutzer können den genauen Datenschutzbereich sehen, und normalerweise möchten Sie nicht, dass ein Analyst weiß, ob ein bestimmter Identifikator im Datenset vorhanden ist.

Im Gegensatz dazu sollten Datenschutzbereiche die tatsächlichen Werte für Bezeichnerfelder enthalten, wenn sie nicht eindeutig für eine einzelne Entität sind und deren mögliche Werte öffentlich bekannt sind, wie Postleitzahlen, ICD-Codes in Gesundheitsdaten und NAICS-Codes.

Festlegen eines Datenschutzbereichs

Sie definieren einen Datenschutzbereich entweder als Wertebereich mit einem Minimum und Maximum oder als Aufzählung von Werten. Im Allgemeinen basiert die Art des Datenschutzbereichs auf dem Datentyp der Spalte. Sie können keinen Datenschutzbereich für eine Spalte festlegen, deren Datentyp nicht in der folgenden Liste aufgeführt ist.

Datentyp

Datenschutzbereichstyp

Numerisch

Datum & Uhrzeit

Reichweite

Zeichenfolgen

Nummerierte Liste

Um einen Datenschutzbereich, zu ändern oder zu löschen, benötigen Sie die OWNERSHIP-Berechtigung für eine Tabelle. Sie können einen Datenschutzbereich, wenn Sie Folgendes tun:

Für jede dieser Methoden ist die Syntax des neuen Datenschutzbereichs dieselbe.

Bemerkung

Wenn eine Tabelle gelöscht wird, werden auch ihre Datenschutzbereiche gelöscht. Dies gilt auch für einen CREATE OR REPLACE-Befehl.

Syntax des Datenschutzbereichs

Die Syntax für die Erstellung eines Datenschutzbereichs lautet:

PRIVACY DOMAIN
  {
      [ BETWEEN ( <lo_value>, <hi_value> ) ]
    | [ IN ( '<value1>, '<value2>', ... ) ]
    | [ REFERENCES <table_name>( <col_name> ) ]
  }
Copy

Parameter

Es muss ein einzelner Parameter angegeben werden.

BETWEEN ( lo_value, hi_value )

Erzeugt einen Datenschutzbereich, der den Bereich der möglichen Werte in der Spalte darstellt, wobei lo_value der Mindestwert und hi_value der Höchstwert ist.

IN ( 'value1', 'value2', ... )

Erzeugt einen Datenschutzbereich, der eine Aufzählungsliste der angegebenen Werte ist.

Der Parameter IN akzeptiert maximal 50 Werte, von denen jeder maximal 100 Zeichen enthalten darf. Wenn Sie eine Aufzählungsliste mit mehr als 50 Werten angeben müssen, verwenden Sie den Parameter REFERENCES.

REFERENCES table_name( col_name )

Erzeugt einen Datenschutzbereich, der eine Aufzählungsliste ist, die aus den in der Spalte einer Tabelle enthaltenen Werten besteht.

Der Benutzer, der die differentielle Privatsphäre betreffende Abfragen auf einer Tabelle mit einem REFERENCES-Datenschutzbereich ausführt, muss SELECT-Berechtigungen für die Tabelle haben, die die Spalte enthält, auf die in dem Datenschutzbereich verwiesen wird. Wenn Sie also eine datenschutzgeschützte Tabelle freigeben, die auf eine andere Tabelle verweist, ist es am besten, die referenzierte Tabelle in derselben Freigabe freizugeben.

Der Datenschutz kann sich selbst referenzieren. Sie müssen jedoch vorsichtig sein, wenn Sie diese Möglichkeit nutzen. Wenn der Datenschutzbereich auf eine eigene Spalte verweist, enthält die Auflistung alle tatsächlichen Werte in der Spalte, nicht alle möglichen Werte in der Spalte, wodurch private Informationen offengelegt werden können. Wenn zum Beispiel der Datenschutzbereich einer Spalte zipcode auf sich selbst verweist, dann weiß der Analyst mit absoluter Sicherheit, ob eine bestimmte Postleitzahl im Datenset enthalten ist, wenn er den Datenschutzbereich anschaut.

Bemerkung

Sie können beim erstmaligen Erstellen der Tabelle keinen Datenschutzbereich definieren, der auf sich selbst verweist. Erstellen Sie zunächst die Tabelle, dann legen Sie den Datenschutzbereich mit einem separaten Befehl fest.

Die Spalte, auf die verwiesen wird, kann 16.384 eindeutige Werte enthalten.

Datenschutzbereich beim Erstellen einer neuen Tabelle festlegen

Die Syntax für das Festlegen eines Datenschutzbereichs für eine Spalte mit dem Befehl CREATE TABLE zur Erstellung einer Tabelle lautet:

CREATE TABLE <table_name>
  ( <col_name> <col_type> PRIVACY DOMAIN
    {
        [ BETWEEN ( <lo_value>, <hi_value> ) ]
      | [ IN ( '<value1>', '<value2>', ... ) ]
      | [ REFERENCES <table_name>( <col_name> ) ]
    }
  )
Copy

Weitere Informationen dazu finden Sie unter Syntax des Datenschutzbereichs.

Legen Sie einen Datenschutzbereich fest, wenn Sie eine neue Spalte hinzufügen

Die Syntax für die Einstellung eines Datenschutzbereichs mit dem Befehl ALTER TABLE zum Hinzufügen einer neuen Spalte zu einer bestehenden Tabelle lautet:

ALTER TABLE <table_name>
  ADD COLUMN <col_name> <col_type> PRIVACY DOMAIN
    {
        [ BETWEEN ( <lo_value>, <hi_value> ) ]
      | [ IN ( '<value1>', '<value2>', ... ) ]
      | [ REFERENCES <table_name>( <col_name> ) ]
    }
Copy

Weitere Informationen dazu finden Sie unter Syntax des Datenschutzbereichs.

Datenschutzbereichs durch Ändern einer Spalte festlegen

Die Syntax zum Festlegen eines Datenschutzbereichs für eine bestehende Spalte einer Tabelle mit dem Befehl ALTER TABLE … ALTER COLUMN lautet:

ALTER TABLE <table_name>
  { ALTER | MODIFY } COLUMN <col1_name> SET PRIVACY DOMAIN
    {
        [ BETWEEN ( <lo_value>, <hi_value> ) ]
      | [ IN ( '<value1>', '<value2>', ... ) ]
      | [ REFERENCES <table_name>( <col_name> ) ]
    }
Copy

Weitere Informationen dazu finden Sie unter Syntax des Datenschutzbereichs.

Eine Datenschutzbereiche ändern

Die Syntax für die Änderung eines bestehenden Datenschutzbereichs ist identisch mit der Syntax, die einen neuen Datenschutzbereich auf einer bestehenden Spalte erstellt. Eine ALTER TABLE .. Der Befehl ALTER COLUMN … SET PRIVACY DOMAIN ersetzt den alten Datenschutzbereich durch den neuen.

Datenschutzbereich entfernen

Die Syntax für die Verwendung des Befehls ALTER TABLE … ALTER COLUMN zum Entfernen eines Datenschutzbereichs aus einer Spalte lautet:

ALTER TABLE <table_name>
  { ALTER | MODIFY } COLUMN <col1_name> UNSET PRIVACY DOMAIN
Copy

Datenschutzbereich anzeigen

Um den Datenschutzbereich einer datenschutzgeschützten Tabelle oder Ansicht anzuzeigen, führen Sie den Befehl DESCRIBE TABLE oder DESCRIBE VIEW aus. Der Datenschutzbereich für eine Spalte erscheint in der PRIVACY_DOMAIN-Spalte der Ausgabe.

Sie benötigen die SELECT-Berechtigung für eine datenschutzgeschützte Tabelle, um ihren Datenschutzbereich einzusehen.

Interpretation des Datenschutzdomänenobjekts

Ein Datenschutzbereich für eine Spalte wird als JSON-Objekt zurückgegeben. Das Feld domain_type des JSON-Objekts gibt an, ob es sich beim Datenschutzbereich um einen Wertebereich oder eine Aufzählungsliste handelt. Die übrigen Felder des Objekts sind vom Wert des Feldes domain_type abhängig.

Das JSON-Objekt für einen Datenschutzbereich kann die folgenden Felder enthalten:

domain_type

Gibt den Typ des Datenschutzbereichs an.

BETWEEN

Der Datenschutzbereich ist ein Bereich der möglichen Werte, die in der Spalte vorkommen können.

IN

Der Datenschutzbereich ist eine Liste der möglichen Werte, die in der Spalte vorkommen können.

REFERENCES

Der Datenschutzbereich ist eine Liste der möglichen Werte, die in der Spalte vorkommen können. Diese Liste stammt aus der Spalte der gleichen Tabelle oder einer anderen Tabelle. Um die Aufzählungsliste des Datenschutzbereichs anzuzeigen, fragen Sie den Inhalt der referenzierten Spalte ab.

low

Wenn Sie domain_type = BETWEEN wählen, gibt dies den Mindestwert im Bereich der möglichen Werte an.

high

Wenn Sie domain_type = BETWEEN wählen, gibt dies den Höchstwert im Bereich der möglichen Werte an.

values

Wenn Sie domain_type = IN wählen, wird die Liste der möglichen Werte in Form eines Arrays angegeben.

database

Wenn Sie domain_type = REFERENCES wählen, geben Sie die Datenbank an, die die Spalte enthält, auf die Snowflake verweist, um die Liste der möglichen Werte zu erstellen.

schema

Wenn Sie domain_type = REFERENCES wählen, geben Sie das Schema an, das die Spalte enthält, auf die Snowflake verweist, um die Liste der möglichen Werte zu erstellen.

table

Wenn Sie domain_type = REFERENCES wählen, geben Sie die Tabelle an, die die Spalte enthält, auf die Snowflake verweist, um die Liste der möglichen Werte zu erstellen.

column

Wenn Sie domain_type = REFERENCES wählen, geben Sie die Spalte an, auf die Snowflake verweist, um die Liste der möglichen Werte zu erstellen. Um die Liste des Datenschutzbereichs anzuzeigen, fragen Sie den Inhalt dieser Spalte ab.