Gerenciamento de mudanças de comportamento¶
Este documento explica como verificar se um determinado pacote de mudança de comportamento está habilitado em sua conta e como habilitá-lo ou desabilitá-lo.
Neste tópico:
Visão geral¶
Snowflake implementa mudanças de comportamento mensalmente em pacotes incluídos versões regulares. Durante o período de teste e o período de recusa para cada pacote de mudança de comportamento, você pode ativar ou desativar o pacote em sua conta. Este documento explica como verificar se um determinado pacote está habilitado em sua conta e como habilitá-lo ou desabilitá-lo.
Neste documento, bundle_name
é o nome do pacote de mudança de comportamento no formato YYYY_NN
, encontrado no Log de mudança de comportamento.
Nota
Mudanças de comportamento em pacotes não podem ser habilitadas/desabilitadas individualmente. Para ativar/desativar uma mudança de comportamento, você deve ativar/desativar o pacote que contém a mudança.
Verificação do status de um pacote de mudança de comportamento em sua conta¶
Para verificar se um pacote de mudança de comportamento específico está ativado em sua conta, use a função SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS com o bundle_name
como argumento:
SELECT SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS('2021_02'); +-------------------------------------------------+ | SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS('2021_02') | |-------------------------------------------------| | DISABLED | +-------------------------------------------------+
Habilitação de um pacote de mudança de comportamento em sua conta¶
Para ativar uma determinada mudança de comportamento em sua conta, use a função SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE e especifique o bundle_name
que contém a mudança:
SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2021_02'); +-------------------------------------------------+ | SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2021_02') | |-------------------------------------------------| | ENABLED | +-------------------------------------------------+
Desabilitação de um pacote de mudança de comportamento em sua conta¶
Para desativar uma determinada mudança de comportamento em sua conta, use a função SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE e especifique o bundle_name
que contém a mudança:
SELECT SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE('2021_02'); +-------------------------------------------------+ | SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE('2021_02')| |-------------------------------------------------| | DISABLED | +-------------------------------------------------+
Mitigação de atualizações de valores de retorno da política de mascaramento¶
Esta seção descreve atualizações para valores de retorno NULL e valores de retorno para comprimento, precisão e escala nas condições da política de mascaramento (coletivamente: “atualizações de valores de retorno”) e como usar a exibição temporária BCR_2022_07_DDM_ROLLOUT (no esquema SNOWFLAKE.BCR_ROLLOUT) para mitigar essas atualizações de valores de retorno.
Durante o período de teste do pacote 2022_08
de alterações de comportamento, o Snowflake apresenta falhas nas consultas quando os seguintes fatores são verdadeiros:
O pacote de alterações de comportamento está habilitado e
Consulte uma coluna com política de mascaramento quando:
As condições da política de mascaramento retornam NULL para um campo de coluna que é NOT NULL.
Por exemplo, a política de mascaramento retorna NULL para um campo que deve ser um número inteiro porque o tipo de dados da coluna é INTEGER.
As condições da política de mascaramento retornam um valor cujo comprimento, escala ou precisão é maior que o comprimento, escala ou precisão da coluna para a qual a política de mascaramento está atribuída. Por exemplo:
Criar uma política:
create masking policy mp as (s string) returns string -> 'abcdef';
Atribuir a política:
create table t(col1 string(2)); alter table t modify column col1 set masking policy mp;
Consultar a coluna (falha):
select * from t;
Para determinar o impacto dessa alteração e fornecer tempo suficiente para atualizar as condições da política de mascaramento para proteger os dados, o Snowflake fornece um esquema e uma exibição especial dentro do banco de dados SNOWFLAKE compartilhado para mapear a coluna da tabela, a política de mascaramento e um possível motivo para a falha de uma consulta de uma coluna protegida por uma política de mascaramento.
Observe que as atualizações do valor de retorno serão ativadas por padrão quando o pacote de alterações de comportamento 2023_01
(isto é, o período de cancelamento para o pacote de alterações de comportamento 2022_08
) for publicado. Durante o período de cancelamento, a opção de desabilitar o pacote de alterações de comportamento fica disponível para adiar ainda mais os efeitos das atualizações de valores de retorno.
A exibição BCR_2022_07_DDM_ROLLOUT é temporária. O Snowflake removerá a exibição quando as atualizações de valores de retorno estiverem habilitadas de forma geral quando o pacote de mudança de comportamento 2023_02
for publicado. Nesse momento, não será mais possível consultar a exibição para determinar as colunas e políticas afetadas, ou evitar a consulta de colunas ou falhas nas operações de atribuição da política de mascaramento devido a atualizações dos valores de retorno.
Para obter mais detalhes sobre o processo de alteração de comportamento, consulte Política de alteração de comportamento.
Identificar política de mascaramento e associações de colunas¶
Para consultar a exibição e mitigar as próximas alterações dos valores de retorno, faça o seguinte:
Consulte a exibição
SNOWFLAKE.BCR_ROLLOUT.BCR_2022_07_DDM_ROLLOUT
. Por exemplo:use role accountadmin; select * from snowflake.bcr_rollout.bcr_2022_07_ddm_rollout;
Avalie a coluna REASON na referência da exibição BCR_2022_07_DDM_ROLLOUT para determinar que atualização precisa ser feita nas condições da política de mascaramento.
Atualize as condições da política de mascaramento com uma instrução ALTER MASKING POLICY para garantir que os dados da coluna permaneçam protegidos e que as operações de atribuição de políticas ou consultas de colunas protegidas não falhem.
Teste as novas condições da política consultando as colunas da tabela às quais são atribuídas as políticas de mascaramento.
Referência da exibição BCR_2022_07_DDM_ROLLOUT¶
A exibição BCR_2022_07_DDM_ROLLOUT (no esquema SNOWFLAKE.BCR_ROLLOUT) registra informações a partir de 15 de julho de 2022 e contém as seguintes colunas:
Coluna |
Tipo de dados |
Descrição |
---|---|---|
POLICY_NAME |
TEXT |
O nome da política. |
POLICY_ID |
NUMBER |
Identificador interno/gerado pelo sistema para a política. |
POLICY_SCHEMA |
TEXT |
O esquema principal da política. |
POLICY_DATABASE |
TEXT |
O banco de dados principal da política. |
POLICY_BODY |
TEXT |
As condições da política para mascarar ou desmascarar os dados da coluna. |
COLUMN_NAME |
TEXT |
O nome da coluna que tem a política. |
TABLE_NAME |
TEXT |
O nome da tabela. |
TABLE_ID |
NUMBER |
Identificador interno/gerado pelo sistema para a tabela. |
TABLE_SCHEMA |
TEXT |
O esquema principal da tabela. |
TABLE_DATABASE |
TEXT |
O banco de dados principal da tabela. |
REASON |
TEXT |
Possível motivo da incompatibilidade. |
A coluna REASON pode ter um dos seguintes valores, conforme especificado pela coluna REASON_MESSAGE na tabela a seguir. As colunas adicionais na tabela abaixo ajudam os administradores a decidir como interpretar a coluna REASON e atualizar as condições da política de mascaramento:
Mensagem do motivo |
Causa |
Ação |
---|---|---|
POLICY_ASSOCIATION_ON_NOT_NULL_COLUMN |
Uma política de mascaramento é atribuída a uma coluna NOT NULL. |
Verifique se as condições da política de mascaramento não retornam um valor NULL em algum lugar das condições da política. |
LENGTH_MISMATCH |
Uma política de mascaramento atribuída a uma coluna cujo tipo de dados é VARCHAR ou BINARY retorna dados com um comprimento maior do que o comprimento da coluna. |
Modifique as condições da política de mascaramento para garantir que o comprimento do valor de retorno tenha um comprimento menor ou igual ao comprimento da coluna. |
PRECISION_MISMATCH |
Uma política de mascaramento atribuída a uma coluna cujo tipo de dados é NUMBER retorna um dado de maior precisão do que a precisão da coluna. |
Modifique as condições da política para garantir que a precisão do valor de retorno seja menor ou igual à precisão da coluna. |
SCALE_MISMATCH |
Uma política atribuída a uma coluna cujo tipo de dados é NUMBER ou TIMESTAMP retorna dados com uma escala maior do que a escala da coluna. |
Modifique as condições da política para garantir que a escala do valor de retorno seja menor ou igual à escala da coluna. |
Incompatibilidade desconhecida. Recomenda-se a investigação manual. |
A política de mascaramento retorna um valor NULL ou as condições da política de mascaramento contêm uma subconsulta. |
Modifique a política para que o valor de retorno seja menor ou igual ao comprimento, precisão ou escala da coluna. |