ALTER VIEW

Ändert die Eigenschaften einer bestehenden Ansicht. Derzeit werden nur die folgenden Operationen unterstützt:

  • Umbenennen einer Ansicht.

  • Konvertieren in (oder Zurücksetzen von) einer sicheren Ansicht.

  • Hinzufügen, Überschreiben, Entfernen eines Kommentars für eine Ansicht.

Beachten Sie, dass Sie mit diesem Befehl die Definition für eine Ansicht nicht ändern können. Um die Definition einer Ansicht zu ändern, müssen Sie die Ansicht löschen und anschließend neu erstellen.

Siehe auch:

CREATE VIEW, DROP VIEW, SHOW VIEWS, DESCRIBE VIEW

Syntax

ALTER VIEW [ IF EXISTS ] <name> RENAME TO <new_name>

ALTER VIEW [ IF EXISTS ] <name> SET COMMENT = '<string_literal>'

ALTER VIEW [ IF EXISTS ] <name> UNSET COMMENT

ALTER VIEW [ IF EXISTS ] <name> SET SECURE

ALTER VIEW [ IF EXISTS ] <name> SET CHANGE_TRACKING =  { TRUE | FALSE }

ALTER VIEW <name> UNSET SECURE

ALTER VIEW <name> dataMetricFunctionAction

ALTER VIEW [ IF EXISTS ] <name> dataGovnPolicyTagAction
Copy

Wobei:

dataMetricFunctionAction ::=

    SET DATA_METRIC_SCHEDULE = {
        '<num> MINUTE'
      | 'USING CRON <expr> <time_zone>'
      | 'TRIGGER_ON_CHANGES'
    }

  | UNSET DATA_METRIC_SCHEDULE

  | { ADD | DROP } DATA METRIC FUNCTION <metric_name>
      ON ( <col_name> [ , ... ] )
      [ , <metric_name_2> ON ( <col_name> [ , ... ] ) ]
  | MODIFY DATA METRIC FUNCTION <metric_name>
      ON ( <col_name> [ , ... ] ) { SUSPEND | RESUME }
      [ , <metric_name_2> ON ( <col_name> [ , ... ] ) { SUSPEND | RESUME } ]
Copy
dataGovnPolicyTagAction ::=
  {
      SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
    | UNSET TAG <tag_name> [ , <tag_name> ... ]
  }
  |
  {
      ADD ROW ACCESS POLICY <policy_name> ON ( <col_name> [ , ... ] )
    | DROP ROW ACCESS POLICY <policy_name>
    | DROP ROW ACCESS POLICY <policy_name> ,
        ADD ROW ACCESS POLICY <policy_name> ON ( <col_name> [ , ... ] )
    | DROP ALL ROW ACCESS POLICIES
  }
  |
  {
      SET AGGREGATION POLICY <policy_name>
        [ ENTITY KEY ( <col_name> [, ... ] ) ]
        [ FORCE ]
    | UNSET AGGREGATION POLICY
  }
  |
  ADD [ COLUMN ] [ IF NOT EXISTS ] <col_name> <col_type>
    [ [ WITH ] MASKING POLICY <policy_name>
          [ USING ( <col1_name> , <cond_col_1> , ... ) ] ]
    [ [ WITH ] PROJECTION POLICY <policy_name> ]
    [ [ WITH ] TAG ( <tag_name> = '<tag_value>'
          [ , <tag_name> = '<tag_value>' , ... ] ) ]
  |
  {
    { ALTER | MODIFY } [ COLUMN ] <col1_name>
        SET MASKING POLICY <policy_name>
          [ USING ( <col1_name> , <cond_col_1> , ... ) ] [ FORCE ]
      | UNSET MASKING POLICY
  }
  |
  {
    { ALTER | MODIFY } [ COLUMN ] <col1_name>
        SET PROJECTION POLICY <policy_name>
          [ FORCE ]
      | UNSET PROJECTION POLICY
  }
  |
  { ALTER | MODIFY } [ COLUMN ] <col1_name> SET TAG
      <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
      , [ COLUMN ] <col2_name> SET TAG
          <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
  |
  { ALTER | MODIFY } [ COLUMN ] <col1_name> UNSET TAG <tag_name> [ , <tag_name> ... ]
                   , [ COLUMN ] <col2_name> UNSET TAG <tag_name> [ , <tag_name> ... ]
Copy

Parameter

name

Gibt den Bezeichner für die zu ändernde Ansicht an. Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

RENAME TO new_name

Gibt den neuen Bezeichner für die Ansicht an. Dieser muss für das Schema eindeutig sein.

Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

Sie können das Objekt in eine andere Datenbank und/oder in ein anderes Schema verschieben und dabei optional das Objekt umbenennen. Geben Sie dazu einen qualifizierten new_name-Wert an, der den neuen Datenbank- und/oder Schemanamen im Format db_name.schema_name.object_name bzw. schema_name.object_name enthält.

Bemerkung

  • Die Zieldatenbank und/oder das Zielschema müssen bereits vorhanden sein. Außerdem darf in der Zieldatenbank nicht bereits ein gleichnamiges Schema vorhanden sein, da die Anweisung sonst einen Fehler zurückgibt.

  • Das Verschieben eines Objekts in ein verwaltetes Zugriffsschema ist nicht zulässig, es sei denn, der Objekteigentümer (d. h. die Rolle mit der Berechtigung OWNERSHIP für das Objekt) ist auch Eigentümer des Zielschemas.

Wenn ein Objekt umbenannt wird, müssen andere Objekte, die darauf verweisen, mit dem neuen Namen aktualisiert werden.

SET ...

Gibt die Eigenschaft an, die für die Ansicht festgelegt werden soll:

SECURE

Gibt eine Ansicht als sicher an.

CHANGE_TRACKING = TRUE | FALSE

Gibt an, dass die Änderungsverfolgung in der Tabelle aktiviert oder deaktiviert werden soll.

  • TRUE aktiviert die Änderungsverfolgung für die Ansicht und kaskadiert die Einstellung auf alle zugrunde liegenden Tabellen.

  • FALSE deaktiviert die Änderungsverfolgung für die Ansicht und kaskadiert die Einstellung auf alle zugrunde liegenden Tabellen.

COMMENT = 'string_literal'

Fügt einen Kommentar hinzu oder überschreibt einen vorhandenen Kommentar für die Ansicht.

Bemerkung

Sie müssen jede Ansichtseigenschaft einzeln einstellen.

UNSET ...

Gibt die Eigenschaft an, die für die Ansicht deaktiviert werden soll, wodurch sie auf den Standard zurückgesetzt wird:

  • SECURE

  • COMMENT

Wenn Sie eine Eigenschaft zurücksetzen, geben Sie nur den Namen an. Die Angabe eines Wertes für die Eigenschaft gibt einen Fehler zurück.

Bemerkung

Sie müssen jede Ansichtseigenschaft einzeln zurücksetzen.

Aktionen der Datenmetrikfunktion (dataMetricFunctionAction)

DATA_METRIC_SCHEDULE ...

Gibt den Zeitplan für die regelmäßige Ausführung der Datenmetrikfunktion an.

'num MINUTE'

Gibt ein Intervall (in Minuten) für die Wartezeit an, die zwischen Ausführungen der Datenmetrikfunktion eingefügt wird. Akzeptiert nur positive ganze Zahlen.

Unterstützt auch die Syntax num M.

Verwenden Sie für Datenmetrikfunktionen einen der folgenden Werte: 5, 15, 30, 60, 720 oder 1440.

'USING CRON expr time_zone'

Gibt einen Cron-Ausdruck und eine Zeitzone für die regelmäßige Ausführung der Datenmetrikfunktion an. Unterstützt eine Teilmenge der Standardsyntax des Cron-Dienstprogramms.

Eine Liste der Zeitzonen finden Sie unter List of tz database time zones (Liste der Zeitzonen aus der Zeitzonen-Datenbank) (Wikipedia).

Der cron-Ausdruck besteht aus den folgenden Feldern, und das periodische Intervall muss mindestens 5 Minuten betragen:

# __________ minute (0-59)
# | ________ hour (0-23)
# | | ______ day of month (1-31, or L)
# | | | ____ month (1-12, JAN-DEC)
# | | | | _ day of week (0-6, SUN-SAT, or L)
# | | | | |
# | | | | |
  * * * * *
Copy

Folgende Sonderzeichen werden unterstützt:

*

Platzhalter. Gibt jedes vorkommende Feld an.

L

Steht für „last“ (letzte). Bei Verwendung im Feld Wochentag können Sie Konstrukte wie „den letzten Freitag“ („5L“) eines bestimmten Monats angeben. Im Feld Tag des Monats wird der letzte Tag des Monats angegeben.

/{n}

Gibt die n-te Instanz einer bestimmten Zeiteinheit an. Jeder Zeitanteil wird unabhängig berechnet. Wenn beispielsweise im Monatsfeld 4/3 angegeben ist, ist die Datenmetrikfunktion für April, Juli und Oktober geplant (d. h. alle 3 Monate, beginnend mit dem 4. Monat des Jahres). In den Folgejahren wird derselbe Zeitplan beibehalten. Das heißt, die Datenmetrikfunktion ist nicht für eine Ausführung im Januar (3 Monate nach der Oktober-Ausführung) geplant.

Bemerkung

  • Der Cron-Ausdruck wird derzeit nur für die angegebene Zeitzone ausgewertet. Das Ändern des TIMEZONE-Parameterwerts für das Konto (oder das Festlegen des Werts auf Benutzer- oder Sitzungsebene) führt nicht zur Änderung der Zeitzone der Datenmetrikfunktion.

  • Der Cron-Ausdruck definiert alle gültigen Ausführungszeiten für die Datenmetrikfunktion. Snowflake versucht, eine Datenmetrikfunktion basierend auf diesem Zeitplan auszuführen. Eine gültige Laufzeit wird jedoch übersprungen, wenn eine vorherige Laufzeit nicht vor dem Start der nächsten gültigen Laufzeit abgeschlossen wurde.

  • Wenn sowohl ein bestimmter Tag des Monats als auch ein bestimmter Wochentag im Cron-Ausdruck enthalten sind, wird die Datenmetrikfunktion an Tagen geplant, die entweder dem Tag des Monats oder dem Wochentag entsprechen. Beispielsweise plant DATA_METRIC_SCHEDULE = 'USING CRON 0 0 10-20 * TUE,THU UTC' eine Datenmetrikfunktion um 0:00 Uhr an jedem 10. bis 20. Tag des Monats und auch an jedem Dienstag oder Donnerstag außerhalb dieser Tage.

  • Der kleinste Zeitwert in Cron ist Minute.

    Wird eine Datenmetrikfunktion innerhalb der in ihrem Cron-Ausdruck definierten Minute fortgesetzt, ist die erste geplante Ausführung der Datenmetrikfunktion das nächste Auftreten der Instanz des Cron-Ausdrucks. Wenn zum Beispiel eine Datenmetrikfunktion, die täglich um Mitternacht ausgeführt werden soll (USING CRON 0 0 * * *), um Mitternacht plus 5 Sekunden (00:00:05) fortgesetzt wird, wird die erste Ausführung der Datenmetrikfunktion für die folgende Mitternacht geplant.

'TRIGGER_ON_CHANGES'

Legt fest, dass die DMF ausgeführt wird, wenn eine DML-Operation die Tabelle verändert, wie z. B. das Einfügen einer neuen Zeile oder das Löschen einer Zeile.

Sie können 'TRIGGER_ON_CHANGES' für die folgenden Objekte angeben:

  • Dynamische Tabellen

  • Externe Tabellen

  • Apache Iceberg™-Tabellen

  • Reguläre Tabelle

  • Temporäre Tabellen

  • Transiente Tabellen

Änderungen an der Tabelle als Ergebnis von Reclustering lösen keine Ausführung der DMF aus.

{ ADD | DROP } DATA METRIC FUNCTION metric_name

Bezeichner der Datenmetrikfunktion, die der Tabelle oder Ansicht hinzugefügt oder aus der Tabelle oder Ansicht entfernt werden soll.

ON ( col_name [ , ... ] )

Die Spalten der Tabelle oder Ansicht, denen die Datenmetrikfunktion zugeordnet werden soll. Die Datentypen der Spalten müssen mit den Datentypen der in der Definition der Datenmetrikfunktion angegebenen Spalten übereinstimmen.

[ , metric_name_2 ON ( col_name [ , ... ] ) [ , ... ] ]

Zusätzliche Datenmetrikfunktionen, die Sie der Tabelle oder Ansicht hinzufügen können. Verwenden Sie ein Komma, um jede Datenmetrikfunktion und die angegebenen Spalten zu trennen.

MODIFY DATA METRIC FUNCTION metric_name

Bezeichner der zu ändernden Datenmetrikfunktion.

ON ( col_name [ , ... ] ) { SUSPEND | RESUME }

Setzt die Datenmetrikfunktion für die angegebenen Spalten aus oder setzt sie fort. Wenn eine Datenmetrikfunktion für eine Tabelle oder Ansicht festgelegt ist, wird die Datenmetrikfunktion automatisch in den Zeitplan aufgenommen.

  • SUSPEND entfernt die Datenmetrikfunktion aus dem Zeitplan.

  • RESUME bringt eine ausgesetzte Datenmetrikfunktion zurück in den Zeitplan.

[ , metric_name_2 ON ( col_name [ , ... ] ) [ , ... ] { SUSPEND | RESUME } ]

Zusätzliche Datenmetrikfunktionen zum Aussetzen oder Fortsetzen. Verwenden Sie ein Komma, um jede Datenmetrikfunktion und die angegebenen Spalten zu trennen.

Einzelheiten zu den Anforderungen an die Zugriffssteuerung für diese Aktionen finden Sie unter DMF-Berechtigungen.

Data-Governance-Richtlinie und Tag-Aktionen (dataGovnPolicyTagAction)

TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]

Gibt den Namen des Tags und den Wert der Tag-Zeichenfolge an.

Der Tag-Wert ist immer eine Zeichenfolge, die maximale 256 Zeichen lang sein kann.

Weitere Informationen zur Angabe von Tags in einer Anweisung finden Sie unter Tag-Kontingente für Objekte und Spalten.

policy_name

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

Die folgenden Klauseln gelten für alle Tabellentypen, die Zeilenzugriffsrichtlinien unterstützen, wie z. B. Tabellen, Ansichten und Ereignistabellen. Der Einfachheit halber wird in den Klauseln nur von „Tabelle“ gesprochen.

ADD ROW ACCESS POLICY policy_name ON (col_name [ , ... ])

Fügt der Tabelle eine Zeilenzugriffsrichtlinie hinzu.

Es muss mindestens ein Spaltenname angegeben werden. Zusätzliche Spalten können mit einem Komma zwischen den einzelnen Spaltennamen angegeben werden. Verwenden Sie diesen Ausdruck, um eine Zeilenzugriffsrichtlinie sowohl zu einer Ereignistabelle als auch zu einer externen Tabelle hinzuzufügen.

DROP ROW ACCESS POLICY policy_name

Entfernt eine Zeilenzugriffsrichtlinie aus der Tabelle.

Verwenden Sie diese Klausel, um die Richtlinie in der Tabelle zu löschen.

DROP ROW ACCESS POLICY policy_name, ADD ROW ACCESS POLICY policy_name ON ( col_name [ , ... ] )

Löscht mit nur einer einzigen SQL-Anweisung die für die Tabelle festgelegte Zeilenzugriffsrichtlinie und fügt eine Zeilenzugriffsrichtlinie zu derselben Tabelle hinzu.

DROP ALL ROW ACCESS POLICIES

Löscht alle Zuordnungen von Zeilenzugriffsrichtlinien aus der Tabelle.

Dieser Ausdruck ist hilfreich, wenn eine Zeilenzugriffsrichtlinie aus einem Schema gelöscht wird, bevor die Richtlinie aus einer Ereignistabelle gelöscht wird. Verwenden Sie diesen Ausdruck, um Zuordnungen von Zeilenzugriffsrichtlinien aus der Tabelle zu löschen.

SET AGGREGATION POLICY policy_name
[ ENTITY KEY (col_name [ , ... ]) ] [ FORCE ]

Weist der Tabelle eine Aggregationsrichtlinie zu.

Verwenden Sie den optionalen Parameter ENTITY KEY, um festzulegen, welche Spalten eine Entität innerhalb der Tabelle eindeutig identifizieren. Weitere Informationen dazu finden Sie unter Implementieren von Datenschutz auf Entitätsebene mit Aggregationsrichtlinien.

Verwenden Sie den optionalen Parameter FORCE, um eine bestehende Aggregationsrichtlinie atomar durch die neue Aggregationsrichtlinie zu ersetzen.

UNSET AGGREGATION POLICY

Löst die Zuordnung einer Aggregationsrichtlinie zu der Tabelle auf.

{ ALTER | MODIFY } [ COLUMN ] ...
USING ( col_name , cond_col_1 ... )

Gibt die Argumente an, die an den SQL-Ausdruck für die bedingte Maskierungsrichtlinie übergeben werden sollen.

Die erste Spalte in der Liste gibt die Spalte für die Richtlinienbedingungen zur Maskierung oder Tokenisierung der Daten an. Sie muss mit der Spalte übereinstimmen, für die die Maskierungsrichtlinie festgelegt ist.

Die zusätzlichen Spalten geben an, welche Spalten ausgewertet werden sollen, um zu ermitteln, ob die Daten in der jeweiligen Zeile des Abfrageergebnisses maskiert oder tokenisiert werden sollen, wenn auf der ersten Spalte eine Abfrage ausgeführt wird.

Wenn die USING-Klausel weggelassen wird, behandelt Snowflake die bedingte Maskierungsrichtlinie wie eine normale Maskierungsrichtlinie.

FORCE

Ersetzt mit nur einer Anweisung eine Maskierungs- oder Projektionsrichtlinie, die derzeit für eine Spalte festgelegt ist, durch eine andere Richtlinie.

Beachten Sie, dass die Verwendung des Schlüsselworts FORCE mit einer Maskierungsrichtlinie voraussetzt, dass der Datentyp der Richtlinie in der ALTER TABLE-Anweisung (d. h. STRING) mit dem Datentyp der aktuell für die Spalte festgelegten Maskierungsrichtlinie (d. h. STRING) übereinstimmt.

Wenn für die Spalte derzeit keine Maskierungsrichtlinie festgelegt ist, hat die Angabe dieses Schlüsselworts keine Auswirkungen.

Weitere Details dazu finden Sie unter Maskierungsrichtlinie auf einer Spalte ersetzen oder Projektionsrichtlinie ersetzen.

Nutzungshinweise: Allgemein

  • Das Verschieben einer Ansicht in ein verwaltetes Zugriffsschema (unter Verwendung der ALTER VIEW … RENAME TO-Syntax) ist nicht erlaubt, es sei denn, der Eigentümer der Ansicht (d. h. die Rolle mit der Berechtigung OWNERSHIP für die Ansicht) ist auch Eigentümer des Zielschemas.

  • Bei Maskierungsrichtlinien:

    • Die USING-Klausel und das Schlüsselwort FORCE sind beide optional, d. h. beide sind nicht erforderlich, um eine Maskierungsrichtlinie für eine Spalte festzulegen. Die USING-Klausel und das Schlüsselwort FORCE können einzeln oder zusammen verwendet werden. Weitere Details dazu finden Sie unter:

    • Eine einzelne Maskierungsrichtlinie, die bedingte Spalten verwendet, kann auf mehrere Tabellen angewendet werden, sofern die Spaltenstruktur der Tabelle mit den in der Richtlinie angegebenen Spalten übereinstimmt.

    • Wenn Sie eine oder mehrere Tabellenspalten mit Maskierungsrichtlinie oder die Tabelle selbst mit Zeilenzugriffsrichtlinie ändern, können Sie mit der Funktion POLICY_CONTEXT eine Abfrage auf den mit einer Maskierungsrichtlinie geschützten Spalten bzw. auf der mit einer Zeilenzugriffsrichtlinie geschützten Tabelle simulieren.

  • Eine einzelne Maskierungsrichtlinie, die bedingte Spalten verwendet, kann auf mehrere Ansichten angewendet werden, sofern die Spaltenstruktur der Ansicht mit den in der Richtlinie angegebenen Spalten übereinstimmt.

  • Für Zeilenzugriffsrichtlinien:

    • Snowflake unterstützt das Hinzufügen und Löschen von Zeilenzugriffsrichtlinien mit einer einzigen SQL-Anweisung.

      Wenn Sie z. B. eine bereits für eine Tabelle festgelegte Zeilenzugriffsrichtlinie durch eine andere Richtlinie ersetzen möchten, müssen Sie zuerst die Zeilenzugriffsrichtlinie löschen und dann die neue Zeilenzugriffsrichtlinie hinzufügen.

    • Für eine gegebene Ressource (d. h. Tabelle oder Ansicht) müssen Sie für ein ADD oder DROP der Zeilenzugriffsrichtlinie entweder über die APPLY ROW ACCESS POLICY-Berechtigung für das Schema oder über die OWNERSHIP-Berechtigung für die Ressource und die APPLY-Berechtigung für die Ressource der Zeilenzugriffsrichtlinie verfügen.

    • Eine Tabelle oder Ansicht kann nur durch jeweils eine einzige Zeilenzugriffsrichtlinie geschützt werden. Das Hinzufügen einer Richtlinie schlägt fehl, wenn sich der Richtlinientext auf eine Tabellen- oder Ansichtsspalte bezieht, die durch eine Zeilenzugriffsrichtlinie geschützt ist, oder auf eine Spalte, die durch eine Maskierungsrichtlinie geschützt ist.

      In ähnlicher Weise schlägt das Hinzufügen einer Maskierungsrichtlinie zu einer Tabellenspalte fehl, wenn der Richtlinientext der Maskierungsrichtlinie auf eine Tabelle verweist, die durch eine Zeilenzugriffsrichtlinie oder eine andere Maskierungsrichtlinie geschützt ist.

    • Zeilenzugriffsrichtlinien können nicht auf systemspezifische Ansichten oder Tabellenfunktionen angewendet werden.

    • Ähnlich wie bei anderen DROP <Objekt>-Operationen gibt Snowflake einen Fehler zurück, wenn versucht wird, eine Zeilenzugriffsrichtlinie aus einer Ressource zu löschen, der keine Zeilenzugriffsrichtlinie hinzugefügt wurde.

    • Wenn ein Objekt sowohl eine Zeilenzugriffsrichtlinie als auch eine oder mehrere Maskierungsrichtlinien hat, wird die Zeilenzugriffsrichtlinie zuerst ausgewertet.

  • Hinweis zu Metadaten:

    Achtung

    Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.

Nutzungshinweise: Datenmetrikfunktionen

Hinzufügen einer DMF zu einer Tabelle:

Bevor Sie eine Datenmetrikfunktion zu einer Tabelle hinzufügen, müssen Sie Folgendes tun:

  • Festlegen des Zeitplans für die Ausführung der Datenmetrikfunktion. Weitere Details dazu finden Sie unter DATA_METRIC_SCHEDULE.

  • Konfigurieren der Ereignistabelle, um die Ergebnisse des Aufrufs der Datenmetrikfunktion zu speichern. Weitere Details dazu finden Sie unter DMF-Ergebnisse anzeigen.

  • Sicherstellen, dass die Tabelle oder Ansicht nicht für eine Freigabe freigegeben ist, da Sie keine Datenmetrikfunktion für eine freigegebene Tabelle oder Ansicht festlegen können.

Außerdem:

  • Sie können einer Tabelle, einer externen Tabelle, einer Ansicht oder einer materialisierten Ansicht eine Datenmetrikfunktion hinzufügen. Sie können keine andere Art von Tabelle, wie z. B. eine dynamische Tabelle, mit einer Datenmetrikfunktion versehen.

  • Wenn Sie eine Spalte angeben, verwendet Snowflake die Ordinalposition. Wenn Sie eine Spalte umbenennen, nachdem Sie der Tabelle oder Ansicht eine Datenmetrikfunktion hinzugefügt haben, bleibt die Zuordnung der Datenmetrikfunktion zu der Spalte gültig.

  • Zu einer Spalte kann nur eine Datenmetrikfunktion ihrer Art hinzugefügt werden. Beispielsweise kann eine NULL_COUNT-Datenmetrikfunktion nicht zweimal zu einer einzelnen Spalte hinzugefügt werden.

  • Wenn Sie eine Spalte löschen, nachdem Sie eine Datenmetrikfunktion hinzugefügt haben, die auf diese Spalte verweist, kann Snowflake die Datenmetrikfunktion nicht auswerten.

  • Verweise auf virtuelle Spalten werden nicht unterstützt.

Löschen einer DMF aus einer Tabelle:
  • Löschen Sie die Datenmetrikfunktion aus der Tabelle, bevor Sie den Befehl DROP FUNCTION verwenden, um die Datenmetrikfunktion aus dem System zu entfernen.

  • Sie können die Funktion DATA_METRIC_FUNCTION_REFERENCES verwenden, um die Tabellen- und Ansichtsobjekte zu identifizieren, für die eine Datenmetrikfunktion festgelegt wurde.

DMF planen

Sobald der Zeitplan festgelegt ist, dauert es zehn Minuten, bis er in Kraft tritt.

Ebenso dauert es zehn Minuten, bis die Änderungen in der Zeitplanung wirksam werden, sobald die DMF deaktiviert wird. Weitere Informationen dazu finden Sie unter Ausführung von DMFs planen.

Beispiele

Ansicht view1 umbenennen in view2:

ALTER VIEW view1 RENAME TO view2;
Copy

Konvertieren einer Ansicht in eine sichere Ansicht:

ALTER VIEW view1 SET SECURE;
Copy

Stellen Sie eine sichere Ansicht auf eine Standardansicht um:

ALTER VIEW view1 UNSET SECURE;
Copy

Anwenden einer Maskierungsrichtlinie für Sicherheit auf Spaltenebene auf eine Ansichtsspalte:

-- single column

ALTER VIEW user_info_v MODIFY COLUMN ssn_number SET MASKING POLICY ssn_mask_v;

-- multiple columns

ALTER VIEW user_info_v MODIFY
    COLUMN ssn_number SET MASKING POLICY ssn_mask_v
  , COLUMN dob SET MASKING POLICY dob_mask_v
;
Copy

Deaktivieren der auf eine Tabellenspalte angewendeten Maskierungsrichtlinie für Sicherheit auf Spaltenebene:

-- single column

ALTER VIEW user_info_v modify column ssn_number unset masking policy;

-- multiple columns

ALTER VIEW user_info_v modify
    column ssn_number unset masking policy
  , column dob unset masking policy
;
Copy

Das folgende Beispiel fügt eine Zeilenzugriffsrichtlinie zu einer Ansicht hinzu. Nach dem Einstellen der Richtlinien können Sie diese durch Überprüfen des Information Schema verifizieren.

alter view v1
  add row access policy rap_v1 on (empl_id);
Copy

Im folgenden Beispiel wird eine Zeilenzugriffsrichtlinie aus einer Ansicht entfernt. Überprüfen Sie, ob die Richtlinien gelöscht wurden, indem Sie das Information Schema abfragen.

alter view v1
  drop row access policy rap_v1;
Copy

Das folgende Beispiel zeigt, wie Sie das Hinzufügen und Löschen von Zeilenzugriffsrichtlinien in einer einzigen SQL-Anweisung für eine Ansicht kombinieren. Überprüfen Sie die Ergebnisse, indem Sie das Information Schema überprüfen.

alter view v1
  drop row access policy rap_v1_version_1,
  add row access policy rap_v1_version_2 on (empl_id);
Copy