Share via


Gerir privilégios no Catálogo Unity

Este artigo explica como controlar o acesso a dados e outros objetos no Unity Catalog. Para saber como esse modelo difere do controle de acesso no metastore do Hive, consulte Trabalhar com o Unity Catalog e o metastore herdado do Hive.

Quem pode gerir privilégios?

Inicialmente, os usuários não têm acesso aos dados em um metastore. Os administradores de conta do Azure Databricks, administradores de espaço de trabalho e administradores de metastore têm privilégios padrão para gerenciar o Catálogo Unity. Consulte Privilégios de administrador no Catálogo Unity.

Todos os objetos protegíveis no Unity Catalog têm um proprietário. Os proprietários de objetos têm todos os privilégios nesse objeto, incluindo a capacidade de conceder privilégios a outras entidades de segurança. Consulte Gerenciar a propriedade do objeto do Catálogo Unity.

Os privilégios podem ser concedidos por um administrador do metastore, pelo proprietário de um objeto ou pelo proprietário do catálogo ou esquema que contém o objeto. Os administradores de conta também podem conceder privilégios diretamente em um metastore.

Privilégios do catálogo do espaço de trabalho

Se seu espaço de trabalho foi habilitado para o Unity Catalog automaticamente, o espaço de trabalho é anexado a um metastore por padrão e um catálogo de espaço de trabalho é criado para seu espaço de trabalho no metastore. Os administradores de espaço de trabalho são os proprietários padrão do catálogo de espaço de trabalho. Como proprietários, eles podem gerenciar privilégios no catálogo do espaço de trabalho e todos os objetos filho.

Todos os usuários do espaço de trabalho recebem o USE CATALOG privilégio no catálogo do espaço de trabalho. Os usuários do espaço de trabalho também recebem os USE SCHEMAprivilégios default , CREATE TABLE, CREATE VOLUME, CREATE MODELCREATE FUNCTION, e no CREATE MATERIALIZED VIEW esquema no catálogo.

Para obter mais informações, consulte Ativação automática do catálogo Unity.

Modelo de herança

Os objetos protegíveis no Unity Catalog são hierárquicos e os privilégios são herdados para baixo. O objeto de nível mais alto a partir do qual os privilégios são herdados é o catálogo. Isto significa que a concessão de um privilégio num catálogo ou esquema concede automaticamente o privilégio a todos os objetos atuais e futuros dentro do catálogo ou esquema. Por exemplo, se você conceder a um usuário o SELECT privilégio em um catálogo, esse usuário poderá selecionar (ler) todas as tabelas e exibições nesse catálogo. Os privilégios concedidos num metastore do Catálogo Unity não são herdados.

Hierarquia de objetos do Catálogo Unity

Os proprietários de um objeto recebem automaticamente todos os privilégios nesse objeto. Além disso, os proprietários de objetos podem conceder privilégios no próprio objeto e em todos os seus objetos filho. Isso significa que os proprietários de um esquema não têm automaticamente todos os privilégios nas tabelas no esquema, mas eles podem conceder a si mesmos privilégios nas tabelas no esquema.

Nota

Se você criou seu metastore do Unity Catalog durante a visualização pública (antes de 25 de agosto de 2022), talvez esteja em um modelo de privilégio anterior que não suporta o modelo de herança atual. Você pode atualizar para o Modelo de Privilégios versão 1.0 para obter herança de privilégios. Consulte Atualizar para herança de privilégios.

Mostrar, conceder e revogar privilégios

Você pode gerenciar privilégios para objetos de metastore usando comandos SQL, a CLI Databricks, o provedor Databricks Terraform ou o Catalog Explorer.

Nos comandos SQL a seguir, substitua estes valores de espaço reservado:

  • <privilege-type> é um tipo de privilégio do Catálogo Unity. Consulte Tipos de privilégio.
  • <securable-type>: O tipo de objeto protegível, como CATALOG ou TABLE. Ver Objetos protegíveis
  • <securable-name>: O nome do securable. Se o tipo protegível for METASTORE, não forneça o nome protegível. Supõe-se que seja o metastore anexado ao espaço de trabalho.
  • <principal> é um utilizador, principal de serviço (representado pelo respetivo valor applicationId) ou grupo. Você deve incluir usuários, entidades de serviço e nomes de grupo que incluam caracteres especiais em backticks (` `). Ver Principal.

Mostrar concessões em objetos em um metastore do Unity Catalog

Permissões necessárias: Metastore admin, o proprietário do objeto, o proprietário do catálogo ou esquema que contém o objeto. Também pode ver as suas próprias subvenções.

Explorador de catálogos

  1. No seu espaço de trabalho do Azure Databricks, clique em Ícone do catálogoCatálogo.
  2. Selecione o objeto, como um catálogo, esquema, tabela ou exibição.
  3. Vá para a guia Permissões .

Sql

Execute o seguinte comando SQL em um bloco de anotações ou editor de consultas SQL. Você pode mostrar subsídios em um principal específico ou pode mostrar todos os subsídios em um objeto protegível.

  SHOW GRANTS [principal] ON  <securable-type> <securable-name>

Por exemplo, o comando a seguir mostra todas as concessões em um esquema chamado padrão no catálogo pai chamado main:

  SHOW GRANTS ON SCHEMA main.default;

O comando retorna:

  principal     actionType     objectType objectKey
  ------------- -------------  ---------- ------------
  finance-team   CREATE TABLE  SCHEMA     main.default
  finance-team   USE SCHEMA    SCHEMA     main.default

Conceder permissões em objetos em um metastore do Unity Catalog

Permissões necessárias: administrador do Metastore, o proprietário do objeto ou o proprietário do catálogo ou esquema que contém o objeto.

Explorador de catálogos

  1. No seu espaço de trabalho do Azure Databricks, clique em Ícone do catálogoCatálogo.
  2. Selecione o objeto, como um catálogo, esquema, tabela ou exibição.
  3. Vá para a guia Permissões .
  4. Clique em Conceder.
  5. Insira o endereço de e-mail de um usuário ou o nome de um grupo.
  6. Selecione as permissões a serem concedidas.
  7. Clique em OK.

Sql

Execute o seguinte comando SQL em um bloco de anotações ou editor de consultas SQL.

  GRANT <privilege-type> ON <securable-type> <securable-name> TO <principal>

Por exemplo, o comando a seguir concede a um grupo chamado finance-team acesso para criar tabelas em um esquema chamado default com o catálogo pai chamado main:

  GRANT CREATE TABLE ON SCHEMA main.default TO `finance-team`;
  GRANT USE SCHEMA ON SCHEMA main.default TO `finance-team`;
  GRANT USE CATALOG ON CATALOG main TO `finance-team`;

Revogar permissões em objetos em um metastore do Unity Catalog

Permissões necessárias: administrador do Metastore, o proprietário do objeto ou o proprietário do catálogo ou esquema que contém o objeto.

Explorador de catálogos

  1. No seu espaço de trabalho do Azure Databricks, clique em Ícone do catálogoCatálogo.
  2. Selecione o objeto, como um catálogo, esquema, tabela ou exibição.
  3. Vá para a guia Permissões .
  4. Selecione um privilégio concedido a um usuário, entidade de serviço ou grupo.
  5. Clique em Revogar.
  6. Para confirmar, clique em Revogar.

Sql

Execute o seguinte comando SQL em um bloco de anotações ou editor de consultas SQL.

  REVOKE <privilege-type> ON <securable-type> <securable-name> TO <principal>

Por exemplo, o comando a seguir revoga um grupo chamado acesso da equipe financeira para criar tabelas em um esquema chamado padrão com o catálogo pai chamado main:

  REVOKE CREATE TABLE ON SCHEMA main.default TO `finance-team`;

Mostrar concessões em um metastore

Permissões necessárias: administrador da Metastore ou administrador da conta. Você também pode visualizar suas próprias concessões em uma metastore.

Explorador de catálogos

  1. No seu espaço de trabalho do Azure Databricks, clique em Ícone do catálogoCatálogo.
  2. Ao lado do rótulo da página do Catalog Explorer , clique no ícone ao lado do nome do metastore.
  3. Vá para a guia Permissões .

Sql

Execute o seguinte comando SQL em um bloco de anotações ou editor de consultas SQL. Você pode mostrar concessões em um principal específico ou pode mostrar todas as concessões em um metastore.

  SHOW GRANTS [principal] ON METASTORE

Conceder permissões em um metastore

Permissões necessárias: administrador da Metastore ou administrador da conta.

Explorador de catálogos

  1. No seu espaço de trabalho do Azure Databricks, clique em Ícone do catálogoCatálogo.
  2. Ao lado do rótulo da página do Catalog Explorer , clique no ícone ao lado do nome do metastore.
  3. Na guia Permissões, clique em Conceder.
  4. Insira o endereço de e-mail de um usuário ou o nome de um grupo.
  5. Selecione as permissões a serem concedidas.
  6. Clique em OK.

Sql

  1. Execute o seguinte comando SQL em um bloco de anotações ou editor de consultas SQL.

    GRANT <privilege-type> ON METASTORE TO <principal>`;
    

    Quando você concede privilégios em um metastore, não inclui o nome do metastore, porque o metastore anexado ao seu espaço de trabalho é assumido.

Revogar permissões em um metastore

Permissões necessárias: administrador da Metastore ou administrador da conta..

Explorador de catálogos

  1. No seu espaço de trabalho do Azure Databricks, clique em Ícone do catálogoCatálogo.
  2. Ao lado do rótulo da página do Catalog Explorer , clique no ícone ao lado do nome do metastore.
  3. Na guia Permissões, selecione um usuário ou grupo e clique em Revogar.
  4. Para confirmar, clique em Revogar.

Sql

  1. Execute o seguinte comando SQL em um bloco de anotações ou editor de consultas SQL.

    REVOKE <privilege-type> ON METASTORE TO <principal>;
    

    Ao revogar privilégios em um metastore, você não inclui o nome do metastore, porque o metastore anexado ao seu espaço de trabalho é assumido.