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 aktiviert ist und wie Sie dieses aktivieren oder deaktivieren können.
Unter diesem Thema:
Ü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 ist bundle_name
der Name des Verhaltensänderungs-Bundles im Format YYYY_NN
, der im Dokument Änderungsprotokoll für Verhaltensänderungen zu finden ist.
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 aktiviert ist, verwenden Sie die Funktion SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS mit bundle_name
als Argument:
SELECT SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS('2021_02'); +-------------------------------------------------+ | SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS('2021_02') | |-------------------------------------------------| | DISABLED | +-------------------------------------------------+
Aktivieren eines Verhaltensänderungs-Bundles in Ihrem Konto¶
Um eine bestimmte Verhaltensänderung in Ihrem Konto zu aktivieren, verwenden Sie die Funktion SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE, und geben Sie dabei in bundle_name
den Namen des Bundles an, das die Änderung enthält:
SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2021_02'); +-------------------------------------------------+ | SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2021_02') | |-------------------------------------------------| | ENABLED | +-------------------------------------------------+
Deaktivieren eines Verhaltensänderungs-Bundles in Ihrem Konto¶
Um eine bestimmte Verhaltensänderung in Ihrem Konto zu deaktivieren, verwenden Sie die Funktion SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE, und geben Sie dabei in bundle_name
den Namen des Bundles an, das die Änderung enthält:
SELECT SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE('2021_02'); +-------------------------------------------------+ | SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE('2021_02')| |-------------------------------------------------| | DISABLED | +-------------------------------------------------+
Abmildern der Aktualisierung der Rückgabewerte von Maskierungsrichtlinien¶
In diesem Abschnitt wird die Aktualisierung der NULL-Rückgabewerte und der Rückgabewerte für Länge, Genauigkeit und Skalierung in Bedingungen von Maskierungsrichtlinien (zusammen: „Aktualisierung der Rückgabewerte“) beschrieben, und es wird beschrieben, wie sich diese Aktualisierung der Rückgabewerte unter Verwendung der temporären Ansicht „BCR_2022_07_DDM_ROLLOUT“ (im Schema SNOWFLAKE.BCR_ROLLOUT) abmildern lässt.
Während der Testphase des Verhaltensänderungs-Bundles 2022_08
schlagen Abfragen in Snowflake fehl, wenn Folgendes gilt:
Das Verhaltensänderungs-Bundle ist aktiviert und
Eine Spalte mit Maskierungsrichtlinie wird unter folgenden Bedingungen abgefragt:
Die Maskierungsrichtlinienbedingungen geben NULL für ein Spaltenfeld zurück, das NOT NULL ist.
Zum Beispiel gibt die Maskierungsrichtlinie den Wert NULL für ein Feld zurück, das eine Ganzzahl sein sollte, weil der Datentyp der Spalte INTEGER ist.
Die Maskierungsrichtlinienbedingungen geben einen Wert zurück, dessen Länge, Skalierung oder Genauigkeit größer ist als die Länge, Skalierung oder Genauigkeit der Spalte, der die Maskierungsrichtlinie zugewiesen ist. Beispiel:
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, stellt Snowflake ein spezielles Schema und eine spezielle Ansicht innerhalb der freigegebenen SNOWFLAKE-Datenbank bereit, die eine Zuordnung von Tabellenspalte, Maskierungsrichtlinie und einem Grund dafür enthält, warum eine Abfrage auf der durch die Maskierungsrichtlinie geschützten Spalte möglicherweise fehlgeschlagen ist.
Beachten Sie, dass die Aktualisierung der Rückgabewerte standardmäßig aktiviert wird, wenn Verhaltensänderungs-Bundle 2023_01
(d. h. im Opt-out-Zeitraum von Verhaltensänderungs-Bundle 2022_08
) veröffentlicht wird. Während des Opt-out-Zeitraums besteht die Möglichkeit zum Deaktivieren des Verhaltensänderungs-Bundles, um die Auswirkungen der Aktualisierung der Rückgabewerte weiter zu verzögern.
Die Ansicht „BCR_2022_07_DDM_ROLLOUT“ ist temporär. Snowflake entfernt die Ansicht, wenn die Aktualisierung der Rückgabewerte im Zuge der Veröffentlichung von Verhaltensänderungs-Bundle 2023_02
allgemein aktiviert wird. Ab diesem Zeitpunkt ist es nicht mehr möglich, 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.
Weitere Informationen zum Verhaltensänderungsprozess finden Sie unter Richtlinien zu Verhaltensänderungen.
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_2022_07_DDM_ROLLOUT
ab. Beispiel:use role accountadmin; select * from snowflake.bcr_rollout.bcr_2022_07_ddm_rollout;
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.
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 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 |
TEXT |
Der Name der Richtlinie. |
POLICY_ID |
NUMBER |
Interner/vom System generierter Bezeichner für die Richtlinie. |
POLICY_SCHEMA |
TEXT |
Das übergeordnete Schema der Richtlinie. |
POLICY_DATABASE |
TEXT |
Die übergeordnete Datenbank der Richtlinie. |
POLICY_BODY |
TEXT |
Die Bedingungen der Richtlinie zur Maskierung oder Demaskierung der Spaltendaten. |
COLUMN_NAME |
TEXT |
Der Name der Spalte, die die Richtlinie enthält. |
TABLE_NAME |
TEXT |
Der Name der Tabelle. |
TABLE_ID |
NUMBER |
Interner/systemgenerierter Bezeichner für die Tabelle. |
TABLE_SCHEMA |
TEXT |
Das übergeordnete Schema der Richtlinie. |
TABLE_DATABASE |
TEXT |
Die übergeordnete Datenbank der Richtlinie. |
REASON |
TEXT |
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 Skalierung größer ist als die Skalierung der Spalte. |
Ändern Sie die Richtlinienbedingungen, um sicherzustellen, dass die Skalierung des Rückgabewerts kleiner oder gleich der Skalierung 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 Skalierung der Spalte ist. |