Habilitar o controle de acesso à tabela de metastore do Hive em um cluster (legado)
Este artigo descreve como habilitar o controle de acesso à tabela para o metastore interno do Hive em um cluster.
Para obter informações sobre como definir privilégios em objetos protegíveis de metastore do Hive depois que o controle de acesso à tabela tiver sido habilitado em um cluster, consulte Privilégios de metastore do Hive e objetos protegíveis (legado).
Nota
O controlo de acesso às tabelas do metastore do Hive é um modelo de gestão de dados legado. 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:
- Controle de acesso à tabela somente SQL, que restringe os usuários a comandos SQL.
- Controle de acesso à tabela Python e SQL, que permite aos usuários executar comandos SQL, Python e PySpark.
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.
Controle de acesso à tabela somente SQL
Esta versão do controle de acesso à tabela restringe os usuários apenas aos comandos SQL.
Para habilitar o controle de acesso de tabela somente SQL em um cluster e restringir esse cluster a usar apenas comandos SQL, defina o seguinte sinalizador no conf do Spark do cluster:
spark.databricks.acl.sqlOnly true
Nota
O acesso ao controle de acesso à tabela somente SQL não é afetado pela configuração Habilitar Controle de Acesso à Tabela na página de configurações de administrador. 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.
- Deve executar seus comandos em nós de cluster como um usuário de baixo privilégio proibido de acessar partes confidenciais do sistema de arquivos ou criar conexões de rede para portas diferentes de 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ção
spark.databricks.pyspark.iptable.outbound.whitelisted.ports
do Spark 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.
Habilitar o controle de acesso à tabela para seu espaço de trabalho
Antes que os usuários possam configurar o controle de acesso à tabela Python e SQL, um 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.
- Vá para a página de configurações.
- Clique na segurança separador.
- Ative a opção Controle de Acesso à Tabela.
Impor controle 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 usuários não têm permissão CAN ATTACH TO para qualquer cluster que não esteja habilitado para controle de acesso à tabela.
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 compartilhado.
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 protegíveis (legado).