Grundlegendes zur dynamischen Datenmaskierung

Unter diesem Thema wird ein allgemeiner Überblick über die Features zur dynamischen Datenmaskierung gegeben.

Weitere Informationen zur Verwendung einer Maskierungsrichtlinie bei einem Tag finden Sie unter Tag-basierte Maskierungsrichtlinien.

Was ist die dynamische Datenmaskierung?

Die dynamische Datenmaskierung ist ein Feature für Sicherheit auf Spaltenebene, das Maskierungsrichtlinien verwendet, um Klartextdaten in Tabellen- und Ansichtsspalten zur Abfragezeit selektiv zu maskieren.

In Snowflake sind Maskierungsrichtlinien Objekte auf Schemaebene. Dies bedeutet, dass in Snowflake eine Datenbank und ein Schema vorhanden sein müssen, bevor eine Maskierungsrichtlinie auf eine Spalte angewendet werden kann. Derzeit unterstützt Snowflake die Verwendung der dynamischen Datenmaskierung auf Tabellen und Ansichten.

Zur Laufzeit der Abfrage wird die Maskierungsrichtlinie überall dort auf die Spalte angewendet, wo diese angezeigt wird. Abhängig von den Bedingungen der Maskierungsrichtlinie, dem SQL-Ausführungskontext und der Rollenhierarchie wird denjenigen, die die Snowflake-Abfrage ausführen, der Klartextwert, einen teilweise maskierter Wert oder ein vollständig maskierter Wert angezeigt.

Weitere Informationen zur Funktionsweise von Maskierungsrichtlinien, einschließlich Laufzeitverhalten von Abfragen, Erstellen einer Richtlinie, Verwendung mit Tabellen und Ansichten sowie Verwaltungskonzepte unter Verwendung von Maskierungsrichtlinien, finden Sie unter Grundlegendes zur Sicherheit auf Spaltenebene.

Weitere Informationen zu den Auswirkungen von SQL-Ausführungskontext und Rollenhierarchie finden Sie unter Erweiterte Sicherheit auf Spaltenebene.

Vorteile der dynamischen Datenmaskierung

Im Folgenden sind einige der wichtigsten Vorteile der dynamischen Datenmaskierung zusammengefasst.

Benutzerfreundlichkeit

Sie können eine Richtlinie einmal schreiben und sie dann auf Tausende von Spalten in Datenbanken und Schemas anwenden.

Datenadministration und SoD

Die Entscheidung, welche Spalten geschützt werden sollen, wird nicht vom Objektbesitzer sondern vom Sicherheits- oder Datenschutzbeauftragten getroffen. Maskierungsrichtlinien sind einfach zu verwalten und unterstützen zentralisierte und dezentralisierte Administrationsmodelle.

Datenautorisierung und Data Governance

Kontextueller Datenzugriff nach Rollen- oder benutzerdefinierten Berechtigungen.

Unterstützt die von Sicherheits- oder Datenschutzbeauftragten implementierte Data Governance und kann berechtigten Benutzern mit der Rolle ACCOUNTADMIN oder SECURITYADMIN das unnötige Anzeigen von Daten untersagen.

Datenfreigabe (Data Sharing)

Einfaches Maskieren der Daten vor dem Freigeben.

Änderungsmanagement

Einfache Änderung des Inhalts der Maskierungsrichtlinie, ohne die Maskierungsrichtlinie erneut auf Tausende von Spalten anwenden zu müssen.

Ein Vergleich der Vorteile zwischen dynamischer Datenmaskierung und externer Tokenisierung finden Sie unter Vorteile der Sicherheit auf Spaltenebene.

Einschränkungen bei der dynamischen Datenmaskierung

Eine Übersicht über die Einschränkungen finden Sie unter Einschränkungen für die Sicherheit auf Spaltenebene.

Hinweise zur dynamischen Datenmaskierung

Weitere Hinweise zur dynamischen Datenmaskierung finden Sie unter Hinweise zur Sicherheit auf Spaltenebene.

Berechtigungen für die dynamische Datenmaskierung

In der folgenden Tabelle sind die Berechtigungen für die dynamische Datenmaskierung zusammengefasst.

Berechtigung

Verwendung

CREATE

Ermöglicht das Erstellen einer neuen Maskierungsrichtlinie in einem Schema.

APPLY

Ermöglicht das Ausführen der Aktivierungs-/Deaktivierungsoperation für eine Maskierungsrichtlinie auf einer Spalte.

Beachten Sie, dass durch Erteilen der globalen Berechtigung APPLY MASKING POLICY (d. h. APPLY MASKING POLICY On ACCOUNT) das Ausführen der DESCRIBE-Operation auf Tabellen und Ansichten ermöglicht wird.

Beispiele für die Syntax finden Sie unter Berechtigungen für Maskierungsrichtlinien.

OWNERSHIP

Gewährt volle Kontrolle über die Maskierungsrichtlinie. Erforderlich, um die meisten Eigenschaften einer Maskierungsrichtlinie zu ändern. Diese Berechtigung kann für ein bestimmtes Objekt immer nur einer Rolle erteilt sein.

Bemerkung

Für das Ausführen von Operationen auf einer Maskierungsrichtlinie ist auch die USAGE-Berechtigung für die übergeordnete Datenbank und das übergeordnete Schema erforderlich.

DDL für die dynamische Datenmaskierung

Snowflake bietet die folgenden Befehle zum Verwalten von Richtlinien für die dynamische Datenmaskierung.

Überwachen der dynamischen Datenmaskierung

Snowflake bietet zwei Account Usage-Ansichten, um Informationen zu Maskierungsrichtlinien zu erhalten:

  • Die Ansicht MASKING POLICIES zeigt eine Liste aller Maskierungsrichtlinien in Ihrem Snowflake-Konto.

  • Die Ansicht POLICY_REFERENCES zeigt eine Liste aller Objekte, in denen eine Maskierungsrichtlinie festgelegt ist.

Die Information Schema-Tabellenfunktion POLICY_REFERENCES kann für Folgendes verwendet werden:

  • Rückgabe einer Liste aller Objekte (d. h. Tabellen, Ansichten), bei denen für eine Spalte die angegebene Maskierungsrichtlinie festgelegt wurde.

  • Rückgabe einer Liste von Richtlinienzuordnungen, die den angegebenen Objektnamen und Objekttyp aufweisen.

Snowflake zeichnet die ursprüngliche Abfrage des Benutzers auf der Seite Verlauf (auf der Weboberfläche) auf. Die Abfrage befindet sich in der Spalte SQL Text.

Die Namen der Maskierungsrichtlinien, die in einer bestimmten Abfrage verwendet wurden, finden Sie im Query Profile.

Der Abfrageverlauf ist nur für die Account Usage-Ansicht QUERY_HISTORY spezifisch. In dieser Ansicht enthält die Spalte Query Text den Text der SQL-Anweisung. Namen von Maskierungsrichtlinien sind in der QUERY_HISTORY-Ansicht nicht enthalten.

Problembehandlung bei der dynamischen Datenmaskierung

Zur Behebung von Problemen mit Maskierungsrichtlinien können Fehlermeldungen verwendet werden.

Fehlermeldungen

In der folgenden Tabelle sind Fehlermeldungen beschrieben, die Snowflake bei Verwendung von Maskierungsrichtlinien zurückgeben kann.

Verhalten

Fehlermeldung

Problembehandlung

Maskierungsrichtlinie kann nicht auf ein Snowflake-Feature angewendet werden.

Unsupported feature CREATE ON MASKING POLICY COLUMN.

Maskierungsrichtlinien können derzeit nicht auf dieses Feature angewendet werden.

Eine aktive Rolle kann keine Maskierungsrichtlinie erstellen oder ersetzen.

SQL access control error: Insufficient privileges to operate on account <Kontoname>

Erteilen Sie der angegebenen Rolle mit grant create masking policy on account to role <role_name>; . die Berechtigung CREATE MASKING POLICY. Überprüfen Sie mit show grants to role <role_name>, ob die Rolle über die Berechtigung verfügt, und wiederholen Sie die Maskierungsanweisung CREATE OR REPLACE erneut.

Eine bestimmte Rolle kann einer Tabelle keine Maskierungsrichtlinie hinzufügen.

SQL compilation error: Database <Datenbankname> does not exist or not authorized.

Erteilen Sie der Rolle mit grant apply masking policy on account to role <role_name>; die Berechtigung APPLY MASKING POLICY.

Eine bestimmte Rolle, die kein Eigentümer einer Maskierungsrichtlinie für eine Tabelle ist, versucht, eine Maskierungsrichtlinie auf eine Tabelle anzuwenden, die sie verwenden darf.

SQL compilation error: Masking policy <Name_der_Richtlinie> does not exist or not authorized.

Erteilen Sie der angegebene Rollen die Nutzungsberechtigung für die Maskierungsrichtlinie mit grant apply on masking policy <policy_name> to role <role_name>;

Eine Richtlinie kann nicht mit drop masking policy <policy_name>; gelöscht oder entfernt werden.

SQL compilation error: Policy <Name_der_Richtlinie> cannot be dropped/replaced as it is associated with one or more entities.

Verwenden Sie zuerst eine ALTER TABLE … MODIFY COLUMN- oder ALTER VIEW … MODIFY COLUMN-Anweisung, um die Richtlinie mit UNSET zu deaktivieren, und wiederholen Sie dann die DROP-Anweisung.

Das Wiederherstellen einer gelöschten Tabelle führt zu einem Maskierungsrichtlinienfehler.

SQL execution error: Column <Spaltenname> already attached to a masking policy that does not exist. Please contact the policy administrator.

Deaktivieren Sie die aktuell angehängte Maskierungsrichtlinie mit einer ALTER TABLE/VIEW MODIFY COLUMN-Anweisung, und wenden Sie die Maskierungsrichtlinie dann erneut mit einer CREATE OR REPLACE-Anweisung auf die Spalte an.

Eine Maskierungsrichtlinie kann nicht auf eine bestimmte Spalte angewendet werden, die Maskierungsrichtlinie kann jedoch auf eine andere Spalte angewendet werden.

Specified column already attached to another masking policy. A column cannot be attached to multiple masking policies. Please drop the current association in order to attach a new masking policy.

Entscheiden Sie, welche Maskierungsrichtlinie für die Spalte gelten soll, aktualisieren Sie diese, und versuchen Sie es erneut.

Das Aktualisieren einer Richtlinie mit einer ALTER-Anweisung schlägt fehl.

SQL compilation error: Masking policy <Name_der_Richtlinie> does not exist or not authorized.

Überprüfen Sie, ob der Richtlinienname im ALTER-Befehl mit einer vorhandenen Richtlinie übereinstimmt, indem Sie show masking policies; ausführen.

Die Rolle, die Eigentümer der geklonten Tabelle ist, kann eine Maskierungsrichtlinie nicht deaktivieren.

SQL access control error: Insufficient privileges to operate on ALTER TABLE UNSET MASKING POLICY ‚<Richtlinienname>‘

Erteilen Sie der Rolle, die Eigentümer der geklonten Tabelle ist, mit grant apply on masking policy <policy_name> to role <role_name>; die APPLY-Berechtigung. . Stellen Sie sicher, dass die Rolle, die Eigentümer der geklonten Tabelle ist, die Berechtigung zur Verwendung von show grants to role <role_name>; besitzt, und versuchen Sie die ALTER-Anweisung erneut.

Das Aktualisieren einer Richtlinie mit IF EXISTS gibt zwar ein erfolgreiches Ergebnis zurück, die Richtlinie wird jedoch nicht aktualisiert.

Es wurde keine Fehlermeldung zurückgegeben. Snowflake gibt die Meldung aus, dass die Anweisung erfolgreich ausgeführt wurde.

Entfernen Sie IF EXISTS aus der ALTER-Anweisung, und versuchen Sie es erneut.

Beim Erstellen oder Ersetzen einer Maskierungsrichtlinie durch CASE stimmen die Datentypen nicht überein (z. B. (VAL Zeichenfolge) -> gibt Nummer zurück).

SQL compilation error: Masking policy function argument and return type mismatch.

Aktualisieren Sie die Maskierungsrichtlinie, indem Sie CASE mit übereinstimmenden Datentypen und mithilfe einer CREATE OR REPLACE-Anweisung oder einer ALTER MASKING POLICY-Anweisung verwenden.

Anwenden eine Maskierungsrichtlinie auf eine virtuelle Spalte.

SQL compilation error: Masking policy cannot be attached to a VIRTUAL_COLUMN column.

Wenden Sie die Maskierungsrichtlinie auf die Spalten in der Quelltabelle an.

Anwenden einer Maskierungsrichtlinie auf eine materialisierte Ansicht.

SQL compilation error: syntax error line <Zahl> at position <Zahl> unexpected ‚modify‘. . SQL compilation error: error line <Zahl> at position <Zahl> invalid identifier ‚<Zeichen>‘ . SQL execution error: One or more materialized views exist on the table. number of mvs=<Zahl>, table name=<Tabellenname>.

Wenden Sie die Maskierungsrichtlinie auf die Spalten in der Quelltabelle an. Weitere Informationen dazu finden Sie unter Einschränkungen.

Anwenden einer Maskierungsrichtlinie auf eine Tabellenspalte, mit der eine materialisierte Ansicht erstellt wird.

SQL compilation error: Masking policy cannot be attached to a MATERIALIZED_VIEW column.

Löschen Sie die materialisierte Ansicht, um die Maskierungsrichtlinie auf die Tabellenspalte anzuwenden.

Einfügen einer maskierten Spalte beim Erstellen einer materialisierten Ansicht.

Unsupported feature ‚CREATEONMASKINGPOLICYCOLUMN‘.

Erstellen Sie die materialisierte Ansicht ohne Einbeziehung der maskierten Spalten oder legen Sie keine Maskierungsrichtlinien auf der Basistabelle oder den Ansichten fest, erstellen Sie die materialisierte Ansicht, und wenden Sie dann die Maskierungsrichtlinien auf die Spalten der materialisierten Ansicht an.

Es ist nicht möglich, eine Maskierungsrichtlinie mit einer benutzerdefinierten Funktion (UDF) im Maskierungsrichtlinientext zu erstellen.

SQL access control error: Insufficient privileges to operate on function ‚<UDF-Name>‘

Überprüfen Sie, ob die Rolle, die die Maskierungsrichtlinie erstellt, die Berechtigung USAGE für die UDF hat.

Nächste Themen: