Automatizar as Permissões do Catálogo Unity do Azure Databricks no Nível do Esquema

Isenção de responsabilidade: Todas as opiniões expressas no blog pertencem exclusivamente ao autor e não necessariamente ao empregador do autor ou a qualquer outro grupo ou indivíduo. Este artigo não é uma promoção para qualquer plataforma de gerenciamento de nuvem/dados. Todas as imagens e trechos de código são publicamente disponibilizados no site do Azure/Databricks.

Neste artigo, fornecerei o script para automatizar o gerenciamento de permissões no nível do esquema do Catálogo Unity.

Privilégios no Nível do Esquema do Catálogo Unity

Unity Catalog privilege model

O modelo de privilégio hierárquico no Catálogo Unity permite aos usuários aplicar privilégios em qualquer nível da hierarquia, e o(s) objeto(s) filho(s) herdam automaticamente as mesmas permissões. Portanto, se a permissão for aplicada no nível do esquema, ela será automaticamente aplicada a todas as tabelas, visualizações, volumes e funções dentro do esquema.

No Catálogo Unity (Databricks), as permissões no nível do esquema são aplicadas quando você deseja controlar o acesso a um conjunto de tabelas e visualizações dentro de um esquema específico. As permissões no nível do esquema são tipicamente aplicadas nos seguintes cenários:

  1. Conceder acesso a grupos de objetos: Se você deseja gerenciar permissões para várias tabelas e visualizações coletivamente, é eficiente aplicar permissões no nível do esquema em vez de individualmente para cada tabela ou visualização. Isso permite controlar o acesso a todos os objetos dentro desse esquema simultaneamente.
  2. Controle organizacional: Quando diferentes equipes ou departamentos dentro de uma organização precisam de acesso a conjuntos de dados específicos, que são armazenados em esquemas separados. Aplicar permissões no nível do esquema permite conceder ou restringir o acesso a todos os objetos relevantes para uma equipe dentro desse esquema.
  3. Gestão consistente de permissões: Para ambientes onde novos objetos (tabelas/views) são frequentemente adicionados a um esquema, definir permissões no nível do esquema garante que os novos objetos herdem as permissões automaticamente, reduzindo a necessidade de atualizações manuais de permissão.
  4. Manutenção da segurança de dados: Quando você deseja impor controles de acesso sobre uma categoria específica de conjunto de dados (por exemplo, dados financeiros, dados de RH) que está logicamente organizada sob um esquema. Ao definir permissões no nível do esquema, você mantém a segurança dos dados enquanto simplifica a administração.

Script de Automação

Pré-requisitos

  • O Catálogo Unity já está configurado.
  • Principal(is) associado(s) ao workspace do Databricks.
  • O usuário que executa o script de permissão tem permissões adequadas no esquema e no catálogo.

Passo 1: Criar um Notebook e Declarar as Variáveis 

Crie um notebook no workspace do Databricks. Para criar um notebook no seu workspace, clique no “+” Novo na barra lateral, em seguida escolha Notebook

Copie e cole o trecho de código abaixo na célula do notebook e execute a célula.

Python

 

Passo 2: Definir o Catálogo e o Esquema

Copie, cole e execute o bloco de código abaixo em uma célula nova ou existente e execute a célula.

Python

 

Passo 3: Percorrer os Principais e Privilégios e Aplicar a Concessão no Catálogo e no Esquema

Copie, cole e execute o bloco de código abaixo em uma célula nova ou existente e, em seguida, execute a célula para aplicar as permissões.

Python

 

Validação

Você pode validar os privilégios abrindo a interface do Databricks e navegando até Catálogo no Explorador de Dados. Quando o catálogo aparecer na seção de Dados, clique no catálogo, em seguida, selecione o esquema onde você aplicou as permissões e vá para a guia de Permissões. Agora você pode ver todos os privilégios aplicados ao esquema.

Permissions applied in the default schema inside the main catalog available out of the box

Você também pode executar o script SQL abaixo em um notebook para exibir todas as permissões de um esquema como parte da sua validação.

SQL

 

Conclusão

A automação da gestão de privilégios no Catálogo Unity do Databricks no nível do esquema ajuda a garantir um controle de acesso consistente e eficiente para o grupo de objetos (por exemplo, tabelas, visualizações, funções e volumes) no catálogo. O código fornecido demonstra uma maneira prática de atribuir privilégios no nível do esquema, facilitando a gestão de permissões entre os principais (por exemplo, usuários e grupos). Esta abordagem reduz as tarefas de gestão e a chance de erros manuais agrupando tabelas e visualizações dentro de um esquema e aplicando permissões consistentes para todo o esquema.

Source:
https://dzone.com/articles/automate-databricks-unity-catalog-permissions-at-schema-level