Ativar o controlo de acesso à tabela do metastore do Hive num cluster (legado)

Este artigo descreve como ativar o controlo de acesso a tabelas para o metastore incorporado do Hive num cluster.

Para obter informações sobre como definir privilégios em objetos passíveis de proteção do metastore do Hive após o controlo de acesso a tabelas ter sido ativado num cluster, consulte Privilégios e objetos passíveis de proteção do metastore do Hive (legado).

Note

O controle de acesso à tabela de metastore do Hive é um modelo de governança de dados herdado. O Databricks recomenda a utilização do Unity Catalog pela sua simplicidade e modelo de gestão centrado na conta. Pode atualizar as tabelas geridas pelo metastore do Hive para o metastore do Unity Catalog.

Habilitar o controle de acesso à tabela para um cluster

O controle de acesso à tabela está disponível em duas versões:

O controle de acesso à tabela não é suportado com o Machine Learning Runtime.

Importante

Mesmo que o controle de acesso à tabela esteja habilitado para um cluster, os administradores do espaço de trabalho do Azure Databricks terão acesso aos dados no nível do arquivo.

Controlo de acesso a tabelas exclusivamente por SQL

Esta versão do controle de acesso à tabela restringe os usuários apenas aos comandos SQL.

Para ativar o controlo de acesso de tabela somente SQL num cluster e restringir esse cluster a utilizar apenas comandos SQL, configure o seguinte parâmetro na configuração do Spark do cluster:

spark.databricks.acl.sqlOnly true

Note

O acesso ao controlo de acesso à tabela apenas por SQL não é afetado pela opção Ativar Controlo de Acesso à Tabela na página de definições de administração. Essa configuração controla apenas a habilitação em todo o espaço de trabalho do controle de acesso à tabela Python e SQL.

Controle de acesso à tabela Python e SQL

Esta versão do controle de acesso à tabela permite que os usuários executem comandos Python que usam a API DataFrame, bem como SQL. Quando ele é habilitado em um cluster, os usuários nesse cluster:

  • Pode acessar o Spark somente usando a API SQL do Spark ou a API DataFrame. Em ambos os casos, o acesso a tabelas e exibições é restrito pelos administradores de acordo com os Privilégios do Azure Databricks que você pode conceder em objetos de metastore do Hive.
  • Têm de executar os seus comandos em nós do cluster como um utilizador com poucos privilégios, impedido de aceder a partes sensíveis do sistema de ficheiros ou de criar ligações de rede a portas que não sejam 80 e 443.
    • Apenas as funções Spark incorporadas podem criar ligações de rede em portas diferentes da 80 e 443.
    • Somente usuários administradores do espaço de trabalho ou usuários com privilégio ANY FILE podem ler dados de bancos de dados externos por meio do conector JDBC PySpark.
    • Se quiser que os processos Python possam acessar portas de saída adicionais, você pode definir a configuraçãoSpark para as portas que deseja permitir o acesso. O formato suportado do valor de configuração é [port[:port][,port[:port]]...], por exemplo: 21,22,9000:9999. A porta deve estar dentro do intervalo válido, ou seja, 0-65535.

As tentativas de contornar essas restrições fracassarão com uma exceção. Essas restrições estão em vigor para que os usuários nunca possam acessar dados sem privilégios por meio do cluster.

Ativar o controlo de acesso às tabelas para o seu espaço de trabalho

Antes que os usuários possam configurar o controle de acesso à tabela Python e SQL, um administrador do espaço de trabalho do Azure Databricks deve habilitar o controle de acesso à tabela para o espaço de trabalho do Azure Databricks e negar aos usuários acesso a clusters que não estão habilitados para controle de acesso à tabela.

  1. Vá para a página de configurações.
  2. Clique na guia Segurança .
  3. Ative a opção Controlo de Acesso à Tabela.

Aplicar controlo de acesso à tabela

Para garantir que os usuários acessem apenas os dados desejados, você deve restringir os usuários a clusters com o controle de acesso à tabela habilitado. Em particular, deve assegurar que:

  • Os usuários não têm permissão para criar clusters. Se eles criarem um cluster sem controle de acesso à tabela, eles poderão acessar quaisquer dados desse cluster.
  • Os utilizadores não têm a permissão CAN ATTACH TO em nenhum cluster que não tenha o controlo de acesso a tabelas ativado.

Consulte Permissões de computação para obter mais informações.

Criar um cluster habilitado para controle de acesso à tabela

O controle de acesso à tabela é habilitado por padrão em clusters com o modo de acesso Padrão.

Para criar o cluster usando a API REST, consulte Criar novo cluster.

Definir privilégios num objeto de dados

Consulte Privilégios de metastore do Hive e objetos securitizáveis (legado).