gerenciar privilégios em Unity Catalog
Esta página explica como conceder, revogar e inspecionar privilégios em objetos protegíveis Unity Catalog , e como gerenciar a propriedade de objetos. Para obter informações conceituais sobre o modelo de permissões, herança de privilégios e propriedade, consulte os conceitos do modelo de permissõesUnity Catalog.
Quem pode gerenciar os privilégios?
Inicialmente, os usuários não têm acesso aos dados em uma metastore. Databricks account Administradores, administradores do workspace e administradores do metastore têm privilégios do default para gerenciar o Unity Catalog. Consulte Privilégios de administrador no Unity Catalog.
Todos os objetos que podem ser protegidos no Unity Catalog têm um proprietário. Os proprietários dos objetos têm todos os privilégios sobre esse objeto, incluindo a capacidade de conceder privilégios a outras entidades. Os proprietários podem conceder a outros usuários o privilégio MANAGE no objeto, o que permite aos usuários gerenciar privilégios no objeto. Veja gerenciar a propriedade do objeto.
Os privilégios podem ser concedidos por qualquer um dos seguintes:
- O proprietário do objeto.
- O proprietário do catálogo ou esquema que contém o objeto.
- Um usuário com o privilégio
MANAGEno objeto. - Um administrador da metastore.
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 o seu workspace foi habilitado para Unity Catalog automaticamente, o workspace será anexado a um metastore por padrão e será criado um catálogo de workspaces criado para o seu workspace no metastore. Os administradores do workspace são os proprietários padrão do catálogo do workspace. Como proprietários, eles podem gerenciar privilégios no catálogo do workspace e todos os objetos secundários.
Todos os usuários do workspace recebem o privilégio USE CATALOG no catálogo workspace. Os usuários do espaço de trabalho também recebem os privilégios USE SCHEMA, CREATE TABLE, CREATE VOLUME, CREATE MODEL, CREATE FUNCTION e CREATE MATERIALIZED VIEW no esquema default do catálogo.
Para obter mais informações, consulte Habilitação automática do Unity Catalog site.
Mostrar, conceder e revogar privilégios
O senhor pode gerenciar privilégios para objetos de metastore usando SQL comando,Databricks CLI o, o Databricks Terraform provedor ou o Catalog Explorer.
No comando SQL a seguir, substitua esses valores de espaço reservado:
<privilege-type>é um tipo de privilégio do Unity Catalog. Consulte Tipos de privilégios.<securable-type>: o tipo de objeto protegível, comoCATALOGouTABLE. Consulte Objetos protegíveis<securable-name>: O nome do protegível. Se o tipo protegível forMETASTORE, não forneça o nome protegível. Presume-se que seja o metastore anexado ao site workspace.<principal>é um usuário, uma entidade de serviço (representada por seu valor applicationId) ou um grupo. Os nomes de usuários, entidades de serviço e grupos que incluírem caracteres especiais devem ser colocados entre chaves (` `). Veja o diretor.
Mostrar concessões em um objeto
Atualmente, os usuários com o privilégio MANAGE em um objeto não podem view todas as concessões para esse objeto no INFORMATION_SCHEMA. Em vez disso, o INFORMATION_SCHEMA mostra apenas as doações de suas próprias doações no objeto. Esse comportamento será corrigido no futuro.
Os usuários com privilégio MANAGE podem view todas as concessões em um objeto usando o comando SQL ou o Catalog Explorer. Consulte gerenciar privilégios em Unity Catalog.
Permissões necessárias:
- Os administradores do Metastore, os usuários com o privilégio
MANAGEno objeto, o proprietário do objeto ou o proprietário do catálogo ou esquema que contém o objeto podem ver todas as concessões do objeto. - Se o senhor não tiver as permissões acima, poderá view apenas suas próprias concessões no objeto.
- Catalog Explorer
- SQL
- Em seu site Databricks workspace, clique em
Catalog .
- Selecione o objeto, como um catálogo, esquema, tabela ou view.
- Acesse Permissions (Permissões ) tab.
Execute o seguinte comando SQL em um editor de consultas do Notebook ou SQL. Você pode mostrar subsídios em um diretor 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 default 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
Mostrar minhas concessões em um objeto
Permissões necessárias: O senhor sempre pode view suas próprias concessões em um objeto.
- Catalog Explorer
- SQL
- Em seu site Databricks workspace, clique em
Catalog .
- Selecione o objeto, como um catálogo, esquema, tabela ou view.
- Acesse Permissions (Permissões ) tab. Se o senhor não for proprietário do objeto ou administrador do metastore, poderá view apenas suas próprias concessões no objeto.
Execute o seguinte comando SQL em um Notebook ou no editor de consultas SQL para mostrar suas concessões em um objeto.
SHOW GRANTS `<user>@<domain-name>` ON <securable-type> <securable-name>
Conceder permissões em um objeto
Permissões necessárias: administrador do Metastore, o privilégio MANAGE no objeto, o proprietário do objeto ou o proprietário do catálogo ou esquema que contém o objeto.
- Catalog Explorer
- SQL
- Em seu site Databricks workspace, clique em
Catalog .
- Selecione o objeto, como um catálogo, esquema, tabela ou view.
- Acesse Permissions (Permissões ) tab.
- Clique em Conceder .
- Digite o endereço email de um usuário ou o nome de um grupo.
- Selecione as permissões a serem concedidas.
- Clique em OK .
Execute o seguinte comando SQL em um editor de consultas do Notebook ou SQL.
GRANT <privilege-type> ON <securable-type> <securable-name> TO <principal>
Por exemplo, o comando a seguir concede a um grupo chamado equipe-financeira 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`;
Observe que os modelos registrados são um tipo de função. Para conceder um privilégio em um modelo, você deve usar GRANT ON FUNCTION. Por exemplo, para conceder ao grupo ml-team-acme o privilégio EXECUTE no modelo prod.ml_team.iris_model, você usaria:
GRANT EXECUTE ON FUNCTION prod.ml_team.iris_model TO `ml-team-acme`;
Revogar permissões em um objeto
Permissões necessárias: administrador do Metastore, o privilégio MANAGE no objeto, o proprietário do objeto ou o proprietário do catálogo ou esquema que contém o objeto.
- Catalog Explorer
- SQL
- Em seu site Databricks workspace, clique em
Catalog .
- Selecione o objeto, como um catálogo, esquema, tabela ou view.
- Acesse Permissions (Permissões ) tab.
- Selecione um privilégio que tenha sido concedido a um usuário, entidade de serviço ou grupo.
- Clique em Revogar.
- Para confirmar, clique em Revogar.
Execute o seguinte comando SQL em um editor de consultas do Notebook ou SQL.
REVOKE <privilege-type> ON <securable-type> <securable-name> FROM <principal>
Por exemplo, o comando a seguir revoga o acesso de um grupo chamado finance-team para criar tabelas em um esquema chamado default com o catálogo pai chamado main :
REVOKE CREATE TABLE ON SCHEMA main.default FROM `finance-team`;
Uma declaração REVOKE é bem-sucedida mesmo que os privilégios especificados não tenham sido concedidos em primeiro lugar. Ele garante que os privilégios não estejam presentes, independentemente de seu estado anterior.
Mostrar subsídios em uma metastore
Permissões necessárias: Administrador do Metastore ou account admin. O senhor também pode view suas próprias concessões em um metastore.
- Catalog Explorer
- SQL
- Em seu site Databricks workspace, clique em
Catalog .
- Na parte superior do painel Catálogo , clique em
ícone de engrenagem e selecione Metastore .
- Clique na guia Permissões .
Execute o seguinte comando SQL em um editor de consultas do Notebook ou SQL. Você pode mostrar subsídios para um diretor específico ou pode mostrar todos os subsídios em uma metastore.
SHOW GRANTS [principal] ON METASTORE
Conceder permissões em uma metastore
Permissões necessárias: Administrador do Metastore ou account admin.
- Catalog Explorer
- SQL
- Em seu site Databricks workspace, clique em
Catalog .
- Na parte superior do painel Catálogo , clique em
ícone de engrenagem e selecione Metastore .
- Em Permissions (Permissões ) tab, clique em Grant (Conceder ).
- Digite o endereço email de um usuário ou o nome de um grupo.
- Selecione as permissões a serem concedidas.
- Clique em OK .
-
Execute o seguinte comando SQL em um editor de consultas do Notebook ou SQL.
SQLGRANT <privilege-type> ON METASTORE TO <principal>;Quando o senhor concede privilégios em um metastore, não inclui o nome do metastore, porque o metastore que está anexado ao seu workspace é assumido.
Revogar permissões em uma metastore
Permissões necessárias: Administrador do Metastore ou account admin.
- Catalog Explorer
- SQL
- Em seu site Databricks workspace, clique em
Catalog .
- Na parte superior do painel Catálogo , clique em
ícone de engrenagem e selecione Metastore .
- Em Permissions (Permissões ) tab, selecione um usuário ou grupo e clique em Revoke (Revogar ).
- Para confirmar, clique em Revogar.
-
Execute o seguinte comando SQL em um editor de consultas do Notebook ou SQL.
SQLREVOKE <privilege-type> ON METASTORE FROM <principal>;Quando o senhor revoga privilégios em um metastore, não inclui o nome do metastore, porque o metastore que está anexado ao seu workspace é assumido.
gerenciar propriedade do objeto
ver o proprietário de um objeto
Você pode usar o Explorador de Catálogo ou instruções SQL para view o proprietário de um objeto.
Permissões necessárias : Qualquer usuário com o privilégio BROWSE no objeto ou um pai do objeto pode view o proprietário do objeto.
- Catalog Explorer
- SQL
-
Em seu site Databricks workspace, clique em
Catalog .
-
Selecione o objeto, como um catálogo, esquema, tabela, view, volume, localização externa ou credencial de armazenamento.
A forma de navegar até o objeto depende do objeto. Catálogos, esquemas e o conteúdo dos esquemas (como tabelas e volumes) podem ser selecionados no painel Catálogo à esquerda. Você pode encontrar outros objetos, como locais externos ou compartilhamentos Delta Sharing, clicando em
Ícone de engrenagem acima do painel Catálogo e seleção da categoria do objeto no menu.
Para a maioria dos objetos, o proprietário é exibido na tab Visão geral da página de detalhes do objeto. Para alguns objetos, como locais externos, essa informação é exibida na parte superior da página de detalhes do objeto.
execute o seguinte comando SQL em um Notebook ou editor de consultas SQL . Substitua os valores de espaço reservado:
<securable-type>: O tipo de objeto protegível, comoCATALOGouTABLE.<catalog>: O catálogo pai, caso você esteja visualizando um esquema ou o conteúdo de um esquema.<schema>: O esquema pai, caso você esteja visualizando o conteúdo de um esquema, como uma tabela ou view.<securable-name>: O nome do objeto protegível.
DESCRIBE <securable-type> EXTENDED <catalog>.<schema>.<securable-name>;
Transferir a propriedade
Você pode usar o Catalog Explorer ou instruções SQL para transferir o proprietário de um objeto.
Permissões necessárias : Você pode transferir a propriedade do objeto se for o proprietário atual, um administrador do metastore, o proprietário do contêiner (o catálogo para um esquema, o esquema para uma tabela) ou um usuário com o privilégio MANAGE no objeto. Os objetos de Delta Sharing são uma exceção: somente um administrador do metastore pode transferir a propriedade do compartilhamento.
Para evitar a escalada de privilégios, somente um administrador do metastore pode transferir a propriedade de uma view, função ou modelo para qualquer usuário, entidade de serviço ou grupo na account. Os proprietários atuais e os usuários com privilégio MANAGE estão restritos a transferir a propriedade para seu nome de usuário ou para um grupo do qual sejam membros.
Transferir a propriedade de uma view ou de view de métricas para um grupo permite a edição colaborativa. Quando um grupo é proprietário de uma view ou view de métricas, todos os membros do grupo podem editar sua definição, enquanto o acesso aos dados permanece limitado ao que o grupo tem permissão para ver. Para obter orientações detalhadas, consulte Ativar a edição colaborativa.
É possível transferir a propriedade de tabelas de visualização materializada e de transmissão criadas com Databricks SQL . Para obter detalhes, consulte Alterar o proprietário de uma viewmaterializada e Alterar o proprietário de uma tabela de transmissão.
As tabelas de visualização materializada e de transmissão criadas com o pipeline declarativo LakeFlow Spark não podem ter sua propriedade transferida diretamente. Em vez disso, altere o usuário de execução do pipeline que possui o conjunto de dados. Na próxima refresh, o proprietário será atualizado para o usuário que executa o comando. Consulte Definir o usuário de execução.
- Catalog Explorer
- SQL
-
Em seu site Databricks workspace, clique em
Catalog .
-
Selecione o objeto, como um catálogo, esquema, tabela, view, local externo ou credencial de armazenamento.
A forma de navegar até o objeto depende do objeto. Catálogos, esquemas e o conteúdo dos esquemas (como tabelas e volumes) podem ser selecionados no painel Catálogo à esquerda. Você pode encontrar outros objetos, como locais externos ou compartilhamentos Delta Sharing, clicando em
Ícone de engrenagem acima do painel Catálogo e seleção da categoria do objeto no menu.
Para a maioria dos objetos, o proprietário é exibido na tab Visão geral da página de detalhes do objeto. Para alguns objetos, como locais externos, essa informação é exibida na parte superior da página de detalhes do objeto.
-
Clique no
Ícone de edição ao lado do Proprietário .
-
Pesquise e selecione um grupo, usuário ou entidade de serviço.
-
Clique em Salvar .
execute o seguinte comando SQL em um Notebook ou editor de consultas SQL . Substitua os valores de espaço reservado:
<securable-type>: O tipo de objeto protegível, comoCATALOGouTABLE.METASTOREnão é suportado como um objeto protegível neste comando.<securable-name>: O nome do bem garantido. Se você estiver modificando um esquema ou o conteúdo de um esquema, você deve usar o namespace completo de três níveis (catalog.schema.object), a menos que você já tenha especificado o catálogo e/ou esquema pai.<principal>é um usuário, uma entidade de serviço (representada por seu valor applicationId) ou um grupo. Os nomes de usuários, entidades de serviço e grupos que incluírem caracteres especiais devem ser colocados entre chaves (` `). Veja o diretor.
ALTER <securable-type> <securable-name> OWNER TO <principal>;
Por exemplo, para transferir a propriedade da tabela orders para o grupo accounting :
ALTER TABLE mycatalog.myschema.orders OWNER TO `accounting`;