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');
+-------------------------------------------------+
| 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();
+--------------------------------------------------------------------------------------------------------------+
| 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');
+-------------------------------------------------+
| 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');
+-------------------------------------------------+
| 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();+-------------------+ | CURRENT_VERSION() | |-------------------| | 8.5.1 | +-------------------+
Abmildern der Aktualisierung der Rückgabewerte von Maskierungsrichtlinien¶
Das 2024_04
-Bundle enthält Änderungen der Werte für Präzision und Skalierung in den Bedingungen der Maskierungsrichtlinie (zusammenfassend: „Aktualisierungen der Rückgabewerte“). Eine Abfrage für eine Spalte, die durch eine Maskierung geschützt ist, schlägt fehl, wenn die folgenden Bedingungen erfüllt sind:
Das Bundle ist aktiviert.
Die Bedingungen der Maskierungsrichtlinie geben einen Wert zurück, dessen Genauigkeit größer als die Genauigkeit der Spalte ist, der die Maskierungsrichtlinie zugewiesen ist.
Wenn die Dezimalstellenzahl des Rückgabewerts größer ist als die Dezimalstellenzahl der Spalte, wird der Wert so abgeschnitten, dass er der Dezimalstellenzahl der Spalte übereinstimmt.
Wenn Sie die neue Verhaltensweise auf eine bereits vorhandene Richtlinie anwenden möchten, erstellen Sie eine neue Maskierungsrichtlinie und ersetzen die bereits vorhandene Richtlinie mit dem FORCE
Schlüsselwort.
Wenn das Bundle aktiviert ist, können Sie das Verhalten wie folgt testen:
Richtlinie erstellen:
CREATE MASKING POLICY MP AS (s string) RETURNS STRING -> 'abcdef';
Richtlinie zuweisen:
CREATE TABLE t(col1 string(2)); ALTER TABLE t MODIFY COLUMN col1 SET MASKING POLICY mp;
Spalte abfragen (schlägt fehl):
SELECT * FROM t;
Um die Auswirkungen dieser Änderung zu ermitteln und genügend Zeit für die Aktualisierung der Maskierungsrichtlinienbedingungen zum Schutz der Daten zu haben, können Sie die Ansicht SNOWFLAKE.BCR_ROLLOUT.BCR_2024_03_DDM_ROLLOUT abfragen, um zu verstehen, wie sich die zukünftige Aktualisierung der Rückgabewerte auf Ihr Konto auswirken.
Die Ansicht BCR_2024_03_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 März 2024. 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 DDM_CASTING_BCR_START_DATE = '2024-03-01'; SET DDM_CASTING_BCR_END_DATE = '2024-04-03';
Maskierungsrichtlinie und Spaltenzuordnungen identifizieren¶
Gehen Sie wie folgt vor, um die Ansicht abzufragen und die anstehenden Änderungen der Rückgabewerte abzumildern:
Fragen Sie die Ansicht SNOWFLAKE.BCR_ROLLOUT.BCR_2024_03_DDM_ROLLOUT ab. Beispiel:
USE ROLE ACCOUNTADMIN; SET DDM_CASTING_BCR_START_DATE = '2024-03-01'; SET DDM_CASTING_BCR_END_DATE = '2024-04-03'; SELECT * FROM SNOWFLAKE.BCR_ROLLOUT.BCR_2024_03_DDM_ROLLOUT;
Prüfen Sie die Spalte REASON im Abschnitt Referenz zu Ansicht BCR_2024_03_DDM_ROLLOUT, um zu ermitteln, welche Aktualisierung an den Maskierungsrichtlinienbedingungen vorgenommen werden muss.
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.
Testen Sie die neuen Richtlinienbedingungen, indem Sie die Tabellenspalten abfragen, denen die Maskierungsrichtlinien zugewiesen sind.
Referenz zu Ansicht BCR_2024_03_DDM_ROLLOUT¶
In der Ansicht BCR_2024_03_DDM_ROLLOUT (im Schema SNOWFLAKE.BCR_ROLLOUT) sind Informationen ab dem 15. Juli 2022 erfasst. Sie enthält die folgenden Spalten:
Spalte |
Datentyp |
Beschreibung |
---|---|---|
|
VARCHAR |
Der Name der Richtlinie. |
|
NUMBER |
Interner/vom System generierter Bezeichner für die Richtlinie. |
|
VARCHAR |
Das übergeordnete Schema der Richtlinie. |
|
VARCHAR |
Die übergeordnete Datenbank der Richtlinie. |
|
VARIANT |
Die Bedingungen der Richtlinie zur Maskierung oder Demaskierung der Spaltendaten. |
|
VARCHAR |
Der Name der Spalte, die die Richtlinie enthält. |
COLUMN_TYPE |
VARCHAR |
Der Datentyp der Spalte. |
COLUMN_LENGTH |
NUMBER |
Die Länge der Spalte, für die die Richtlinie gilt, oder |
COLUMN_PRECISION |
NUMBER |
Die Genauigkeit der Spalte, für die die Richtlinie gilt, oder |
COLUMN_SCALE |
NUMBER |
Die Dezimalstellenzahl der Spalte, für die die Richtlinie gilt, oder |
TABLE_NAME |
VARCHAR |
Der Name der Tabelle. |
|
NUMBER |
Interner/systemgenerierter Bezeichner für die Tabelle. |
|
VARCHAR |
Das übergeordnete Schema der Richtlinie. |
|
VARCHAR |
Die übergeordnete Datenbank der Richtlinie. |
|
VARCHAR |
Der Typ der Tabelle. Eine der folgenden Optionen: |
|
VARCHAR |
Möglicher Grund für das Zuordnungsproblem. Eine der folgenden Optionen: |
LARGEST_MASKED_SIZE |
NUMBER |
Die maximale Länge, die Dezimalstellenzahl oder die Genauigkeit, die ein maskierter Wert haben kann, basierend auf der der Spalte zugewiesenen Maskierungsrichtlinie. |