Grundlegendes zur dynamischen Datenmaskierung

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

Was ist die dynamische Datenmaskierung?

Die dynamische Datenmaskierung ist eine Sicherheitsfunktion auf Spaltenebene, die 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.

Berechtigungen zur dynamischen Datenmaskierung

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

Berechtigung

Verwendung

APPLY

Aktiviert das Anwenden von Operationen zum Festlegen/Aufheben der Maskierungsrichtlinie.

OWNERSHIP

Überträgt die Eigentümerschaft an einer Maskierungsrichtlinie, wodurch die vollständige Kontrolle über die Maskierungsrichtlinie gewährt wird. Erforderlich, um die meisten Eigenschaften einer Maskierungsrichtlinie zu ändern.

Bemerkung

Das Durchführen von Operationen auf einer Maskierungsrichtlinie erfordert auch die USAGE-Berechtigung für die übergeordnete Datenbank und das übergeordnete Schema.

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 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.

Derzeit ist der Abfrageverlauf 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

Eine Maskierungsrichtlinie kann nicht auf eine Snowflake-Funktion angewendet werden.

FAILURE: Unsupported feature CREATE ON MASKING POLICY COLUMN.

Maskierungsrichtlinien können derzeit nicht auf diese Funktion angewendet werden.

Eine aktive Rolle kann keine Maskierungsrichtlinie erstellen oder ersetzen.

FAILURE: 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.

FAILURE: 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.

FAILURE: 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 sysadmin;

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

FAILURE: 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/VIEW MODIFY COLUMN-Anweisung, um zuerst die Richtlinie mit UNSET zu deaktivieren, und wiederholen Sie dann die DROP-Anweisung.

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

FAILURE: SQL execution error: Column <Spaltenname> already attached to a masking policy that does not exist. Wenden Sie sich an den Richtlinienadministrator.

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.

FAILURE: 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.

FAILURE: 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 den Befehl zum Anzeigen der Maskierungsrichtlinie ausführen.

Die Eigentümerrolle einer geklonten Tabellen kann eine Maskierungsrichtlinie nicht deaktivieren.

FAILURE: SQL access control error: Insufficient privileges to operate on ALTER TABLE UNSET MASKING POLICY ‚{1}‘

Erteilen Sie der Tabellenklonerrolle mit grant apply on masking policy ssn_mask to role <role_name>; . die Berechtigung APPLY. Prüfen Sie mit show grants to role table_cloner_role;, ob die Tabellenklonerrolle die Berechtigung hat, und wiederholen Sie die ALTER-Anweisung.

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 string) -> gibt Nummer zurück).

FAILURE: 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.

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

Wenden Sie die Maskierungsrichtlinie auf die Spalte(n) in der Quelltabelle an.

Anwenden einer Maskierungsrichtlinie auf eine materialisierte Ansicht.

FAILURE: SQL compilation error: syntax error line <Zahl> at position <Zahl> unexpected ‚modify‘. . FAILURE: SQL compilation error: error line <Zahl> at position <Zahl> invalid identifier ‚<Zeichen>‘

Wenden Sie die Maskierungsrichtlinie auf die Spalte(n) in der Quelltabelle an.

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

FAILURE: 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.

Nächste Themen: