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                                        |
+-------------------------------------------------+

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                                         |
+-------------------------------------------------+

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                                        |
+-------------------------------------------------+

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

Cette section décrit les mises à jour des valeurs de retour NULL et des valeurs de retour pour la longueur, la précision et l’échelle dans les conditions de la politique de masquage (collectivement : « mises à jour des valeurs de retour »), et comment utiliser la vue temporaire nommée BCR_2022_07_DDM_ROLLOUT (dans le schéma SNOWFLAKE.BCR_ROLLOUT) pour atténuer ces mises à jour des valeurs de retour.

Au cours de la période de test du groupe de changement de comportement 2022_08, Snowflake fait échouer les requêtes lorsque les conditions suivantes sont réunies :

  • Le groupe de changement de comportement est activé, et

  • Interroger une colonne avec une politique de masquage lorsque :

    • Les conditions de la politique de masquage renvoient NULL pour un champ de colonne qui est NOT NULL.

      Par exemple, la politique de masquage renvoie NULL pour un champ qui devrait être un nombre entier parce que le type de données de la colonne est INTEGER.

    • 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';
      

      Assigner la politique :

      create table t(col1 string(2));
      
      alter table t modify column col1 set masking policy mp;
      

      Interroger la colonne (échoue) :

      select * from t;
      

Afin de déterminer l’impact de ce changement et de laisser suffisamment de temps pour mettre à jour les conditions de la politique de masquage pour protéger les données, Snowflake fournit un schéma et une vue spéciaux au sein de la base de données SNOWFLAKE partagée pour mapper la colonne de la table, la politique de masquage et une raison possible pour laquelle une requête sur une colonne protégée par la politique de masquage échoue.

Notez que les mises à jour des valeurs de retour seront activées par défaut dans le groupe de changement de comportement 2022_09 (c’est-à-dire la période d’ouverture du groupe de changement de comportement 2022_08). Pendant la période d’exclusion, l’option de désactivation du groupe de changement de comportement est disponible pour retarder davantage les effets des mises à jour des valeurs de retour.

La vue BCR_2022_07_DDM_ROLLOUT est temporaire. Snowflake supprimera la vue lorsque les mises à jour des valeurs de retour seront généralement activées dans le bundle de changement de comportement 2022_10. À ce stade, il ne sera plus possible d’interroger la vue pour déterminer les colonnes et les politiques affectées, ni d’é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.

Pour plus de détails sur le processus de changement de comportement, voir Politique de changement de comportement.

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;
    
  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.

Revenir au début