Classificação automática de dados confidenciais

A classificação automática de dados confidenciais é um recurso sem servidor que permite a detecção e a marcação automáticas de dados confidenciais. O recurso monitora continuamente as tabelas em um banco de dados específico e classifica as colunas usando categorias de classificação nativa e personalizada.

A classificação automática de dados confidenciais permite que os engenheiros e administradores de dados:

  • Demonstrar como a classificação automática de tabelas atende às necessidades internas de governança e conformidade.

  • Assegurarem-se de que os dados confidenciais sejam marcados adequadamente.

  • Assegurarem-se de que os controles de acesso corretos estejam em vigor para proteger os dados confidenciais.

Introdução

O fluxo de trabalho básico para classificar automaticamente os dados confidenciais consiste no seguinte:

  1. Crie um perfil de classificação que controle a frequência com que dados confidenciais em um banco de dados são classificados automaticamente, incluindo se as tags do sistema devem ser aplicadas automaticamente após a classificação.

  2. Opcionalmente, use o perfil de classificação para mapear as tags definidas pelo usuário para as tags do sistema, de modo que uma coluna com dados confidenciais possa ser associada a uma tag definida pelo usuário com base em sua classificação.

  3. Opcionalmente, adicione um classificador personalizado ao perfil de classificação para que os dados confidenciais possam ser classificados automaticamente com categorias semânticas e de privacidade definidas pelo usuário.

  4. Defina o perfil de classificação em um banco de dados para que as tabelas no banco de dados sejam classificadas automaticamente.

Para obter exemplos completos desse fluxo de trabalho, consulte Exemplos.

Sobre os perfis de classificação

Um engenheiro de dados cria um perfil de classificação criando uma instância da CLASSIFICATION_PROFILE classe para definir os critérios utilizados ​​para classificar automaticamente as tabelas em um banco de dados. Esses critérios incluem:

  • Quanto tempo uma tabela deve existir antes de ser classificada automaticamente.

  • Quanto tempo antes as tabelas classificadas anteriormente devem ser reclassificadas.

  • Se as tags personalizadas e do sistema são definidas automaticamente nas colunas após a classificação. Você pode decidir se deseja que o Snowflake aplique automaticamente as tags sugeridas ou se prefere revisar as atribuições de tag propostas e depois aplicá-las você mesmo.

  • Um mapeamento entre as tags de classificação do sistema e as tags de objetos definidos pelo usuário para que as tags definidas pelo usuário possam ser aplicadas automaticamente.

Quando o engenheiro de dados atribui o perfil de classificação a um banco de dados, os dados confidenciais nas tabelas que pertencem ao banco de dados são classificados automaticamente de acordo com o cronograma definido pelo perfil. Um engenheiro de dados poderá atribuir o mesmo perfil de classificação a vários bancos de dados ou criar vários perfis de classificação se houver necessidade de definir critérios de classificação diferentes para bancos de dados distintos.

O processo de classificação automática de dados requer acesso aos dados brutos da tabela. Os dados brutos incluem tabelas com uma política de mascaramento atribuída a uma coluna. No entanto, a Snowflake preserva a intenção de regular o acesso a dados protegidos usando uma função interna para classificar automaticamente os dados. A função interna pode acessar dados protegidos por uma política de mascaramento, mas essa função não é acessível aos usuários.

Para obter um exemplo de uso do comando CREATE CLASSIFICATION_PROFILE para criar um perfil de classificação, consulte Exemplos.

Exclusão de objetos da classificação automática de dados confidenciais

Por padrão, o Snowflake classifica automaticamente todos os dados confidenciais em um banco de dados que tem um perfil de classificação definido. Você pode configurar o Snowflake para excluir esquemas, tabelas ou colunas da classificação automática para que sejam ignorados durante o processo de classificação.

Para obter mais informações, consulte Exclusão de dados da classificação automática de dados confidenciais.

Sobre o mapeamento de tags

É possível usar o perfil de classificação para mapear as tags de sistema SEMANTIC_CATEGORY para uma ou mais tags de objeto. Esse mapeamento de tags permite que uma coluna com dados confidenciais seja automaticamente atribuída a uma tag definida pelo usuário com base em sua classificação. O mapeamento de tags pode ser adicionado durante a criação do perfil de classificação ou posteriormente, chamando o método <classification_profile_name>!SET_TAG_MAP.

Como as tags de objeto definidas pelo usuário podem ter uma política de mascaramento associada a elas, você pode usar um mapa de tags para ativar o mascaramento automático baseado em tags. Se optar por aplicar automaticamente as tags após a classificação, você poderá automatizar todo o processo de proteção das colunas com uma política de mascaramento baseada na classificação de dados. À medida que novos dados forem adicionados a um esquema, as políticas de mascaramento baseadas em tags serão automaticamente atribuídas às colunas que contêm dados confidenciais.

Independentemente de você estar definindo o mapeamento de tags ao criar o perfil de classificação ou depois, o conteúdo do mapeamento é especificado como um objeto JSON. Esse objeto JSON contém a chave 'column_tag_map', que é uma matriz de objetos que especificam uma tag definida pelo usuário, o valor da cadeia de caracteres dessa tag e as categorias semânticas às quais a tag está sendo mapeada. Após o mapeamento de tags ser associado a um perfil de classificação e você classificar automaticamente as tabelas em um banco de dados, a tag é atribuída às colunas que correspondem às categorias semânticas.

A seguir, um exemplo de um mapeamento de tags:

'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'
      ]
    }
  ]
}
Copy

Com base nesse mapeamento, se você tiver uma coluna de endereços de e-mail e o processo de classificação determinar que a coluna contém esses endereços, a tag tag_db.sch.pii = 'Confidential' será definida na coluna que contém os endereços de e-mail.

Se o seu mapeamento de tags incluir vários objetos JSON que mapeiam tags, valores de tags e valores de categorias, a ordem dos objetos JSON determinará qual tag e qual valor serão definidos na coluna se houver um conflito. Especifique os objetos JSON na ordem de atribuição desejada, da esquerda para a direita, ou de cima para baixo, se estiver formatando JSON.

Dica

Cada objeto no campo column_tag_map tem apenas uma chave obrigatória: tag_name. Se você omitir as chaves tag_value e semantic_categories, a tag definida pelo usuário será aplicada a todas as colunas às quais a tag do sistema SEMANTIC_CATEGORY for aplicada, e o valor da tag definida pelo usuário corresponderá ao valor da tag SEMANTIC_CATEGORY de uma determinada coluna.

Se houver um conflito entre uma tag atribuída manualmente e uma tag aplicada pela classificação automática, ocorrerá um erro. Para obter informações sobre o rastreamento desses erros, consulte Solução de problemas.

Implementação da classificação personalizada

O Snowflake permite que você defina classificadores personalizados que usam lógica personalizada para identificar e classificar dados confidenciais. Por exemplo, você pode criar um classificador personalizado que use uma expressão regular para identificar códigos ICD-10 e classificá-los como pertencentes à categoria semântica ICD_10_CODES.

Após criar um classificador personalizado, você pode adicioná-lo ao perfil de classificação para que o Snowflake classifique automaticamente os dados com base em sua lógica. Você pode adicionar o classificador personalizado ao criar o perfil de classificação ou ao chamar o método <classification_profile_name>!SET_CUSTOM_CLASSIFIERS.

Adicionar classificadores personalizados e um mapeamento de tags ao seu perfil de classificação fornece uma solução de governança poderosa. Isso permite que você classifique dados automaticamente com base no seu conhecimento sobre o que é confidencial e aplique uma tag definida pelo usuário que você pode rastrear. Se você usar essa tag definida pelo usuário para implementar mascaramento baseado em tags, seus dados confidenciais específicos do domínio ficarão protegidos automaticamente por uma política de mascaramento à medida que os dados forem adicionados a um banco de dados.

Importante

A classificação automática armazena a definição de um classificador personalizado, não uma referência. Se você alterar o classificador personalizado, deverá usar o método SET_CUSTOM_CLASSIFIERS para atualizar o perfil de classificação com a nova definição.

Definir um perfil de classificação em um banco de dados

Você implementa a classificação automática de dados confidenciais definindo um perfil de classificação em um banco de dados. Após você definir o perfil de classificação no banco de dados, todas as tabelas e exibições dentro desse banco de dados são monitoradas automaticamente pela classificação de dados confidenciais.

Você também pode definir uma classificação em um esquema. Se você definir um perfil de classificação em um esquema existente em um banco de dados que também esteja associado a um perfil de classificação, o perfil definido no esquema substituirá o definido no banco de dados.

Para definir um perfil de classificação, use um comando ALTER DATABASE ou ALTER SCHEMA para configurar o parâmetro CLASSIFICATION_PROFILE. Por exemplo, para definir um perfil de classificação my_profile para que todas as tabelas e exibições no banco de dados my_db sejam monitoradas pela classificação automática de dados confidenciais, execute o seguinte comando:

ALTER DATABASE my_db
  SET CLASSIFICATION_PROFILE = 'governance_db.classify_sch.my_profile';
Copy

Classificação de exibições

Por padrão, a classificação de dados confidenciais não classifica dados em exibições. Se você não alterar o padrão, apenas as tabelas serão classificadas.

Classificar exibições pode custar mais do que classificar tabelas. O custo adicional varia dependendo da complexidade da consulta que criou a exibição. As exibições materializadas não têm custos adicionais como outras exibições.

A chave classify_views no objeto de configuração de um perfil de classificação determina se as exibições são classificadas. O seguinte perfil de classificação altera o padrão para que as exibições sejam classificadas:

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
    });
Copy

Você também pode ativar ou desativar a classificação de exibições usando o método SET_CLASSIFY_VIEWS.

Determinar quais objetos são monitorados pela classificação automática

Você pode determinar quais dados estão sendo monitorados pela classificação automática de dados confidenciais listando os bancos de dados e esquemas associados a um perfil de classificação. Se um banco de dados ou esquema estiver associado a um perfil de classificação, todas as tabelas e exibições nessa entidade serão classificadas automaticamente de acordo com os critérios definidos no perfil.

Use a função SYSTEM$SHOW_SENSITIVE_DATA_MONITORED_ENTITIES para listar os bancos de dados e esquemas associados a um perfil de classificação. Você pode listar apenas bancos de dados, apenas esquemas ou todos os bancos de dados e esquemas. Por exemplo, para listar todos os bancos de dados e esquemas associados a um perfil de classificação, execute o seguinte comando:

SELECT SYSTEM$SHOW_SENSITIVE_DATA_MONITORED_ENTITIES();
Copy

A saída lista o nome do banco de dados ou esquema, seu tipo e o perfil de classificação. A seguir, veja um exemplo da saída:

[
{"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"}
]

Visualização dos resultados da classificação automática

É possível visualizar os resultados da classificação automática das seguintes maneiras:

  • Chame o procedimento armazenado SYSTEM$GET_CLASSIFICATION_RESULT. Por exemplo:

    CALL SYSTEM$GET_CLASSIFICATION_RESULT('mydb.sch.t1');
    
    Copy

    Você não poderá retornar resultados até que o processo de classificação seja concluído. O processo de classificação automática só será iniciado uma hora após a configuração do perfil de classificação no banco de dados.

  • Use uma função que tenha recebido a função de banco de dados SNOWFLAKE.GOVERNANCE_VIEWER para consultar a exibição DATA_CLASSIFICATION_LATEST. Por exemplo:

    SELECT * FROM snowflake.account_usage.data_classification_latest;
    
    Copy

    Os resultados podem não aparecer até três horas após a conclusão da classificação.

Limitações

  • Os perfis de classificação não podem ser definidos em uma conta de leitor.

  • Somente um perfil de classificação pode ser definido em um banco de dados ou esquema.

  • Um perfil de classificação não pode ser definido em mais de mil bancos de dados.

  • Um perfil de classificação não pode ser definido diretamente em mais de dez mil esquemas.

  • Um máximo de 100 milhões de tabelas pode ser classificado em um esquema.

  • Você não pode classificar automaticamente uma tabela se ela tiver alguma das seguintes características:

    • Mais de dez mil colunas.

    • Uma coluna com um nome com mais de 255 caracteres.

    • Uma coluna com um nome que inclui o caractere $.

    • É de um compartilhamento.

Controle de acesso

Esta seção descreve os privilégios e as funções que permitem que você trabalhe com perfis de classificação e habilite a classificação automática de dados confidenciais.

Tarefa

Privilégios/funções necessários

Notas

Criação de um perfil de classificação

Função de banco de dados SNOWFLAKE.CLASSIFICATION_ADMIN

Para obter informações sobre como conceder essa função de banco de dados a outras funções, consulte Como usar as funções de banco de dados SNOWFLAKE.

CREATESNOWFLAKE.DATA_PRIVACY.CLASSIFICATION_PROFILE no esquema

Você precisa desse privilégio no esquema em que deseja criar a instância do perfil de classificação.

USAGE no banco de dados e no esquema

Você precisa de privilégios no esquema em que deseja criar a instância do perfil de classificação.

Definir o perfil de classificação em um banco de dados/esquema

Um dos seguintes:

  • EXECUTEAUTOCLASSIFICATION na conta

  • EXECUTE AUTO CLASSIFICATION no banco de dados/esquema

Por padrão, o proprietário do banco de dados/esquema tem o privilégio EXECUTE AUTO CLASSIFICATION sobre ele.

Qualquer privilégio no banco de dados do esquema

Ao definir um perfil de classificação em um esquema, você precisa de pelo menos um privilégio no banco de dados que contém esse esquema.

Qualquer privilégio no banco de dados/esquema

Você precisa de pelo menos um privilégio no banco de dados/esquema que contém a tabela que deseja classificar automaticamente. O privilégio EXECUTE AUTO CLASSIFICATION atende a esse requisito.

Um dos seguintes:

  • OWNERSHIP na instância do perfil de classificação.

  • Função de instância <classification_profile>!PRIVACY_USER no perfil de classificação.

Para obter informações sobre como conceder a função de instância PRIVACY_USER a outras funções, consulte Funções de instância.

APPLY TAG na conta

Chame os métodos em uma instância de perfil de classificação

Função de instância <classification_profile>!PRIVACY_USER

Para obter informações sobre como conceder essa função de instância a outras funções, consulte Funções de instância.

Listagem de perfis de classificação

Função de instância <classification_profile>!PRIVACY_USER

Descarte de perfis de classificação

OWNERSHIP na instância do perfil de classificação

Para obter um exemplo de concessão desses privilégios e funções de banco de dados à função de um engenheiro de dados, consulte Exemplo básico: classificação automática de tabelas em um banco de dados.

Custo da classificação automática de dados confidenciais

A classificação automática de dados confidenciais consome créditos, pois utiliza recursos de computação sem servidor para classificar tabelas no banco de dados. Para obter mais informações sobre os preços desse consumo, consulte a Tabela 5 em Snowflake Service Consumption Table.

É possível consultar exibições nos esquemas ACCOUNT_USAGE e ORGANIZATION_USAGE para determinar quanto foi gasto na classificação automática de dados confidenciais. Para monitorar o consumo de crédito, consulte as seguintes exibições:

Exibição METERING_HISTORY (ACCOUNT_USAGE)

Permite que você recupere o custo por hora da classificação automática, concentrando-se em SENSITIVE_DATA_CLASSIFICATION na coluna SERVICE_TYPE. Por exemplo:

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';
Copy
Exibição METERING_DAILY_HISTORY (ACCOUNT_USAGE e ORGANIZATION_USAGE)

Permite que você recupere o custo diário da classificação automática, concentrando-se em SENSITIVE_DATA_CLASSIFICATION na coluna SERVICE_TYPE. Por exemplo:

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';
Copy
USAGE_IN_CURRENCY_DAILY (ORGANIZATION_USAGE)

Permite que você recupere o custo diário da classificação automática, concentrando-se em SENSITIVE_DATA_CLASSIFICATION na coluna SERVICE_TYPE. Use essa exibição para determinar o custo em moeda, não em créditos.

Exemplos

Exemplo básico: classificação automática de tabelas em um banco de dados

Conclua estas etapas para classificar automaticamente uma tabela no banco de dados:

  1. Como administrador, conceda ao engenheiro de dados as funções e privilégios necessários para classificar automaticamente as tabelas em um banco de dados.

    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;
    
    Copy
  2. Alterne para a função de engenheiro de dados:

    USE ROLE data_engineer;
    
    Copy
  3. Crie o perfil de classificação como uma instância da 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
        });
    
    Copy
  4. Chame o método DESCRIBE na instância para confirmar suas propriedades:

    SELECT my_classification_profile!DESCRIBE();
    
    Copy
  5. Defina a instância do perfil de classificação no esquema, que inicia o processo em segundo plano de monitoramento das tabelas no esquema e as classifica automaticamente quanto a dados confidenciais.

    ALTER DATABASE mydb
     SET CLASSIFICATION_PROFILE = 'mydb.sch.my_classification_profile';
    
    Copy

    Nota

    Há um atraso de uma hora entre a configuração do perfil de classificação no esquema e o início da classificação do esquema pelo Snowflake.

  6. Após esperar uma hora, chame o procedimento armazenado SYSTEM$GET_CLASSIFICATION_RESULT para obter os resultados da classificação automática.

    CALL SYSTEM$GET_CLASSIFICATION_RESULT('mydb.sch.t1');
    
    Copy

Exemplo: uso de um mapeamento de tags e classificadores personalizados

  1. Como administrador, conceda ao engenheiro de dados as funções e privilégios necessários para classificar automaticamente as tabelas em um banco de dados e definir tags nas colunas.

  2. Crie o perfil de classificação.

    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
        });
    
    Copy
  3. Chame o método SET_TAG_MAP na instância para adicionar um mapeamento de tags ao perfil de classificação. Isso permite que tags personalizadas sejam aplicadas automaticamente em colunas com dados confidenciais.

    CALL my_classification_profile!SET_TAG_MAP(
      {'column_tag_map':[
        {
          'tag_name':'my_db.sch1.pii',
          'tag_value':'sensitive',
          'semantic_categories':['NAME']
        }]});
    
    Copy

    Como alternativa, você poderia ter adicionado esse mapeamento de tags ao criar o perfil de classificação.

  4. Chame o método SET_CUSTOM_CLASSIFIERS para adicionar classificadores personalizados ao perfil de classificação. Isso permite que os dados confidenciais sejam classificados automaticamente com categorias semânticas e de privacidade definidas pelo usuário.

    CALL my_classification_profile!set_custom_classifiers(
      {
        'medical_codes': medical_codes!list(),
        'finance_codes': finance_codes!list()
      });
    
    Copy

    Como alternativa, você poderia ter adicionado os classificadores personalizados ao criar o perfil de classificação.

  5. Chame o método DESCRIBE na instância para confirmar que o mapeamento de tags e os classificadores personalizados foram adicionados ao perfil de classificação.

    SELECT my_classification_profile!DESCRIBE();
    
    Copy
  6. Defina a instância do perfil de classificação no banco de dados.

    ALTER DATABASE mydb
     SET CLASSIFICATION_PROFILE = 'mydb.sch.my_classification_profile';
    
    Copy
  7. Anexe uma política de mascaramento à tag tag_db.sch.pii para ativar o mascaramento baseado em tag.

    ALTER TAG tag_db.sch.pii SET MASKING POLICY pii_mask;
    
    Copy

Exemplo: testes de um perfil de classificação antes de ativar a classificação automática

  1. Como administrador, conceda ao engenheiro de dados as funções e os privilégios de que ele precisa para classificar automaticamente as tabelas em um esquema e definir tags nas colunas.

  2. Crie o perfil de classificação com um mapeamento de tags e classificadores personalizados:

    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()
        }
      }
    );
    
    Copy
  3. Chame o procedimento armazenado SYSTEM$CLASSIFY para testar os mapeamentos de tags na tabela table1 antes de ativar a classificação automática.

    CALL SYSTEM$CLASSIFY(
     'db.sch.table1',
     'db.sch.my_classification_profile'
    );
    
    Copy

    A chave tags na saída contém os detalhes sobre se a tag foi definida (true se definida, false caso contrário), o nome da tag definida e o valor da tag:

    {
      "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
        }
      }
    }
    
  4. Após verificar se a classificação automática com base no perfil de classificação terá o resultado desejado, defina a instância do perfil de classificação no banco de dados.

    ALTER DATABASE mydb
     SET CLASSIFICATION_PROFILE = 'mydb.sch.my_classification_profile';
    
    Copy

Solução de problemas

A maneira mais simples de começar a solucionar problemas de uma tabela que não foi classificada é consultá-la diretamente (por exemplo, SELECT * FROM my_table). Se uma tabela não puder ser consultada, ela não poderá ser classificada automaticamente.

Se um objeto não puder ser classificado automaticamente, o Snowflake registra um evento em uma tabela de eventos. Por padrão, o evento é registrado na tabela de eventos em nível de conta. Se você tiver uma tabela de eventos definida para o banco de dados do objeto com falha, o evento será registrado lá.

Em geral, há um atraso antes que o Snowflake tente classificar o objeto novamente. Cada tentativa adicional com falha é registrada na tabela de eventos. Esse processo de atraso e nova tentativa continua até que o objeto seja corrigido ou removido da classificação automática.

Nota

Para ajudar a evitar custos desnecessários, o Snowflake aguarda um tempo adicional para tentar classificar novamente alguns erros, como tempos limite esgotados. Para esses erros de tempo limite esgotado, o Snowflake não tenta classificar novamente até que todos os objetos sejam reclassificados; o cronograma no qual os objetos são reclassificados é controlado pela chave maximum_classification_validity_days do perfil de classificação.

Se você quiser impedir que eventos de classificação sejam registrados, defina o parâmetro de conta ENABLE_AUTOMATIC_SENSITIVE_DATA_CLASSIFICATION_LOG como FALSE.

Listagem de erros gerais

A consulta a seguir na tabela de eventos retorna erros gerais relacionados à classificação automática:

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

Para um subconjunto das possíveis mensagens de erro retornadas por essa consulta, consulte Mensagens de erro relacionadas a tags.

Listagem de erros de classificação em nível de objeto

A consulta a seguir na tabela de eventos retorna erros relacionados à classificação de um objeto específico. Por exemplo, ela retorna erros que ocorreram quando o Snowflake tentou classificar uma tabela específica.

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