Ativar o access control da tabela do Hive metastore em um cluster (legado)
Este artigo descreve como ativar o access control da tabela para o Hive metastore integrado em um cluster.
Para obter informações sobre como definir privilégios em objetos protegíveis do Hive metastore depois que o access control da tabela for ativado em um cluster, consulte Privilégios do Hive metastore e objetos protegíveis (legado).
O access control da tabela do Hive metastore é um modelo de governança de dados herdado. A Databricks recomenda que você use Unity Catalog devido à sua simplicidade e ao modelo de governança baseado na account. Você pode atualizar as tabelas gerenciadas pelo Hive metastore para o metastore do Unity Catalog.
Ativar o access control da tabela para um cluster
O access control da tabela está disponível em duas versões:
- controle de acesso somente SQL da tabela, que restringe os usuários a comandos SQL.
- access control da tabela para Python e SQL, que permite aos usuários executar comandos SQL, Python e PySpark.
Access control da tabela não é compatível com Runtime para machine learning.
Mesmo que o access control da tabela esteja habilitado para um cluster, os administradores do workspace do Databricks têm acesso aos dados em nível de arquivo.
access control da tabela somente SQL
Esta versão do access control da tabela restringe os usuários somente a comandos SQL.
Para ativar o access control da tabela somente SQL em um cluster e restringir esse cluster para usar somente comandos SQL, defina o sinalizador a seguir na configuração do Spark do cluster:
spark.databricks.acl.sqlOnly true
O acesso ao access control da tabela somente SQL não é afetado pela configuração "Habilitar access control da tabela" na página de configurações do administrador. Essa configuração controla apenas a ativação do controle de acesso a tabelas Python e SQL em todo o workspace.
Python e SQL access control da tabela
Esta versão de access control da tabela permite que os usuários executem comandos Python que utilizam a API do DataFrame, assim como SQL. Quando ativado em um cluster, os usuários nesse cluster:
- É possível acessar o Spark apenas usando a API do Spark SQL ou a API do DataFrame. Em ambos os casos, o acesso a tabelas e views é restrito por administradores de acordo com os Privilégios que você pode conceder em objetos Hive metastore.
- 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.
- Somente funções Spark integradas podem criar conexões de rede em portas diferentes de 80 e 443.
- Apenas usuários administradores de workspace ou usuários com o privilégio ANY FILE podem ler dados de bancos de dados externos através do conector JDBC do PySpark.
- Se você quiser que os processos Python possam acessar portas de saída adicionais, você pode definir a configuração do Spark
spark.databricks.pyspark.iptable.outbound.whitelisted.portspara as portas às quais deseja permitir acesso. O formato compatível do valor da 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 falharão com uma exceção. Essas restrições existem para que os usuários nunca possam acessar dados não privilegiados por meio do cluster.
Ativar access control da tabela para seu workspace
Antes que os usuários possam configurar o access control da tabela do Python e SQL, um administrador de workspace do Databricks deve habilitar o access control da tabela para o workspace do Databricks e negar aos usuários acesso a clusters que não estão habilitados para access control da tabela.
- Vá para a página de configurações.
- Clique na tab Segurança.
- Ativar a opção de access control da tabela.
Aplicar o access control da tabela
Para garantir que seus usuários acessem apenas os dados que você deseja, você deve restringir seus usuários a clusters com access control da tabela habilitado. Em particular, é importante garantir que:
- Os usuários não têm permissão para criar clusters. Se eles criarem um cluster sem access control da tabela, poderão acessar quaisquer dados desse cluster.
- Os usuários não têm permissão CAN ATTACH TO para nenhum cluster que não esteja habilitado para access control da tabela.
Consulte Permissões de compute para obter mais informação.
Criar um cluster habilitado para access control da tabela
O access control da tabela está habilitado por default em clusters com Modo de acesso padrão.
Para criar o cluster usando a API REST, consulte Criar novo cluster.
Definir privilégios para um objeto de dados
Consulte Privilégios do Hive metastore e objetos protegíveis (legado).