Classer automatiquement les données sensibles¶
La classification automatique des données sensibles est une fonction sans serveur qui permet de détecter et de baliser automatiquement les données sensibles. Cette fonctionnalité surveille en permanence les tables d’une base de données spécifique et classifie leurs colonnes à l’aide des catégories de classification natives et personnalisées.
La classification automatique des données sensibles permet aux ingénieurs et aux responsables des données d’effectuer les opérations suivantes :
Démontrer comment la classification automatique des tables répond aux besoins de gouvernance interne et de conformité.
Veiller à ce que les données sensibles soient correctement balisées.
Veiller à ce que les contrôles d’accès appropriés soient mis en place pour protéger les données sensibles.
Prise en main¶
Le workflow de base pour classer automatiquement les données sensibles est le suivant :
Créez un profil de classification qui contrôle la fréquence à laquelle les données sensibles d’une base de données sont automatiquement classifiées, y compris si les balises système doivent être automatiquement appliquées après la classification.
En option, utilisez le profil de classification pour mapper les balises définies par l’utilisateur aux balises du système, de sorte qu’une colonne contenant des données sensibles puisse être associée à une balise définie par l’utilisateur en fonction de sa classification.
En option, ajoutez un classificateur personnalisé au profil de classification afin que les données sensibles puissent être automatiquement classées avec des catégories sémantiques et de confidentialité définies par l’utilisateur.
Définissez le profil de classification d’une base de données pour que les tables de celle-ci soient automatiquement classifiées.
Pour des exemples de bout en bout de ce workflow, voir Exemples.
À propos des profils de classification¶
Un ingénieur des données crée un profil de classification en créant une instance de la CLASSIFICATION_PROFILEclasse :doc:` </sql-reference/snowflake-db-classes>` afin de définir les critères utilisés pour classifier automatiquement les tables d’une base de données. Ces critères comprennent :
Durée pendant laquelle une table doit exister avant d’être classée automatiquement.
Combien de temps avant que les tables précédemment classées ne soient reclassées ?
Si les balises du système et les balises personnalisées sont automatiquement ensemble sur les colonnes après la classification. Vous pouvez décider si vous souhaitez que Snowflake applique automatiquement les balises suggérées ou si vous préférez examiner les attributions de balises proposées, puis les appliquer vous-même.
Un mappage entre les balises de classification du système et les balises des objets définis par l’utilisateur afin que les balises définies par l’utilisateur puissent être appliquées automatiquement.
Lorsque l’ingénieur des données affecte le profil de classification à une base de données, les données sensibles des tables qui appartiennent à la base de données sont automatiquement classifiées selon la planification définie par le profil. Un ingénieur des données peut attribuer le même profil de classification à plusieurs bases de données, ou créer plusieurs profils de classification s’il est nécessaire de définir des critères de classification différents pour différentes bases de données.
Le processus de classification automatique des données nécessite l’accès aux données brutes de la table. Les données brutes comprennent les tables pour lesquelles une politique de masquage a été attribuée à une colonne. Cependant, Snowflake préserve l’intention de réglementer l’accès aux données protégées en utilisant un rôle interne pour classer automatiquement les données. Le rôle interne peut accéder aux données protégées par une politique de masquage, mais ce rôle n’est pas accessible aux utilisateurs.
Pour un exemple d’utilisation de la commande CREATE CLASSIFICATION_PROFILE pour créer un profil de classification, voir Exemples.
Exclusion d’objets de la classification automatique des données sensibles¶
Par défaut, Snowflake classifie automatiquement toutes les données sensibles dans une base de données pour laquelle un profil de classification est défini. Vous pouvez configurer Snowflake pour exclure les schémas, les tables ou les colonnes de la classification automatique afin qu’ils soient ignorés lors du processus de classification.
Pour plus d’informations, voir Exclusion de données de la classification automatique des données sensibles.
À propos du mappage des balises¶
Vous pouvez utiliser le profil de classification pour mapper les balises du système SEMANTIC_CATEGORY à une ou plusieurs balises d’objet. Ce mappage de balises permet d’attribuer automatiquement à une colonne contenant des données sensibles une balise définie par l’utilisateur en fonction de sa classification. Le mappage des balises peut être ajouté lors de la création du profil de classification ou ultérieurement en appelant la méthode <classification_profile_name>!SET_TAG_MAP.
Étant donné que les balises d’objet définies par l’utilisateur peuvent être associées à une politique de masquage, vous pouvez utiliser un mappage de balises pour activer le masquage automatique basé sur les balises. Si vous choisissez d’appliquer automatiquement des balises après la classification, vous pouvez automatiser l’ensemble du processus de protection des colonnes à l’aide d’une politique de masquage basée sur la classification des données. Lorsque de nouvelles données sont ajoutées à un schéma, les politiques de masquage basées sur les balises sont automatiquement affectées aux colonnes contenant des données sensibles.
Que vous définissiez le mappage des balises lors de la création du profil de classification ou après, le contenu du mappage est spécifié en tant qu’objet JSON. Cet objet JSON contient la clé 'column_tag_map', qui est un tableau d’objets spécifiant une balise définie par l’utilisateur, la valeur de la chaîne de cette balise et les catégories sémantiques auxquelles la balise est mappée. Une fois que le mappage de balises est associé à un profil de classification et que vous classez automatiquement les tables d’une base de données, la balise est affectée aux colonnes qui correspondent aux catégories sémantiques.
Voici un exemple de mappage de balises :
'tag_map': {
'column_tag_map': [
{
'tag_name':'tag_db.sch.pii',
'tag_value':'Highly Confidential',
'semantic_categories':[
'NAME',
'NATIONAL_IDENTIFIER'
]
},
{
'tag_name': 'tag_db.sch.pii',
'tag_value':'Confidential',
'semantic_categories': [
'EMAIL'
]
}
]
}
Sur la base de ce mappage, si vous avez une colonne d’adresses e-mail et que le processus de classification détermine que la colonne contient ces adresses, la balise tag_db.sch.pii = 'Confidential' est ensemble sur la colonne contenant les adresses e-mail.
Si votre mappage de balises comprend plusieurs objets JSON qui mappent des balises, des valeurs de balises et des valeurs de catégories, l’ordre des objets JSON détermine quelle balise et quelle valeur doivent être définies sur la colonne en cas de conflit. Spécifiez les objets JSON dans l’ordre d’affectation souhaité, de gauche à droite, ou de haut en bas si vous formatez JSON.
Astuce
Chaque objet du champ column_tag_map n’a qu’une seule clé obligatoire : tag_name. Si vous omettez les clés tag_value et semantic_categories, la balise définie par l’utilisateur est appliquée à chaque colonne à laquelle la balise du système SEMANTIC_CATEGORY est appliquée, et la valeur de la balise définie par l’utilisateur correspondra à la valeur de la balise SEMANTIC_CATEGORY pour une colonne donnée.
En cas de conflit entre une balise attribuée manuellement et une balise appliquée par la classification automatique, une erreur se produit. Pour obtenir des informations sur le suivi de ces erreurs, voir Résolution des problèmes.
Mise en œuvre de la classification personnalisée¶
Snowflake vous permet de définir des classificateurs personnalisés qui utilisent une logique personnalisée pour identifier et classer les données sensibles. Par exemple, vous pouvez créer un identificateur personnalisé qui utilise une expression régulière pour identifier les catégories ICD-10 et les classer dans la catégorie sémantique ICD_10_CODES.
Après avoir créé un classificateur personnalisé, vous pouvez l’ajouter au profil de classification afin que Snowflake classe automatiquement les données en fonction de sa logique. Vous pouvez ajouter le classificateur personnalisé lors de la création du profil de classification ou en appelant la méthode <classification_profile_name>!SET_CUSTOM_CLASSIFIERS.
L’ajout de classificateurs personnalisés et d’un mappage de balises dans votre profil de classification vous fournit une solution de gouvernance puissante. Cela vous permet de classifier automatiquement les données en fonction de votre connaissance de ce qui est sensible et d’appliquer une balise définie par l’utilisateur que vous pouvez suivre. Si vous utilisez cette balise définie par l’utilisateur pour mettre en œuvre un masquage basé sur des balises, vos données sensibles spécifiques à un domaine sont automatiquement protégées par une politique de masquage lorsqu’elles sont ajoutées à une base de données.
Important
La classification automatique enregistre la définition d’un classificateur personnalisé, et non une référence. Si vous modifiez le classificateur personnalisé, vous devez utiliser la méthode SET_CUSTOM_CLASSIFIERS pour mettre à jour le profil de classification avec la nouvelle définition.
Définir un profil de classification sur une base de données¶
Vous mettez en œuvre la classification automatique des données sensibles en configurant un profil de classification sur une base de données. Une fois que vous avez configuré le profil de classification sur la base de données, toutes les tables et vues de cette base de données sont automatiquement contrôlées par la classification des données sensibles.
Vous pouvez également configurer une classification sur un schéma. Si vous configurez un profil de classification sur un schéma qui existe dans une base de données qui est également associée à un profil de classification, le profil configuré sur le schéma remplace le profil configuré sur la base de données.
Pour définir un profil de classification, utilisez une commande ALTER DATABASE ou ALTER SCHEMA pour définir le paramètre CLASSIFICATION_PROFILE. Par exemple, pour configurer un profil de classification my_profile afin que toutes les tables et vues dans la base de données my_db soient contrôlées par la classification automatique des données sensibles, exécutez la commande suivante :
ALTER DATABASE my_db
SET CLASSIFICATION_PROFILE = 'governance_db.classify_sch.my_profile';
Classification des vues¶
Par défaut, la classification des données sensibles ne classifie pas les données dans les vues. Si vous ne modifiez pas les paramètres par défaut, seules les tables sont classifiées.
La classification des vues peut coûter plus que la classification des tables. Le coût supplémentaire varie en fonction de la complexité de la requête qui a créé la vue. Les vues matérialisées n’entraînent pas les mêmes coûts supplémentaires que les autres vues.
La clé classify_views dans l’objet de configuration d’un profil de classification détermine si les vues sont classifiées. Le profil de classification suivant modifie les paramètres par défaut de sorte que les vues soient classifiées :
CREATE OR REPLACE SNOWFLAKE.DATA_PRIVACY.CLASSIFICATION_PROFILE
my_classification_profile(
{
'minimum_object_age_for_classification_days': 0,
'maximum_classification_validity_days': 30,
'classify_views': true
});
Vous pouvez également activer ou désactiver la classification des vues à l’aide de la méthode SET_CLASSIFY_VIEWS.
Déterminer les objets contrôlés par la classification automatique¶
Vous pouvez déterminer quelles données sont contrôlées par la classification automatique des données sensibles en répertoriant les bases de données et les schémas associés à un profil de classification. Si une base de données ou un schéma est associé à un profil de classification, toutes les tables et vues de cette entité sont automatiquement classées selon les critères définis dans le profil.
Utilisez la fonction SYSTEM$SHOW_SENSITIVE_DATA_MONITORED_ENTITIES pour répertorier les bases de données et les schémas associés à un profil de classification. Vous pouvez répertorier uniquement les bases de données, uniquement les schémas ou l’ensemble des bases de données et schémas. Par exemple, pour répertorier l’ensemble des bases de données et schémas associés à un profil de classification, exécutez la commande suivante :
SELECT SYSTEM$SHOW_SENSITIVE_DATA_MONITORED_ENTITIES();
La sortie répertorie le nom de la base de données ou du schéma, son type et le profil de classification. Voici un exemple de la sortie :
[
{"name":"HR_DB","type":"DATABASE","profile_name":"GOV_DB.CLASSIFY_SCH.MY_CLASSIFICATION_PROFILE"},
{"name":"SALES_DB.SCH1","type":"SCHEMA","profile_name":"GOV_DB.CLASSIFY_SCH.TEST_PROFILE"}
]
Voir les résultats de la classification automatique¶
Vous pouvez voir les résultats de la classification automatique de la manière suivante :
Appelez la procédure stockée SYSTEM$GET_CLASSIFICATION_RESULT. Par exemple :
CALL SYSTEM$GET_CLASSIFICATION_RESULT('mydb.sch.t1');
Vous ne pouvez pas renvoyer de résultats tant que le processus de classification n’est pas terminé. Le processus de classification automatique ne démarre qu’une heure après la configuration du profil de classification sur la base de données.
Utilisez un rôle auquel est attribué le rôle de base de données SNOWFLAKE.GOVERNANCE_VIEWER pour interroger la vue DATA_CLASSIFICATION_LATEST. Par exemple :
SELECT * FROM snowflake.account_usage.data_classification_latest;
Les résultats peuvent n’apparaître que trois heures après la fin de la classification.
Limitations¶
Les profils de classification ne peuvent pas être définis sur un compte de lecteur.
Un seul profil de classification peut être configuré sur une base de données ou un schéma.
Un profil de classification ne peut pas être configuré sur plus de 1 000 bases de données.
Un profil de classification ne peut pas être configuré directement sur plus de 10 000 schémas.
Un maximum de 100 millions de tables peuvent être classées dans un schéma.
Vous ne pouvez pas classer automatiquement une table si elle présente l’une des caractéristiques suivantes :
Plus de 10 000 colonnes.
Une colonne dont le nom comporte plus de 255 caractères.
Une colonne dont le nom comprend le caractère
$.Elle provient d’une action.
Contrôle d’accès¶
Cette section décrit les privilèges et les rôles qui vous permettent de travailler avec les profils de classification et d’activer la classification automatique des données sensibles.
Tâche |
Privilèges/rôles exigés |
Remarques |
|---|---|---|
Créer un profil de classification |
Rôle de base de données SNOWFLAKE.CLASSIFICATION_ADMIN |
Pour des informations sur l’attribution de ce rôle de base de données à d’autres rôles, voir À l’aide des rôles de base de données SNOWFLAKE. |
CREATESNOWFLAKE.DATA_PRIVACY.CLASSIFICATION_PROFILE sur le schéma |
Vous devez disposer de ce privilège sur le schéma dans lequel vous souhaitez créer l’instance de profil de classification. |
|
USAGE sur la base de données et le schéma |
Vous devez disposer de privilèges sur le schéma dans lequel vous souhaitez créer l’instance de profil de classification. |
|
Définir le profil de classification d’une base de données/d’un schéma |
Un des éléments suivants :
|
Par défaut, le propriétaire de la base de données/du schéma a le privilège EXECUTE AUTO CLASSIFICATION sur la base de données/le schéma. |
Tout privilège sur la base de données du schéma |
Si vous définissez un profil de classification sur un schéma, vous devez disposer d’au moins un privilège sur la base de données qui contient ce schéma. |
|
Tout privilège sur la base de données/le schéma |
Vous devez disposer d’au moins un privilège sur la base de données/le schéma qui contient la table que vous souhaitez classer automatiquement. Le privilège EXECUTE AUTO CLASSIFICATION répond à cette exigence. |
|
Un des éléments suivants :
|
Pour des informations sur l’attribution du rôle d’instance PRIVACY_USER à d’autres rôles, voir Rôles des instances. |
|
APPLY TAG sur le compte |
||
Appeler les méthodes sur une instance de profil de classification |
<classification_profile>!PRIVACY_USER rôle de l’instance |
Pour des informations sur l’attribution de ce rôle d’instance à d’autres rôles, voir Rôles des instances. |
Lister les profils de classification |
<classification_profile>!PRIVACY_USER rôle de l’instance |
|
Supprimer les profils de classification |
OWNERSHIP sur l’instance de profil de classification |
Pour un exemple de l’octroi de ces privilèges et des rôles de base de données au rôle d’un ingénieur des données, voir Exemple de base : Classification automatique des tables dans une base de données.
Coût de la classification automatique des données sensibles¶
La classification automatique des données sensibles consomme des crédits, car elle utilise des ressources de calcul sans serveur pour classifier les tables de la base de données. Pour plus d’informations sur le tarif de cette consommation, voir la table 5 dans Snowflake Service Consumption Table.
Vous pouvez interroger les vues des schémas ACCOUNT_USAGE et ORGANIZATION_USAGE pour déterminer le montant consacré à la classification automatique des données sensibles. Pour suivre la consommation des crédits, interrogez les vues suivantes :
- Vue METERING_HISTORY (ACCOUNT_USAGE)
Vous permet de récupérer le coût horaire de la classification automatique en vous concentrant sur
SENSITIVE_DATA_CLASSIFICATIONdans la colonneSERVICE_TYPE. Par exemple :SELECT service_type, start_time, end_time, entity_id, name, credits_used_compute, credits_used_cloud_services, credits_used, budget_id FROM snowflake.account_usage.metering_history WHERE service_type = 'SENSITIVE_DATA_CLASSIFICATION';
- Vue METERING_DAILY_HISTORY (ACCOUNT_USAGE et ORGANIZATION_USAGE)
Vous permet de récupérer le coût journalier de la classification automatique en vous concentrant sur
SENSITIVE_DATA_CLASSIFICATIONdans la colonneSERVICE_TYPE. Par exemple :SELECT service_type, usage_date, credits_used_compute, credits_used_cloud_services, credits_used FROM snowflake.account_usage.metering_daily_history WHERE service_type = 'SENSITIVE_DATA_CLASSIFICATION';
- USAGE_IN_CURRENCY_DAILY (ORGANIZATION_USAGE)
Vous permet de récupérer le coût journalier de la classification automatique en vous concentrant sur
SENSITIVE_DATA_CLASSIFICATIONdans la colonneSERVICE_TYPE. Utilisez cette vue pour déterminer le coût en devises et non en crédits.
Exemples¶
Exemple de base : Classification automatique des tables dans une base de données
Exemple : Utilisation d’un mappage de balises et de classificateurs personnalisés
Exemple : Test d’un profil de classification avant d’activer la classification automatique
Exemple de base : Classification automatique des tables dans une base de données¶
Procédez comme suit pour classifier automatiquement une table dans la base de données :
En tant qu’administrateur, donnez à l’ingénieur des données les rôles et privilèges dont il a besoin pour classifier automatiquement les tables dans une base de données.
USE ROLE ACCOUNTADMIN; GRANT USAGE ON DATABASE mydb TO ROLE data_engineer; GRANT EXECUTE AUTO CLASSIFICATION ON DATABASE mydb TO ROLE data_engineer; GRANT DATABASE ROLE SNOWFLAKE.CLASSIFICATION_ADMIN TO ROLE data_engineer; GRANT CREATE SNOWFLAKE.DATA_PRIVACY.CLASSIFICATION_PROFILE ON SCHEMA mydb.sch TO ROLE data_engineer; GRANT APPLY TAG ON ACCOUNT TO ROLE data_engineer;
Passez au rôle d’ingénieur des données :
USE ROLE data_engineer;
Créez le profil de classification en tant qu’instance de la classe CLASSIFICATION_PROFILE :
CREATE OR REPLACE SNOWFLAKE.DATA_PRIVACY.CLASSIFICATION_PROFILE my_classification_profile( { 'minimum_object_age_for_classification_days': 0, 'maximum_classification_validity_days': 30, 'auto_tag': true, 'classify_views': true });
Appelez la méthode DESCRIBE sur l’instance pour confirmer ses propriétés :
SELECT my_classification_profile!DESCRIBE();
Définissez l’instance du profil de classification sur le schéma, ce qui lance le processus en arrière-plan de surveillance des tables du schéma et de classification automatique des données sensibles.
ALTER DATABASE mydb SET CLASSIFICATION_PROFILE = 'mydb.sch.my_classification_profile';
Note
Il s’écoule une heure entre le moment où le profil de classification est paramétré sur le schéma et le moment où Snowflake commence à classifier le schéma.
Après une heure d’attente, appelez la procédure stockée SYSTEM$GET_CLASSIFICATION_RESULT pour obtenir les résultats de la classification automatique.
CALL SYSTEM$GET_CLASSIFICATION_RESULT('mydb.sch.t1');
Exemple : Utilisation d’un mappage de balises et de classificateurs personnalisés¶
En tant qu’administrateur, donnez à l’ingénieur des données les rôles et privilèges dont il a besoin pour classifier automatiquement les tables dans une base de données et définir des balises sur les colonnes.
Créez le profil de classification.
CREATE OR REPLACE SNOWFLAKE.DATA_PRIVACY.CLASSIFICATION_PROFILE my_classification_profile( { 'minimum_object_age_for_classification_days': 0, 'maximum_classification_validity_days': 30, 'auto_tag': true, 'classify_views': true });
Appelez la méthode SET_TAG_MAP sur l’instance pour ajouter un mappage de balises au profil de classification. Cela permet d’appliquer automatiquement des balises personnalisées sur les colonnes qui contiennent des données sensibles.
CALL my_classification_profile!SET_TAG_MAP( {'column_tag_map':[ { 'tag_name':'my_db.sch1.pii', 'tag_value':'sensitive', 'semantic_categories':['NAME'] }]});
Vous auriez également pu ajouter cette carte de balise lors de la création du profil de classification.
Appelez la méthode SET_CUSTOM_CLASSIFIERS pour ajouter des classificateurs personnalisés au profil de classification. Cela permet de classer automatiquement les données sensibles selon des catégories sémantiques et de confidentialité définies par l’utilisateur.
CALL my_classification_profile!set_custom_classifiers( { 'medical_codes': medical_codes!list(), 'finance_codes': finance_codes!list() });
Vous auriez également pu ajouter les classificateurs personnalisés lors de la création du profil de classification.
Appelez la méthode DESCRIBE sur l’instance pour confirmer que le mappage des balises et les classificateurs personnalisés ont été ajoutés au profil de classification.
SELECT my_classification_profile!DESCRIBE();
Définissez l’instance du profil de classification sur la base de données.
ALTER DATABASE mydb SET CLASSIFICATION_PROFILE = 'mydb.sch.my_classification_profile';
Attachez une politique de masquage à la balise
tag_db.sch.piipour activer le masquage basé sur les balises.ALTER TAG tag_db.sch.pii SET MASKING POLICY pii_mask;
Exemple : Test d’un profil de classification avant d’activer la classification automatique¶
En tant qu’administrateur, donnez à l’ingénieur des données les rôles et privilèges dont il a besoin pour classer automatiquement les tables dans un schéma et définir des balises sur les colonnes.
Créez le profil de classification avec un mappage de balises et des classificateurs personnalisés :
CREATE OR REPLACE SNOWFLAKE.DATA_PRIVACY.CLASSIFICATION_PROFILE my_classification_profile( { 'minimum_object_age_for_classification_days':0, 'auto_tag':true, 'tag_map': { 'column_tag_map':[ { 'tag_name':'tag_db.sch.pii', 'tag_value':'highly sensitive', 'semantic_categories':['NAME','NATIONAL_IDENTIFIER'] }, { 'tag_name':'tag_db.sch.pii', 'tag_value':'sensitive', 'semantic_categories':['EMAIL','MEDICAL_CODE'] } ] }, 'classify_views': true 'custom_classifiers': { 'medical_codes': medical_codes!list(), 'finance_codes': finance_codes!list() } } );
Appelez la procédure stockée SYSTEM$CLASSIFY pour tester les mappages de balises sur la table
table1avant d’activer la classification automatique.CALL SYSTEM$CLASSIFY( 'db.sch.table1', 'db.sch.my_classification_profile' );
La clé
tagsde la sortie contient des informations sur la définition de la balise (truesi elle est définie,falsesinon), le nom de la balise définie et la valeur de la balise :{ "classification_profile_config": { "classification_profile_name": "db.schema.my_classification_profile" }, "classification_result": { "EMAIL": { "alternates": [], "recommendation": { "confidence": "HIGH", "coverage": 1, "details": [], "privacy_category": "IDENTIFIER", "semantic_category": "EMAIL", "tags": [ { "tag_applied": true, "tag_name": "snowflake.core.semantic_category", "tag_value": "EMAIL" }, { "tag_applied": true, "tag_name": "snowflake.core.privacy_category", "tag_value": "IDENTIFIER" }, { "tag_applied": true, "tag_name": "tag_db.sch.pii", "tag_value": "sensitive" } ] }, "valid_value_ratio": 1 }, "FIRST_NAME": { "alternates": [], "recommendation": { "confidence": "HIGH", "coverage": 1, "details": [], "privacy_category": "IDENTIFIER", "semantic_category": "NAME", "tags": [ { "tag_applied": true, "tag_name": "snowflake.core.semantic_category", "tag_value": "NAME" }, { "tag_applied": true, "tag_name": "snowflake.core.privacy_category", "tag_value": "IDENTIFIER" }, { "tag_applied": true, "tag_name": "tag_db.sch.pii", "tag_value": "highly sensitive" } ] }, "valid_value_ratio": 1 } } }
Après avoir vérifié que la classification automatique basée sur le profil de classification donnera le résultat souhaité, définissez l’instance du profil de classification sur la base de données.
ALTER DATABASE mydb SET CLASSIFICATION_PROFILE = 'mydb.sch.my_classification_profile';
Résolution des problèmes¶
Le moyen le plus simple de démarrer le dépannage d’une table qui n’a pas été classifiée consiste à interroger directement la table (par exemple, SELECT * FROM my_table). Si une table ne peut pas être interrogée, elle ne peut pas être classifiée automatiquement.
Si un objet ne peut pas être classifié automatiquement, Snowflake enregistre un événement dans un tableau d’événements. Par défaut, l’événement est enregistré dans le tableau d’événements au niveau du compte. Si vous avez défini un tableau d’événements pour la base de données de l’objet ayant échoué, l’événement y est enregistré à la place.
En général, Snowflake attend un certain temps avant de tenter à nouveau de classifier l’objet. Chaque tentative supplémentaire qui échoue est consignée dans la tableau d’événements. Ce processus d’attente et de nouvelle tentative se poursuit jusqu’à ce que l’objet soit réparé ou retiré de la classification automatique.
Note
Pour éviter des coûts inutiles, Snowflake attend un certain temps avant de relancer la classification de certaines erreurs, comme les délais d’expiration. Pour ces erreurs de délais d’expiration, Snowflake ne relance pas la classification tant que tous les objets n’ont pas été re-classifiés ; la planification selon laquelle les objets sont re-classifiés est contrôlée par la clé maximum_classification_validity_days du profil de classification.
Si vous voulez empêcher l’enregistrement des événements de classification, définissez le paramètre de compte ENABLE_AUTOMATIC_SENSITIVE_DATA_CLASSIFICATION_LOG sur FALSE.
Listing des erreurs générales¶
La requête suivante sur le tableau d’événements renvoie des erreurs générales liées à la classification automatique :
SELECT
record_type,
record:severity_text::string log_level,
parse_json(value) error_message
FROM <event_db>.<event_schema>.<event_table>
WHERE record_type='LOG' and scope:name ='snow.automatic_sensitive_data_classification'
ORDER BY log_level;
Pour voir un sous-ensemble des messages d’erreur possibles renvoyés par cette requête, consultez Messages d’erreur liés aux balises.
Listing des erreurs de classification au niveau des objets¶
La requête suivante sur le tableau d’événements renvoie des erreurs liées à la classification d’un objet spécifique : Par exemple, elle renvoie les erreurs qui se sont produites lorsque Snowflake a essayé de classifier une table spécifique.
SELECT
RECORD_ATTRIBUTES:"object_name"::string AS object_name,
parse_json(value):"error_message" error_message,
PARSE_JSON(VALUE):"profile_name" classification_profile_name,
timestamp,
FROM <event_db>.<event_schema>.<event_table>
WHERE record_type='LOG'
AND scope:name ='snow.automatic_sensitive_data_classification'
AND RECORD_ATTRIBUTES:"event_type" = 'CLASSIFICATION_ERROR'
ORDER BY TIMESTAMP DESC;