Kategorien:

DDL für Tabellen, Ansichten und Sequenzen

ALTER MASKING POLICY

Ersetzt die vorhandenen Regeln einer Maskierungsrichtlinie durch neue Regeln oder einen neuen Kommentar und ermöglicht das Umbenennen einer Maskierungsrichtlinie.

Alle an den Richtlinienregeln vorgenommenen Änderungen werden bei Ausführung der nächsten SQL-Abfrage wirksam, die die Maskierungsrichtlinie verwendet.

Syntax

ALTER MASKING POLICY [ IF EXISTS ] <name> SET BODY -> <expression_ON_VAL> [ COMMENT = '<string_literal>' ]

ALTER MASKING POLICY [ IF EXISTS ] <name> RENAME TO <new_name>

Parameter

Name

Bezeichner für die Maskierungsrichtlinie. Dieser muss für Ihr Konto eindeutig sein.

Der Bezeichnerwert muss mit einem alphabetischen Zeichen beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

Ausdruck_ON_VAL

SQL-Ausdruck, der die Daten transformiert.

Der Ausdruck kann Funktionen für bedingte Ausdrücke enthalten, um bedingte Logik, integrierte Funktionen oder UDFs zur Datentransformation darzustellen.

Wenn eine UDF oder externe Funktion innerhalb des Maskierungsrichtlinientextes verwendet wird, muss der Richtlinienbesitzer die OWNERSHIP-Berechtigung für die UDF oder die externe Funktion haben. Benutzer, die eine Spalte abfragen, auf die eine Maskierungsrichtlinie angewendet wurde, müssen keine USAGE-Berechtigung für die UDF oder die externe Funktion haben.

RENAME TO neuer_Name

Gibt den neuen Bezeichner für die Rolle an. Dieser muss für Ihr Konto eindeutig sein.

Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

Nutzungshinweise

  • Sie können die Richtliniensignatur (d. h. den Argumentnamen oder den Eingabe-/Ausgabedatentyp) nicht ändern. Wenn Sie die Signatur ändern müssen, führen Sie eine DROP MASKING POLICY-Anweisung für die Richtlinie aus, und erstellen Sie eine neue Richtlinie.

  • Bevor Sie eine ALTER-Anweisung ausführen, können Sie mithilfe der DESCRIBE MASKING POLICY-Anweisung den Argumentnamen ermitteln, der zum Aktualisieren der Richtlinie verwendet werden soll.

  • Verwenden Sie bei Maskierungsrichtlinien, die im Maskierungsrichtlinientext eine Unterabfrage enthalten, in der WHEN-Klausel ein EXISTS. Ein repräsentatives Beispiel ist im Beispiel für eine benutzerdefinierte Berechtigungstabelle im Abschnitt „Beispiele“ unter CREATE MASKING POLICY zu finden.

Beispiele

Im folgenden Beispiel wird die Maskierungsrichtlinie aktualisiert, um einen SHA-512-Hash zu verwenden. Benutzern ohne die Rolle ANALYST wird der Wert als SHA-512-Hash angezeigt, Benutzern mit der Rolle ANALYST dagegen der Klartextwert.

DESCRIBE MASKING POLICY email_mask;

-- evaluate output

+-----+------------+---------------+-------------------+-----------------------------------------------------------------------+
| Row | name       | signature     | return_type       | body                                                                  |
+-----+------------+---------------+-------------------+-----------------------------------------------------------------------+
| 1   | EMAIL_MASK | (VAL VARCHAR) | VARCHAR(16777216) | case when current_role() in ('ANALYST') then val else '*********' end |
+-----+------------+---------------+-------------------+-----------------------------------------------------------------------+

ALTER MASKING POLICY email_mask SET BODY ->
  CASE
    WHEN current_role() IN ('ANALYST') THEN VAL
    ELSE sha2(val, 512)
  END;