Pular para o conteúdo principal

Filtros de linha e máscaras de coluna

Esta página fornece orientação sobre o uso de filtros de linha e máscaras de coluna para filtrar dados confidenciais em suas tabelas.

O que são filtros de linha?

Os filtros de linha permitem controlar quais linhas um usuário pode acessar em uma tabela com base na lógica personalizada. No momento da consulta, um filtro de linha avalia uma condição e retorna somente as linhas que a atendem. Isso é comumente utilizado para implementar segurança em nível de linha — por exemplo, restringir usuários a registros de uma região, departamento ou account específicos.

Os filtros de linha são definidos como funções definidas pelo usuário (UDFs) do SQL e também podem incorporar lógica Python ou Scala quando envolvidos em uma UDF do SQL. Você pode aplicar filtros de linha por tabela ou centralmente por meio de políticas ABAC usando tags controladas.

O que são máscaras de coluna?

As máscaras de coluna controlam quais valores os usuários veem em colunas específicas, dependendo de quem são. No momento da consulta, a máscara substitui cada referência a uma coluna pelo resultado de uma função de mascaramento. Isso permite que dados confidenciais, como números de identidade social ou e-mails, sejam editados ou transformados com base na identidade ou função do usuário.

Cada coluna pode ter uma máscara. A máscara é definida como uma UDF SQL e pode, opcionalmente, envolver lógica Python ou Scala, e deve retornar um valor do mesmo tipo que a coluna que está sendo mascarada. As máscaras de coluna também podem usar outras colunas como entradas, por exemplo, para variar o comportamento com base em vários atributos.

Assim como os filtros de linha, as máscaras de coluna podem ser aplicadas por tabela ou gerenciadas centralmente por meio de políticas ABAC. Eles operam no momento da consulta e se integram perfeitamente com o SQL padrão, Notebook e painéis.

Quando se deve utilizar a visualização dinâmica em vez de filtros e máscaras?

A visualização dinâmica, os filtros de linha e as máscaras de coluna permitem aplicar filtros ou transformações lógicas no momento da consulta, mas diferem na forma como são gerenciados, definidos e expostos aos usuários.

Recurso

Aplica-se a

gerenciar utilizando

Impacto da nomenclatura

Melhor usado para...

Visão dinâmica

Exibições

Lógica SQL

Cria um novo nome de objeto

compartilhamento de dados filtrados ou abrangendo várias tabelas

Filtros de linha

tabelas

ABAC ou tabelas de mapeamento

Nome da tabela inalterado

Controle de acesso em nível de linha vinculado a tags de usuário ou de dados

Máscaras de coluna

Tabelas/colunas

ABAC ou tabelas de mapeamento

Nome da tabela inalterado

Elaboração de dados confidenciais de colunas com base na identidade

  • Utilize a visualização dinâmica quando necessitar de uma camada somente leitura em uma ou mais tabelas de origem, especialmente para compartilhamento de dados ou aplicação de lógica em várias entradas.
  • Use filtros de linha e máscaras de coluna quando quiser aplicar lógica diretamente a uma tabela, sem alterar o nome da tabela ou introduzir novos objetos. Estes podem ser gerenciados utilizando políticas ABAC (recomendado) ou manualmente em tabelas.

Para uma comparação completa, consulte Métodos de controle de acesso comparados.

Como aplicar filtros e máscaras

Você pode implementar filtros de linha e máscaras de coluna de duas maneiras principais:

  • Usando políticas ABAC (Beta): aplique filtros e máscaras centralmente usando tags controladas e políticas reutilizáveis. Essa abordagem se aplica a catálogos e esquemas e reduz a necessidade de configuração tabela por tabela. As políticas ABAC são mais seguras do que as políticas manuais em nível de tabela porque podem ser definidas por administradores de nível superior e não podem ser substituídas pelos proprietários de tabelas, o que ajuda a aplicar controles de acesso centralizados. Eles também têm melhor desempenho em muitos casos, pois a lógica de filtragem e mascaramento nas políticas ABAC é avaliada com mais eficiência do que nas UDFs específicas de tabelas. A Databricks recomenda o uso do ABAC para a maioria dos casos de uso. Para aplicar filtros e máscaras utilizando ABAC, consulte Unity Catalog controle de acesso baseado em atributos (ABAC).

  • Atribuição manual por tabela : aplique filtros e máscaras atribuindo funções diretamente a tabelas e colunas individuais. Esse método pode usar tabelas de mapeamento ou outra lógica personalizada. Permite um controle detalhado e específico para cada tabela, mas é mais difícil de escalar e manter. Para obter mais informações, consulte Aplicar manualmente filtros de linha e máscaras de coluna.