Verwalten von Verhaltensänderungen

In diesem Dokument wird erklärt, wie Sie überprüfen können, ob ein bestimmtes Verhaltensänderungs-Bundle in Ihrem Konto verfügbar ist und wie Sie dieses aktivieren oder deaktivieren können.

Übersicht

Snowflake implementiert Verhaltensänderungen monatlich in Bundles, die in den regelmäßig veröffentlichten Releases enthalten sind. Während der Testphase und der Opt-out-Phase jedes Verhaltensänderungs-Bundles können Sie das Bundle in Ihrem Konto aktivieren oder deaktivieren. In diesem Dokument wird erklärt, wie Sie überprüfen können, ob ein bestimmtes Bundle in Ihrem Konto aktiviert ist und wie Sie es aktivieren oder deaktivieren können.

In diesem Dokument hat der Name des Verhaltensänderungs-Bundles die Form YYYY_NN. Die Namen der derzeit verfügbaren Verhaltensänderungs-Bundles finden Sie unter Änderungsprotokoll zu Verhaltensänderungen.

Bemerkung

Die jeweiligen Verhaltensänderungen in einem Bundle können nicht einzeln aktiviert/deaktiviert werden. Um eine Verhaltensänderung zu aktivieren oder zu deaktivieren, müssen Sie das Bundle, das die Änderung enthält, aktivieren/deaktivieren.

Überprüfen des Status eines Verhaltensänderungs-Bundles für Ihr Konto

Um zu prüfen, ob ein bestimmtes Verhaltensänderungs-Bundle in Ihrem Konto verfügbar ist, rufen Sie die Funktion SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS auf: So prüfen Sie beispielsweise den Status des Bundles mit dem Namen 2024_02:

SELECT SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS('2024_02');
Copy
+-------------------------------------------------+
| SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS('2024_02') |
|-------------------------------------------------|
| DISABLED                                        |
+-------------------------------------------------+

Um den Status aller derzeit verfügbaren Verhaltensänderungs-Bundles zu prüfen, rufen Sie die Funktion SYSTEM$SHOW_ACTIVE_BEHAVIOR_CHANGE_BUNDLES auf:

SELECT SYSTEM$SHOW_ACTIVE_BEHAVIOR_CHANGE_BUNDLES();
Copy
+--------------------------------------------------------------------------------------------------------------+
| SYSTEM$SHOW_ACTIVE_BEHAVIOR_CHANGE_BUNDLES()                                                                 |
|--------------------------------------------------------------------------------------------------------------|
| [{"name":"2023_08","isDefault":true,"isEnabled":true},{"name":"2024_01","isDefault":false,"isEnabled":true}] |
+--------------------------------------------------------------------------------------------------------------+

Aktivieren eines Verhaltensänderungs-Bundles in Ihrem Konto

Um eine bestimmte Verhaltensänderung in Ihrem Konto zu aktivieren, rufen Sie die Funktion SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE auf. So aktivieren Sie beispielsweise das Bundle mit dem Namen 2024_02:

SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2024_02');
Copy
+-------------------------------------------------+
| SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2024_02') |
|-------------------------------------------------|
| ENABLED                                         |
+-------------------------------------------------+

Deaktivieren eines Verhaltensänderungs-Bundles in Ihrem Konto

Um eine bestimmte Verhaltensänderung in Ihrem Konto zu deaktivieren, rufen Sie die Funktion SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE auf. So deaktivieren Sie beispielsweise das Bundle mit dem Namen 2024_02:

SELECT SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE('2024_02');
Copy
+-------------------------------------------------+
| SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE('2024_02')|
|-------------------------------------------------|
| DISABLED                                        |
+-------------------------------------------------+

Ermitteln der aktuellen Version Ihres Kontos

Um die aktuelle Version von Snowflake in Ihrem Konto zu prüfen, rufen Sie die Funktion CURRENT_VERSION auf. Beispiel:

SELECT CURRENT_VERSION();
Copy
+-------------------+
| CURRENT_VERSION() |
|-------------------|
| 8.5.1             |
+-------------------+
Copy

Abmildern der Aktualisierung der Rückgabewerte von Maskierungsrichtlinien

In einem zukünftigen Verhaltensänderungs-Release-Bundle plant Snowflake die Rückgabe von Werten für Länge, Genauigkeit und Dezimalstellenzahl in Bedingungen von Maskierungsrichtlinien (zusammen: „Aktualisierung der Rückgabewerte“). Wenn diese Aktualisierung der Rückgabewerte vorgenommen wird, schlägt eine Abfrage auf einer Spalte, die durch eine Maskierungsrichtlinie geschützt ist, fehl, wenn die folgenden Bedingungen erfüllt sind:

  • Das Bundle ist aktiviert.

  • Die Maskierungsrichtlinienbedingungen geben einen Wert zurück, dessen Länge, Dezimalstellenzahl oder Genauigkeit größer ist als die Länge, Dezimalstellenzahl oder Genauigkeit der Spalte, der die Maskierungsrichtlinie zugewiesen ist. Beispiel:

    Richtlinie erstellen:

    CREATE MASKING POLICY MP AS (s string)
    RETURNS STRING -> 'abcdef';
    
    Copy

    Richtlinie zuweisen:

    CREATE TABLE t(col1 string(2));
    
    ALTER TABLE t MODIFY COLUMN col1 SET MASKING POLICY mp;
    
    Copy

    Spalte abfragen (schlägt fehl):

    SELECT * FROM t;
    
    Copy

Um die Auswirkungen dieser Änderung zu ermitteln und genügend Zeit für die Aktualisierung der Bedingungen für die Maskierungsrichtlinie zum Schutz der Daten zu haben, fragen Sie die Ansicht SNOWFLAKE.BCR_ROLLOUT.BCR_2022_07_DDM_ROLLOUT ab, um zu verstehen, wie sich die zukünftige Aktualisierung der Rückgabewerte auf Ihr Konto auswirken.

Die Ansicht „BCR_2022_07_DDM_ROLLOUT“ ist temporär. Snowflake wird die Ansicht entfernen, wenn die Aktualisierung der Rückgabewerte in einem zukünftigen Verhaltensänderungs-Bundle allgemein verfügbar wird. Ab diesem Zeitpunkt wird es nicht mehr möglich sein, die Ansicht abzufragen, um die betroffenen Spalten und Richtlinien zu bestimmen oder um zu verhindern, dass die Spaltenabfrage oder die Zuweisungsoperation von Maskierungsrichtlinien aufgrund der Aktualisierung der Rückgabewerte fehlschlägt.

Die Ansicht erfasst Daten ab Juli 2022. Wenn eine Abfrage in der Ansicht relativ lange dauert, können Sie die Sitzungsvariablen für Start- und Enddatum mit einem SET-Befehl angeben. Diese Variablen helfen dabei, die Anzahl der auszuwertenden Zeilen bei der Abfrage der Ansicht zu reduzieren. Beispiel:

SET START_DATE = '2023-02-28';
SET END_DATE = '2023-11-30';
Copy

Maskierungsrichtlinie und Spaltenzuordnungen identifizieren

Gehen Sie wie folgt vor, um die Ansicht abzufragen und die anstehenden Änderungen der Rückgabewerte abzumildern:

  1. Fragen Sie die Ansicht SNOWFLAKE.BCR_ROLLOUT.BCR_2022_07_DDM_ROLLOUT ab. Beispiel:

    USE ROLE ACCOUNTADMIN;
    SET START_DATE = '2023-02-28';
    SET END_DATE = '2023-11-30';
    SELECT * FROM SNOWFLAKE.BCR_ROLLOUT.BCR_2022_07_DDM_ROLLOUT;
    
    Copy
  2. Werten Sie die Spalte REASON (siehe Abschnitt Referenz zur Ansicht „BCR_2022_07_DDM_ROLLOUT“) aus, um festzustellen, welche Aktualisierung an den Bedingungen der Maskierungsrichtlinie vorgenommen werden muss.

  3. Aktualisieren Sie die Maskierungsrichtlinienbedingungen mit einer ALTER MASKING POLICY-Anweisung, um sicherzustellen, dass die Spaltendaten geschützt bleiben und dass die Richtlinienzuweisungsoperationen oder Abfragen geschützter Spalten nicht fehlschlagen.

  4. Testen Sie die neuen Richtlinienbedingungen, indem Sie die Tabellenspalten abfragen, denen die Maskierungsrichtlinien zugewiesen sind.

Referenz zur Ansicht „BCR_2022_07_DDM_ROLLOUT“

In der Ansicht „BCR_2022_07_DDM_ROLLOUT“ (im Schema SNOWFLAKE.BCR_ROLLOUT) sind Informationen ab dem 15. Juli 2022 erfasst. Sie enthält die folgenden Spalten:

Spalte

Datentyp

Beschreibung

POLICY_NAME

VARCHAR

Der Name der Richtlinie.

POLICY_ID

NUMBER

Interner/vom System generierter Bezeichner für die Richtlinie.

POLICY_SCHEMA

VARCHAR

Das übergeordnete Schema der Richtlinie.

POLICY_DATABASE

VARCHAR

Die übergeordnete Datenbank der Richtlinie.

POLICY_BODY

VARIANT

Die Bedingungen der Richtlinie zur Maskierung oder Demaskierung der Spaltendaten.

COLUMN_NAME

VARCHAR

Der Name der Spalte, die die Richtlinie enthält.

TABLE_NAME

VARCHAR

Der Name der Tabelle.

TABLE_ID

NUMBER

Interner/systemgenerierter Bezeichner für die Tabelle.

TABLE_SCHEMA

VARCHAR

Das übergeordnete Schema der Richtlinie.

TABLE_DATABASE

VARCHAR

Die übergeordnete Datenbank der Richtlinie.

REASON

VARCHAR

Möglicher Grund für das Zuordnungsproblem.

Die Spalte REASON kann einen der folgenden Werte haben, die in der folgenden Tabelle in der Spalte REASON_MESSAGE angegeben sind. Die zusätzlichen Spalten in der nachstehenden Tabelle sollen Administratoren bei der Entscheidung helfen, wie die Spalte REASON zu interpretieren ist und wie die Bedingungen der Maskierungsrichtlinie zu aktualisieren sind:

Meldung mit dem Grund

Ursache

Aktion

POLICY_ASSOCIATION_ON_NOT_NULL_COLUMN

Einer NOT NULL-Spalte ist eine Maskierungsrichtlinie zugewiesen.

Stellen Sie sicher, dass keine der Maskierungsrichtlinienbedingungen in den Richtlinienbedingungen einen NULL-Wert zurückgibt.

LENGTH_MISMATCH

Eine Maskierungsrichtlinie, die einer Spalte zugewiesen ist, deren Datentyp VARCHAR oder BINARY ist, gibt Daten zurück, deren Länge größer ist als die Länge der Spalte.

Ändern Sie die Maskierungsrichtlinienbedingungen, um sicherzustellen, dass die Länge des Rückgabewerts kleiner oder gleich der Länge der Spalte ist.

PRECISION_MISMATCH

Eine Maskierungsrichtlinie, die einer Spalte zugewiesen ist, deren Datentyp NUMBER ist, gibt Daten zurück, deren Genauigkeit größer ist als die Genauigkeit der Spalte.

Ändern Sie die Richtlinienbedingungen, um sicherzustellen, dass die Genauigkeit des Rückgabewerts kleiner oder gleich der Genauigkeit der Spalte ist.

SCALE_MISMATCH

Eine Richtlinie, die einer Spalte zugewiesen ist, deren Datentyp NUMBER oder TIMESTAMP ist, gibt Daten zurück, deren Dezimalstellenzahl größer ist als die Dezimalstellenzahl der Spalte.

Ändern Sie die Richtlinienbedingungen, um sicherzustellen, dass die Dezimalstellenzahl des Rückgabewerts kleiner oder gleich der Dezimalstellenzahl der Spalte ist.

Unknown mismatch. Manual investigation recommended.

Die Maskierungsrichtlinie gibt einen NULL-Wert zurück, oder die Maskierungsrichtlinienbedingungen enthalten eine Unterabfrage.

Ändern Sie die Richtlinie so, dass der Rückgabewert kleiner oder gleich der Länge, Genauigkeit oder Dezimalstellenzahl der Spalte ist.