Compartilhar via


Controle de acesso refinado na computação dedicada (anteriormente computação de usuário único)

Este artigo apresenta a funcionalidade de filtragem de dados que permite um controle de acesso refinado em consultas que são executadas em computação dedicada (computação para todos os fins ou tarefas configuradas com o modo de acesso dedicado ). Consulte Modos de acesso.

Essa filtragem de dados é executada nos bastidores usando a computação sem servidor.

Por que algumas consultas na computação dedicada exigem filtragem de dados?

O Catálogo do Unity permite controlar o acesso a dados tabulares no nível de coluna e linha (também conhecido como controle de acesso refinado) usando os seguintes recursos:

Quando os usuários consultam exibições que excluem dados de tabelas referenciadas ou tabelas de consulta que aplicam filtros e máscaras, eles podem usar qualquer um dos seguintes recursos de computação sem limitações:

  • SQL warehouses
  • Computação padrão (computação anteriormente compartilhada)

No entanto, se você usar a computação dedicada para executar essas consultas, a computação e seu workspace deverão atender a requisitos específicos:

Se o recurso de computação dedicado e o workspace atenderem a esses requisitos, a filtragem de dados será executada automaticamente sempre que você consultar uma exibição ou tabela que usa controle de acesso refinado.

Suporte para exibições materializadas, tabelas de streaming e exibições padrão

Além de exibições dinâmicas, filtros de linha e máscaras de coluna, a filtragem de dados também permite consultas nas seguintes tabelas e exibições que não são suportadas em ambientes de computação dedicada executando o Databricks Runtime 15.3 e versões anteriores:

Na computação dedicada executando o Databricks Runtime 15.3 e abaixo, o usuário que executa a consulta no modo de exibição deve ter SELECT nas tabelas e exibições referenciadas pelo modo de exibição, o que significa que você não pode usar exibições para fornecer controle de acesso refinado. No Databricks Runtime 15.4 com filtragem de dados, o usuário que consulta a exibição não precisa ter acesso às tabelas e exibições referenciadas.

Como a filtragem de dados funciona na computação dedicada?

Sempre que uma consulta acessa os seguintes objetos de banco de dados, o recurso de computação dedicado passa a consulta para a computação sem servidor para executar a filtragem de dados:

  • Exibições criadas sobre tabelas nas quais o usuário não tem o privilégio SELECT em
  • Exibições dinâmicas
  • Tabelas com filtros de linha ou máscaras de coluna definidas
  • Exibições materializadas e tabelas de streaming

No diagrama a seguir, um usuário tem SELECT no table_1, view_2 e table_w_rls que tem filtros de linha aplicados. O usuário não tem SELECT no table_2, que é referenciado por view_2.

Diagrama que mostra como funciona a filtragem de dados

A consulta no table_1 é tratada inteiramente pelo recurso de computação dedicado, pois nenhuma filtragem é necessária. As consultas no view_2 e table_w_rls exigem filtragem de dados para retornar os dados aos quais o usuário tem acesso. Essas consultas são tratadas pela funcionalidade de filtragem de dados na computação sem servidor.

Quais são os custos incorridos?

Os clientes são cobrados pelos recursos da computação sem servidor usados para executar operações de filtragem de dados. Para obter informações sobre preços, confira Camadas de Plataforma e Complementos.

Você pode consultar a tabela de uso de cobrança do sistema para ver quanto foi cobrado. Por exemplo, a consulta a seguir divide os custos da computação por usuário:

SELECT usage_date,
sku_name,
 identity_metadata.run_as,
SUM(usage_quantity) AS `DBUs consumed by FGAC`
FROM system.billing.usage
WHERE usage_date BETWEEN '2024-08-01' AND '2024-09-01'
 AND billing_origin_product = 'FINE_GRAINED_ACCESS_CONTROL'
GROUP BY 1, 2, 3 ORDER BY 1;

Exibir o desempenho da consulta quando a filtragem de dados estiver ativada

A interface do usuário do Spark para computação dedicada exibe métricas que você pode usar para entender o desempenho de suas consultas. Para cada consulta executada no recurso de computação, a guia SQL/Dataframe exibe a representação do grafo de consulta. Se uma consulta estiver envolvida na filtragem de dados, a interface do usuário exibirá um nó do operador RemoteSparkConnectScan na parte inferior do grafo. Esse nó exibe métricas que você pode usar para investigar o desempenho da consulta. Confira Exibir informações da computação na interface do usuário do Apache Spark.

SparkUI mostrando o nó RemoteSparkConnectScan

Expanda o nó do operador RemoteSparkConnectScan para ver as métricas que abordam perguntas como as seguintes:

  • Quanto tempo levou a filtragem de dados? Veja "tempo total de execução remota".
  • Quantas linhas permaneceram após a filtragem de dados? Veja "saída de linhas".
  • Quantos dados (em bytes) foram retornados após a filtragem de dados? Veja "tamanho da saída de linhas".
  • Quantos arquivos de dados foram removidos da partição e não precisaram ser lidos no armazenamento? Exibir "Arquivos removidos" e "Tamanho dos arquivos removidos".
  • Quantos arquivos de dados não puderam ser removidos e tiveram que ser lidos do armazenamento? Veja "Arquivos lidos" e "Tamanho dos arquivos lidos".
  • Dos arquivos que tinham que ser lidos, quantos já estavam no cache? Veja "Tamanho de acertos do cache" e "Tamanho de erros do cache".

Limitações

  • Não há suporte para operações de gravação ou atualização de tabelas em tabelas que tenham filtros de linha ou máscaras de coluna aplicados.

    Especificamente, não há suporte para operações de DML, como INSERT,DELETE, UPDATE, REFRESH TABLE e MERGE. Você só pode ler (SELECT) dessas tabelas.

  • As autojunções são bloqueadas por padrão quando a filtragem de dados é chamada, mas você pode permiti-las definindo spark.databricks.remoteFiltering.blockSelfJoins como false no computador em que está executando esses comandos.

    Antes de habilitar as auto-uniões em um recurso de computação dedicado, tenha em mente que uma consulta de auto-união realizada pela função de filtragem de dados pode retornar instantâneos diferentes da mesma tabela remota.

  • Não há suporte para imagens do Docker.
  • Se o workspace tiver sido implantado com um firewall antes de novembro de 2024, você deverá abrir as portas 8443 e 8444 para habilitar o controle de acesso refinado na computação dedicada. Consulte as regras do grupo de segurança de rede .