Automatizar as Permissões do Catálogo de Unidade do Azure Databricks ao 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 estão disponíveis publicamente no site do Azure/Databricks.

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

Privilégios no Nível do Esquema do Unity Catalog

Unity Catalog privilege model

O modelo de privilégios hierárquico no Unity Catalog permite aos usuários aplicar privilégios em qualquer nível da hierarquia, e o(s) objeto(s) filho 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 Unity Catalog (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 ao nível do esquema permite que você conceda ou restrinja o acesso a todos os objetos relevantes a uma equipe dentro desse esquema.
  3. Gerenciamento consistente de permissões: Para ambientes onde novos objetos (tabelas/visualizações) são frequentemente adicionados a um esquema, definir permissões ao nível do esquema garante que novos objetos herdem automaticamente as permissões, 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 ao 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.
  • O(s) Principal(is) está(ão) associado(s) ao espaço de trabalho do Databricks.
  • O usuário que executa o script de permissão tem permissões adequadas no esquema e catálogo.

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

Crie um caderno no espaço de trabalho do Databricks. Para criar um caderno no seu espaço de trabalho, clique no “+” Novo na barra lateral e escolha Caderno

Copie e cole o trecho de código abaixo na célula do caderno 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 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, 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. Uma vez que o catálogo apareça 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 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 para um esquema como parte da sua validação.

SQL

 

Conclusão

Automatizar o gerenciamento 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 ao 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 gerenciamento e a chance de erros manuais ao agrupar tabelas e visualizações dentro de um esquema e aplicar permissões consistentes para todo o esquema.

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