Introduction à la classification

Cette rubrique fournit des informations sur le fonctionnement de la classification.

Dans ce chapitre :

Vue d’ensemble

La classification est un processus en plusieurs étapes qui associe des balises définies par Snowflake (c’est-à-dire des balises système) à des colonnes en analysant les cellules et les métadonnées à la recherche de données personnelles ; ces données peuvent désormais être suivies par un ingénieur des données.

Sur la base des informations de suivi et des processus d’audit connexes, l’ingénieur des données peut protéger la colonne contenant des données personnelles ou sensibles par une politique de masquage ou la table contenant cette colonne par une politique d’accès aux lignes.

Le résultat global des étapes de classification et de protection des données est de faciliter la conformité aux réglementations sur la confidentialité des données.

Processus

Cette section explique le fonctionnement du processus de classification en trois étapes. Vous pouvez répéter ce processus aussi souvent que nécessaire, par exemple après avoir inséré de nouvelles lignes dans un tableau ou ajouté de nouvelles colonnes à un tableau.

La classification se résume à un processus en trois étapes : analyser, examiner et appliquer. Chacune de ces étapes comporte des opérations différentes :

Analyser

L’ingénieur de données appelle la fonction EXTRACT_SEMANTIC_CATEGORIES dans le compte Snowflake. Cette fonction analyse les colonnes d’une table et produit les catégories possibles et les métadonnées associées. Pour plus de détails, voir Interpréter le résultat (dans cette rubrique).

Note

Les définitions de vues complexes, telles que les vues qui nécessitent des opérations JOIN sur plusieurs objets, peuvent ralentir le processus d’analyse. Avant de classer une vue complexe, il faut tenir compte de l’entrepôt utilisé. Pour plus de détails, voir Coûts de calcul (dans cette rubrique).

Examiner

Lors de l’étape d’examen, l’ingénieur des données examine les résultats de la catégorie pour s’assurer que les résultats des opérations de l’étape d’analyse ont un sens. Si aucune révision n’est nécessaire, l’ingénieur des données peut passer à l’étape d’application.

Si des révisions sont nécessaires, l’ingénieur des données peut réviser les résultats de l’étape d’analyse avant de passer à l’étape d’application.

Pour plus de détails, voir Interpréter le résultat (dans cette rubrique).

Appliquer

L’étape d’application n’a qu’une seule opération : attribuer la balise du système.

L’ingénieur des données peut définir manuellement une balise système sur une colonne ou appeler la procédure stockée ASSOCIATE_SEMANTIC_CATEGORY_TAGS.

Après avoir attribué les balises système, l’ingénieur des données peut ensuite suivre la balise système et protéger les données personnelles ou sensibles par une politique de masquage ou une politique d’accès par ligne.

Pour des exemples détaillés de ce processus, voir Classification des données d’utilisation.

Balises système et catégories

Les balises système sont des balises que Snowflake crée, maintient et met à disposition dans la base de données SNOWFLAKE partagée. Il existe deux balises du système de classification, toutes deux présentes dans le schéma SNOWFLAKE.CORE :

  • SNOWFLAKE.CORE.SEMANTIC_CATEGORY

  • SNOWFLAKE.CORE.PRIVACY_CATEGORY

L’ingénieur des données attribue ces balises à une colonne contenant des données personnelles ou sensibles.

Valeurs de chaîne.

Snowflake enregistre l’affectation d’une balise système à une colonne sous la forme d’une paire clé-valeur, où la valeur est une chaîne. Snowflake définit les valeurs de chaîne autorisées pour chaque balise du système de classification car Snowflake gère chacune de ces balises système.

Les noms des balises, SEMANTIC_CATEGORY et PRIVACY_CATEGORY, correspondent aux catégories de classification que Snowflake attribue aux données des colonnes pendant le processus d’échantillonnage des colonnes (c’est-à-dire que les noms des balises et des catégories utilisent les mêmes mots) :

Catégorie sémantique

La catégorie sémantique identifie les attributs personnels.

Une liste non exhaustive de classification des attributs personnels comprend le nom, l’âge et le sexe. Ces trois attributs sont des valeurs de chaîne possibles lors de l’attribution de la balise SEMANTIC_CATEGORY à une colonne.

La classification permet de détecter des informations provenant de différents pays, tels que l’Australie, le Canada et le Royaume-Uni. Par exemple, si la colonne de votre tableau contient des informations sur les numéros de téléphone, le processus d’analyse peut différencier les différentes valeurs des numéros de téléphone de chacun de ces pays. Pour obtenir la liste complète des valeurs internationales prises en charge, consultez Balises système avec valeurs de balises internationales (dans cette rubrique).

Catégorie de confidentialité

Si l’analyse détermine que les données de la colonne correspondent à une catégorie sémantique, Snowflake classe en outre la colonne dans une catégorie de confidentialité. La catégorie de confidentialité a trois valeurs : identifiant, quasi-identifiant ou sensible. Ces trois valeurs sont les valeurs de chaîne qui peuvent être spécifiées lors de l’attribution de la balise PRIVACY_CATEGORY à une colonne.

  • Identifiant : ces attributs permettent d’identifier de manière unique un individu. Des exemples d’attributs sont le nom, le numéro de sécurité sociale et le numéro de téléphone.

    Les attributs d’identifiant sont synonymes d”identifiants directs.

  • Quasi-identifiant : Ces attributs peuvent identifier de manière unique un individu lorsque deux ou plusieurs de ces attributs sont combinés. L’âge et le sexe sont des exemples d’attributs.

    Les quasi-identifiants sont synonymes d”identifiants indirects.

  • Sensible : ces attributs ne sont pas considérés comme suffisants pour identifier un individu mais sont des informations que l’individu préférerait ne pas divulguer pour des raisons de confidentialité.

    Actuellement, le seul attribut que Snowflake évalue comme sensible est le salaire.

Le tableau suivant résume la relation entre chaque catégorie de classification et balise système et les valeurs de chaîne pour chaque balise du système de classification. Les lignes de ce tableau indiquent une prise en charge des catégories qui n’ont pas de valeurs internationales.

PRIVACY_CATEGORY Balise Valeurs

SEMANTIC_CATEGORY Balise Valeurs

IDENTIFIER

  • EMAIL

  • IBAN

  • IMEI

  • IP_ADDRESS

  • VIN

  • NAME

  • PAYMENT_CARD

  • URL

QUASI_IDENTIFIER

  • AGE

  • GENDER

  • COUNTRY

  • DATE_OF_BIRTH

  • ETHNICITY

  • LATITUDE

  • LAT_LONG

  • LONGITUDE

  • MARITAL_STATUS

  • OCCUPATION

  • YEAR_OF_BIRTH

SENSITIVE

  • SALARY

Note

Plusieurs valeurs de chaîne de balise sémantique des trois catégories de confidentialité peuvent être considérées comme des « données personnelles sensibles », des « catégories spéciales de données » ou des termes similaires en vertu des lois et des règlements. De plus, elles peuvent nécessiter des protections ou des contrôles supplémentaires.

Actuellement, la classification ne permet pas de marquer les données de colonne comme étant à la fois sensibles et identifiantes. En d’autres termes, lorsque vous définissez la balise système d’une colonne donnée, vous devez choisir la balise SEMANTIC_CATEGORY ou PRIVACY_CATEGORY.

Balises système avec valeurs de balises internationales

Snowflake prend en charge les valeurs de balises SEMANTIC_CATEGORY internationales pour l’Australie, le Canada, la Nouvelle-Zélande, la Suisse, le Royaume-Uni et les États-Unis. Pour prendre en charge ces pays, les valeurs des balises correspondent à certains groupes de catégories de parents. Une catégorie de parents contient des informations sur le résultat de la classification, notamment si la colonne est constituée de valeurs provenant en grande partie d’un pays ou d’un autre.

Le tableau suivant résume la relation entre les balises de classification, les groupes de catégories et les membres des groupes, et les pays pris en charge. Les codes de pays sont basés sur la norme ISO-3166-1 alpha-2. Les autres catégories sémantiques, telles que EMAIL et GENDER, ne sont pas concernées. Pour suivre les informations internationales, l’ingénieur des données utilise la valeur de la colonne de valeurs de balises SEMANTIC_CATEGORY lorsqu’il définit une balise système sur une colonne.

Valeurs balise PRIVACY_CATEGORY

Valeurs balise SEMANTIC_CATEGORY (groupe de parents)

Membres du groupe

Code de pays

IDENTIFIER

BANK_ACCOUNT

  • CA_BANK_ACCOUNT

  • NZ_BANK_ACCOUNT

  • US_BANK_ACCOUNT

  • IBAN

  • CA

  • NZ

  • US

ORGANIZATION_IDENTIFIER

  • AU_BUSINESS_NUMBER

  • AU_COMPANY_NUMBER

  • SG_UNIQUE_ENTITY_NUMBER

  • AU

  • AU

  • SG

DRIVERS_LICENSE

  • AU_DRIVERS_LICENSE

  • CA_DRIVERS_LICENSE

  • US_DRIVERS_LICENSE

  • AU

  • CA

  • US

MEDICARE_NUMBER

  • AU_MEDICARE_NUMBER

  • NZ_NHI_NUMBER

  • AU

  • NZ

PASSPORT

  • AU_PASSPORT

  • CA_PASSPORT

  • NZ_PASSPORT

  • SG_PASSPORT

  • US_PASSPORT

  • AU

  • CA

  • NZ

  • SG

  • US

PHONE_NUMBER

  • AU_PHONE_NUMBER

  • CA_PHONE_NUMBER

  • UK_PHONE_NUMBER

  • US_PHONE_NUMBER

  • AU

  • CA

  • GB

  • US

STREET_ADDRESS

  • CA_STREET_ADDRESS

  • US_STREET_ADDRESS

  • CA

  • US

TAX_IDENTIFIER

  • AU_TAX_NUMBER

  • NZ_INLAND_REVENUE_NUMBER

  • AU

  • NZ

NATIONAL_IDENTIFIER

  • CA_SOCIAL_INSURANCE_NUMBER

  • UK_NATIONAL_INSURANCE_NUMBER

  • SG_NATIONAL_REGISTRATION_IDENTITY_CARD

  • US_SSN

  • CA

  • GB

  • SG

  • US

QUASI_IDENTIFIER

CITY

  • CA_CITY

  • NZ_CITY

  • US_CITY

  • CA

  • NZ

  • US

POSTAL_CODE

  • AU_POSTAL_CODE

  • CA_POSTAL_CODE

  • CH_POSTAL_CODE

  • NZ_POSTAL_CODE

  • UK_POSTAL_CODE

  • US_POSTAL_CODE

  • AU

  • CA

  • CH

  • NZ

  • GB

  • US

ADMINISTRATIVE_AREA_1

  • CA_PROVINCE_OR_TERRITORY

  • NZ_REGION

  • US_STATE_OR_TERRITORY

  • CA

  • NZ

  • US

ADMINISTRATIVE_AREA_2

  • US_COUNTY

  • US

Interpréter le résultat

Voici un exemple simplifié de l’exemple Classifier une seule table présenté dans Classification des données d’utilisation :

  1. Créez une table :

    CREATE OR REPLACE TABLE hr_data (
        age INTEGER,
        email_address VARCHAR,
        fname VARCHAR,
        lname VARCHAR
        );
    
    Copy
  2. Chargez les données dans la table et appelez ensuite la fonction EXTRACT_SEMANTIC_CATEGORIES :

    INSERT INTO hr_data (fname, lname, age, email_address) 
        VALUES 
            ('Thomas',    'Smith',   44, 'TS_NoAdvertising@SpamFilter.com'),
            ('Katherine', 'Lee',     29, 'KL_JunkMailFolder@GatingEmail.com'),
            ('Lisa',      'Curie',   29, 'LC_03@GatingEmail.com'),
            ('Albert',    'Meitner', 14, 'AM_bucket@GatingEmail.com'),
            ('Horace',    'Jones',   53, 'HJ_track@SpamFilter.com'),
            ('Natalia',   'Chavez',  38, 'NataliaC@DoNotTrack.org');
    
    Copy
    USE ROLE data_engineer;
    
    SELECT EXTRACT_SEMANTIC_CATEGORIES('hr_data');
    
    Copy
  3. Évaluer la sortie par défaut. Par exemple :

    +-----------------------------------------------+                               
    | EXTRACT_SEMANTIC_CATEGORIES('HR_DATA')        |
    |-----------------------------------------------|
    | {                                             |
    |   "AGE": {                                    |
    |     "alternates": [],                         |
    |     "recommendation": {                       |
    |       "confidence": "HIGH",                   |
    |       "coverage": 1,                          |
    |       "details": [],                          |
    |       "privacy_category": "QUASI_IDENTIFIER", |
    |       "semantic_category": "AGE"              |
    |     },                                        |
    |     "valid_value_ratio": 1                    |
    |   },                                          |
    |   "EMAIL_ADDRESS": {                          |
    |     "alternates": [],                         |
    |     "recommendation": {                       |
    |       "confidence": "HIGH",                   |
    |       "coverage": 1,                          |
    |       "details": [],                          |
    |       "privacy_category": "IDENTIFIER",       |
    |       "semantic_category": "EMAIL"            |
    |     },                                        |
    |     "valid_value_ratio": 1                    |
    |   },                                          |
    |   "FNAME": {                                  |
    |     "alternates": [],                         |
    |     "recommendation": {                       |
    |       "confidence": "HIGH",                   |
    |       "coverage": 1,                          |
    |       "details": [],                          |
    |       "privacy_category": "IDENTIFIER",       |
    |       "semantic_category": "NAME"             |
    |     },                                        |
    |     "valid_value_ratio": 1                    |
    |   },                                          |
    |   "LNAME": {                                  |
    |     "alternates": [],                         |
    |     "recommendation": {                       |
    |       "confidence": "HIGH",                   |
    |       "coverage": 1,                          |
    |       "details": [],                          |
    |       "privacy_category": "IDENTIFIER",       |
    |       "semantic_category": "NAME"             |
    |     },                                        |
    |     "valid_value_ratio": 1                    |
    |   }                                           |
    | }                                             |
    +-----------------------------------------------+
    

    Utilisez la fonction tableau FLATTEN pour améliorer la lisibilité :

    SELECT
        f.key::varchar as column_name,
        f.value:"recommendation":"privacy_category"::varchar as privacy_category,  
        f.value:"recommendation":"semantic_category"::varchar as semantic_category,
        f.value:"recommendation":"confidence"::varchar as confidence,
        f.value:"recommendation":"coverage"::number(10,2) as coverage,
        f.value:"details"::variant as details,
        f.value:"alternates"::variant as alternates
      FROM
      TABLE(FLATTEN(EXTRACT_SEMANTIC_CATEGORIES('hr_data')::VARIANT)) AS f;
    
    Copy
    +---------------+------------------+-------------------+------------+----------+---------+------------+
    | COLUMN_NAME   | PRIVACY_CATEGORY | SEMANTIC_CATEGORY | CONFIDENCE | COVERAGE | DETAILS | ALTERNATES |
    |---------------+------------------+-------------------+------------+----------+---------+------------|
    | AGE           | QUASI_IDENTIFIER | AGE               | HIGH       |     1.00 | NULL    | []         |
    | EMAIL_ADDRESS | IDENTIFIER       | EMAIL             | HIGH       |     1.00 | NULL    | []         |
    | FNAME         | IDENTIFIER       | NAME              | HIGH       |     1.00 | NULL    | []         |
    | LNAME         | IDENTIFIER       | NAME              | HIGH       |     1.00 | NULL    | []         |
    +---------------+------------------+-------------------+------------+----------+---------+------------+
    

Objets et types de données de colonne pris en charge

Snowflake prend en charge la classification des données stockées dans tous les types de tables et de vues, notamment les tables externes, les vues matérialisées et les vues sécurisées.

Vous pouvez classer les colonnes des tables et des vues pour tous les types de données pris en charge , à l’exception des types de données suivants :

  • GEOGRAPHY

  • BINARY

  • VARIANT

    Notez que vous pouvez classer une colonne avec le type de données VARIANT lorsque le type de données de la colonne peut être converti vers un type de données NUMBER ou STRING. Snowflake ne classe pas la colonne si celle-ci contient JSON, XML ou d’autres données semi-structurées.

Si une table contient des colonnes dont le type de données n’est pas pris en charge ou si la colonne contient toutes les valeurs NULL, le processus de classification ignore les colonnes et ne les inclut pas dans la sortie.

Important

Si vos données représentent des valeurs NULL avec une valeur autre que NULL, la précision des résultats de la classification peut être affectée.

Coûts de calcul

Le processus de classification requiert des ressources de calcul, qui sont fournies par l’entrepôt virtuel qui est utilisé et en fonctionnement au moment de la classification.

Le temps nécessaire pour classifier les données d’une table/vue (et, par conséquent, le nombre de crédits consommés par l’entrepôt) est fonction de la quantité de données à classifier.

En particulier, si une table/vue comporte un grand nombre de colonnes qui prennent en charge la classification, le temps de traitement peut en être affecté. Toutefois, en règle générale, la vitesse de traitement évolue de façon linéaire avec la taille de l’entrepôt. En d’autres termes, chaque augmentation de la taille d’un entrepôt (par exemple, de X-small à Small) réduit généralement le temps de traitement de moitié.

Utilisez les directives générales suivantes pour sélectionner une taille d’entrepôt :

  • Le temps de traitement n’est pas un problème : entrepôt X-Small.

  • Jusqu’à 100 colonnes dans une table : entrepôt Small.

  • 101 à 300 colonnes dans une table : entrepôt Medium.

  • 301 colonnes ou plus dans une table : entrepôt Large.

Avantages

La classification offre les avantages suivants aux administrateurs de la confidentialité des données et de la gouvernance des données :

Accès aux données

Les résultats de la classification des données des colonnes peuvent aider les administrateurs de la gestion des identités et des accès à évaluer et à maintenir leurs hiérarchies de rôles Snowflake pour s’assurer que les rôles Snowflake ont l’accès approprié aux données sensibles ou PII.

Partage de données

Le processus de classification peut aider à identifier et à confirmer l’emplacement de stockage des données PII. Ensuite, un fournisseur de partage de données peut utiliser les résultats de la classification pour déterminer s’il doit partager des données et comment mettre les données PII à la disposition d’un consommateur de partage de données.

Application de la politique

L’utilisation de colonnes contenant des données PII, comme la référence à des colonnes dans des tables de base pour créer une vue ou une vue matérialisée, peut aider à déterminer la meilleure approche pour protéger les données avec une politique de masquage ou une politique d’accès aux lignes.

Recommandations

Pour tirer parti de la fonction Classification et optimiser vos capacités de suivi des données PII, procédez comme suit :

Validation

Interrogez d’abord les vues Account Usage :

  • ACCESS_HISTORY: déterminer les objets de table et de vue auxquels on accède le plus fréquemment.

  • OBJECT_DEPENDENCIES: déterminer les références de métadonnées entre deux ou plusieurs objets.

Utilisez les résultats de la requête pour donner la priorité à l’affectation des balises du système de classification au niveau du schéma ou de la base de données.

Noms de colonne

Utilisez des noms de colonne sensés dans vos objets de table et formez les créateurs de table à respecter les directives internes de création de table.

Types de données

Utilisez des types de données sensés pour les colonnes. Par exemple, une colonne AGE doit avoir le type de données NUMBER.

VARIANT

Si une colonne a un type de données VARIANT, utilisez la commande FLATTEN sur la colonne avant de classer la table.

Vérifier

Enregistrez les résultats de l’appel de la fonction EXTRACT_SEMANTIC_CATEGORIES dans un tableau temporaire et vérifiez les résultats avant d’attribuer les balises du système de classification.

Après avoir attribué les balises système, interrogez les vues TAG_REFERENCES et COLUMNS Account Usage pour inspecter les colonnes qui n’ont pas été classées.

Par exemple, accordez le rôle de base de données GOVERNANCE_VIEWER au rôle personnalisé data_engineer et exécutez ces instructions :

use role accountadmin;

grant database role governance_viewer to role data_engineer;

use role data_engineer;

select table_name,
       table_catalog
from snowflake.account_usage.columns c
  where not exists(
    select * from snowflake.account_usage.tag_references t
    where c.column_id = t.column_id
  )
  and deleted is null
order by table_catalog;
Copy

Utilisez les résultats de la requête pour déterminer quels sont les catalogues de tables (c’est-à-dire les bases de données) les plus importants pour vérifier et classer les tables par ordre de priorité.

Enregistrements

Créez un enregistrement de l’historique des résultats de l’appel de la fonction EXTRACT_SEMANTIC_CATEGORIES et des résultats de l’attribution des balises du système de classification.

Entrepôt

Utilisez la taille d’entrepôt appropriée lors de la classification des données. Pour plus de détails, voir Coûts de calcul (dans cette rubrique).

Gestion des classifications

Référence aux privilèges

Ce tableau résume les privilèges minimums nécessaires pour les étapes d’analyse et de révision de la classification :

Privilège

Objet

Remarques

USAGE

Base de données et schéma

Ce privilège est nécessaire pour la base de données et le schéma parent de la table contenant les colonnes à classer.

SELECT , UPDATE

Table

Le privilège SELECT permet d’interroger une table, ce qui est nécessaire pour classer les données des colonnes et appeler la fonction EXTRACT_SEMANTIC_CATEGORIES.

Le privilège UPDATE permet d’appeler la procédure stockée ASSOCIATE_SEMANTIC_CATEGORY_TAGS pour appliquer automatiquement les résultats de la classification aux colonnes d’une table.

Les privilèges nécessaires pour l’étape d’application, en particulier configurer la balise système, dans Classification dépendent de l’approche choisie. Actuellement, il existe trois options :

  • Utilisez le rôle de base de données GOVERNANCE_ADMIN.

  • Accordez IMPORTED PRIVILEGES à un rôle personnalisé.

  • Utilisez le rôle ACCOUNTADMIN.

Rôle de la base de données

L’approche par rôle de base de données utilise le rôle de base de données GOVERNANCE_ADMIN pour définir une balise du système de classification sur une colonne de table. En outre, l’ingénieur des données a le privilège global APPLY TAG de définir des balises sur des objets qui ne lui appartiennent pas.

Pour ce faire :

  1. Accordez le rôle de base de données GOVERNANCE_ADMIN à un rôle personnalisé de votre choix (par exemple, data_engineer) :

    use role accountadmin;
    grant database role snowflake.governance_admin to role data_engineer;
    grant apply tag on account to role data_engineer;
    
    Copy
  2. Attribuez une balise système à une colonne de table. Par exemple, la colonne EMAIL de la table nommée hr.tables.empl_info (c’est-à-dire une table contenant des informations sur les employés dans la base de données des ressources humaines) :

    use role data_engineer;
    
    alter table hr.tables.empl_info
      modify column email
      set tag snowflake.core.semantic_category = 'email';
    
    Copy

L’utilisation de l’approche du rôle de la base de données peut contribuer à satisfaire une exigence du principe du moindre privilège.

Rôle personnalisé

L’approche du rôle personnalisé (c’est-à-dire un rôle de niveau compte que vous créez) nécessite d’accorder deux privilèges à un rôle de votre choix. Par exemple :

use role accountadmin;
grant imported privileges on database snowflake to role data_engineer;
grant apply tag on account to role data_engineer;
Copy

Le résultat de ces deux instructions d’octroi permet d’accéder à la base de données partagée SNOWFLAKE et d’appliquer les balises du système de classification à n’importe quelle colonne de table dans le compte. Un utilisateur ayant le rôle data_engineer peut alors définir la balise du système de classification sur une table comme indiqué dans l’approche des rôles de la base de données.

Cependant, les deux instructions d’octroi de cette approche permettent également :

  • L’accès complet pour interroger toutes les vues de la base de données partagée SNOWFLAKE.

  • La définition de n’importe quelle balise dans le compte sur n’importe quel objet qui peut être balisé dans le compte.

Si l’approche des rôles personnalisés ne répond pas à l’exigence du principe du moindre privilège, utilisez l’approche des rôles de base de données.

ACCOUNTADMIN

L’utilisation du rôle ACCOUNTADMIN ne nécessite aucune instruction d’octroi supplémentaire, mais le rôle ACCOUNTADMIN est le rôle le plus privilégié dans Snowflake.

S’il existe des restrictions pour limiter l’utilisation du rôle ACCOUNTADMIN dans vos environnements de production, utilisez soit l’approche du rôle de base de données, soit l’approche du rôle personnalisé.

En ce qui concerne la protection des données des colonnes, les privilèges permettant d’attribuer une politique de masquage ou une politique d’accès aux lignes peuvent être accordés au rôle data_engineer ou un rôle différent peut être chargé d’attribuer les politiques. L’approche que vous adoptez dépend de la manière dont vos administrateurs préfèrent accorder des privilèges et administrer les rôles.

Pour des exemples représentatifs, voir Classification des données d’utilisation.

Balises du système de suivi

Snowflake fournit des vues et des fonctions intégrées pour suivre l’utilisation des balises du système de classification :

  • Pour trouver les colonnes avec une balise système dans votre compte, interrogez la vue Account Usage TAG_REFERENCES :

    SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.TAG_REFERENCES
        WHERE TAG_NAME = 'PRIVACY_CATEGORY'
        ORDER BY OBJECT_DATABASE, OBJECT_SCHEMA, OBJECT_NAME, COLUMN_NAME;
    
    Copy
  • Pour trouver les colonnes avec une balise système pour une table ou une vue dans une base de données spécifique, appelez la fonction de table TAG_REFERENCES Information Schema :

    SELECT * FROM
      TABLE(
        my_db.information_schema.tag_references(
          'my_db.my_schema.hr_data.fname',
          'COLUMN'
        )
      )
    ;
    
    Copy
  • Pour trouver chaque ensemble de balises sur chaque colonne d’une table ou d’une vue dans une base de données spécifique, appelez la fonction de table Information Schema TAG_REFERENCES_ALL_COLUMNS :

    select * from
      table(
        my_db.information_schema.tag_references_all_columns(
          'my_db.my_schema.hr_data',
          'table'
        )
      )
    ;
    
    Copy
  • Pour trouver une valeur de balise spécifique pour une colonne, appelez la fonction système SYSTEM$GET_TAG :

    select system$get_tag(
      'snowflake.core.privacy_category',
      'hr_data.fname',
      'COLUMN'
      )
    ;
    
    Copy

Chapitres suivants :