Gestion des changements de comportement

Ce document explique comment vérifier si un bundle spécifique de changement de comportement est activé dans votre compte et comment l’activer ou le désactiver.

Dans ce chapitre :

Vue d’ensemble

Snowflake met en œuvre des changements de comportement tous les mois dans des bundles inclus dans des versions planifiées régulièrement. Au cours de la période d’essai et de la période d’exclusion de chaque bundle de changement de comportement, vous pouvez activer ou désactiver le bundle dans votre compte. Ce document explique comment vérifier si un bundle particulier est activé dans votre compte et comment l’activer ou le désactiver.

Dans ce document, bundle_name est le nom du bundle de changements de comportement sous la forme YYYY_NN, accessible dans le Journal des changements de comportement.

Note

Les changements de comportement dans les bundles ne peuvent pas être activés/désactivés individuellement. Pour activer/désactiver une modification de comportement, vous devez activer/désactiver le bundle contenant la modification.

Vérifier le statut d’un bundle de changement de comportement sur votre compte

Pour vérifier si un bundle de changement de comportement spécifique est activé sur votre compte, utilisez la fonction SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS avec le bundle_name comme argument :

SELECT SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS('2021_02');

+-------------------------------------------------+
| SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS('2021_02') |
|-------------------------------------------------|
| DISABLED                                        |
+-------------------------------------------------+
Copy

Activation d’un bundle de changements de comportement dans votre compte

Pour activer un changement de comportement particulier dans votre compte, utilisez la fonction SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE et spécifiez le bundle_name qui contient le changement :

SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2021_02');

+-------------------------------------------------+
| SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2021_02') |
|-------------------------------------------------|
| ENABLED                                         |
+-------------------------------------------------+
Copy

Désactiver un bundle de changement de comportement dans votre compte

Pour désactiver un changement de comportement particulier dans votre compte, utilisez la fonction SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE et spécifiez le bundle_name qui contient le changement :

SELECT SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE('2021_02');

+-------------------------------------------------+
| SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE('2021_02')|
|-------------------------------------------------|
| DISABLED                                        |
+-------------------------------------------------+
Copy

Atténuation des mises à jour des valeurs de retour des politiques de masquage

Dans une futur bundle de changements de comportement, Snowflake prévoit de renvoyer des valeurs pour la longueur, la précision et l’échelle dans les conditions de la politique de masquage (collectivement : « mises à jour des valeurs de retour »). Lorsque ces mises à jour des valeurs de retour sont effectuées, une requête sur une colonne protégée par une politique de masquage échoue lorsque les conditions suivantes sont réunies :

  • La bundle est activé.

  • Les conditions de la politique de masquage renvoient une valeur dont la longueur, l’échelle ou la précision est supérieure à la longueur, l’échelle ou la précision de la colonne à laquelle la politique de masquage est affectée. Par exemple :

    Créer une politique :

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

    Assigner la politique :

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

    Interroger la colonne (échoue) :

    SELECT * FROM t;
    
    Copy

Pour déterminer l’impact de ce changement et disposer de suffisamment de temps pour mettre à jour les conditions de la politique de masquage afin de protéger les données, interrogez la vue SNOWFLAKE.BCR_ROLLOUT.BCR_2022_07_DDM_ROLLOUT pour comprendre comment les futures mises à jour de la valeur de retour affectent votre compte.

La vue BCR_2022_07_DDM_ROLLOUT est temporaire. Snowflake supprimera la vue lorsque les mises à jour des valeurs de retour seront activées de manière générale dans un futur bundle de changements de comportement. À ce stade, vous ne pourrez pas interroger la vue pour déterminer les colonnes et les politiques affectées, ni éviter les échecs des opérations d’interrogation des colonnes ou d’affectation des politiques de masquage en raison des mises à jour des valeurs de retour.

Politique de masquage d’identification et associations de colonnes

Pour interroger la vue et atténuer les changements de valeur de retour à venir, procédez comme suit :

  1. Interrogez la vue SNOWFLAKE.BCR_ROLLOUT.BCR_2022_07_DDM_ROLLOUT. Par exemple :

    USE ROLE ACCOUNTADMIN;
    
    SELECT * FROM SNOWFLAKE.BCR_ROLLOUT.BCR_2022_07_DDM_ROLLOUT;
    
    Copy
  2. Évaluez la colonne REASON de la section BCR_2022_07_DDM_ROLLOUT Afficher référence pour déterminer la mise à jour à apporter aux conditions de la politique de masquage.

  3. Mettez à jour les conditions de la politique de masquage avec une instruction ALTER MASKING POLICY pour que les données de la colonne restent protégées et que les opérations d’affectation de la politique ou les requêtes sur les colonnes protégées n’échouent pas.

  4. Testez les nouvelles conditions de la politique en interrogeant les colonnes de la table auxquelles sont attribuées les politiques de masquage.

BCR_2022_07_DDM_ROLLOUT Afficher référence

La vue BCR_2022_07_DDM_ROLLOUT (dans le schéma SNOWFLAKE.BCR_ROLLOUT) enregistre les informations à partir du 15 juillet 2022 et contient les colonnes suivantes :

Colonne

Type de données

Description

POLICY_NAME

TEXT

Nom de la politique.

POLICY_ID

NUMBER

Identificateur interne/généré par le système pour la politique.

POLICY_SCHEMA

TEXT

Le schéma parent de la politique.

POLICY_DATABASE

TEXT

La base de données parente de la politique.

POLICY_BODY

TEXT

Les conditions de la politique pour masquer ou démasquer les données de la colonne.

COLUMN_NAME

TEXT

Le nom de la colonne qui a la politique.

TABLE_NAME

TEXT

Le nom de la table.

TABLE_ID

NUMBER

Identificateur interne/généré par le système pour la table.

TABLE_SCHEMA

TEXT

Le schéma parent de la table.

TABLE_DATABASE

TEXT

La base de données parente de la table.

REASON

TEXT

Raison possible de la disconcordance.

La colonne REASON peut avoir l’une des valeurs suivantes, comme spécifié par la colonne REASON_MESSAGE dans la table suivante. Les colonnes supplémentaires de la table ci-dessous sont destinées à aider les administrateurs à décider comment interpréter la colonne REASON et mettre à jour les conditions de la politique de masquage :

Message concernant le motif

Cause

Action

POLICY_ASSOCIATION_ON_NOT_NULL_COLUMN

Une politique de masquage est attribuée à une colonne NOT NULL.

Vérifiez que les conditions de la politique de masquage ne renvoient pas une valeur NULL n’importe où dans les conditions de la politique.

LENGTH_MISMATCH

Une politique de masquage affectée à une colonne dont le type de données est VARCHAR ou BINARY renvoie des données dont la longueur est supérieure à celle de la colonne.

Modifiez les conditions de la politique de masquage pour vous assurer que la longueur de la valeur de retour est inférieure ou égale à la longueur de la colonne.

PRECISION_MISMATCH

Une politique de masquage affectée à une colonne dont le type de données est NUMBER renvoie une donnée de précision supérieure à la précision de la colonne.

Modifiez les conditions de la politique pour vous assurer que la précision de la valeur de retour est inférieure ou égale à la précision de la colonne.

SCALE_MISMATCH

Une politique affectée à une colonne dont le type de données est NUMBER ou TIMESTAMP renvoie des données dont l’échelle est supérieure à celle de la colonne.

Modifiez les conditions de la politique pour vous assurer que l’échelle de la valeur de retour est inférieure ou égale à l’échelle de la colonne.

Unknown mismatch. Manual investigation recommended.

La politique de masquage renvoie une valeur NULL ou les conditions de la politique de masquage contiennent une sous-requête.

Modifiez la politique pour que la valeur de retour soit inférieure ou égale à la longueur, la précision ou l’échelle de la colonne.