Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Esta página explica como conceder, revogar e inspecionar privilégios em objetos securáveis do Unity Catalog, e como gerir a propriedade dos objetos. Para contexto conceptual sobre o modelo de permissões, herança de privilégios e propriedade, consulte conceitos de modelo de permissões do Unity Catalog.
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 Unity Catalog.
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. Os proprietários podem conceder a outros usuários o privilégio de MANAGE no objeto, o que permite que os usuários gerenciem privilégios no objeto. Veja Gerir a propriedade dos objetos.
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 de 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 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 privilégio USE CATALOG no catálogo do espaço de trabalho. Os utilizadores do espaço de trabalho também recebem os privilégios USE SCHEMA, CREATE TABLE, CREATE VOLUME, CREATE MODEL, CREATE FUNCTIONe CREATE MATERIALIZED VIEW no esquema default no catálogo.
Para obter mais informações, consulte Ativação automática do Unity Catalog.
Mostrar, conceder e revogar privilégios
Você pode gerir privilégios para objetos de metastore usando comandos SQL, a CLI do Databricks , o fornecedor Databricks Terraform ou o Explorador de Catálogo.
Nos comandos SQL a seguir, substitua estes valores de marcador de posição:
-
<privilege-type>é um tipo de privilégio do Catálogo Unity. Consulte Tipos de privilégio. -
<securable-type>: O tipo de objeto protegível, comoCATALOGouTABLE. Ver Objetos protegíveis -
<securable-name>: O nome do securable. Se o tipo de elemento protegível forMETASTORE, não forneça o nome protegível. Presume-se que o metastore está ligado 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 um objeto
Nota
Atualmente, os usuários com o privilégio MANAGE em um objeto não podem exibir todas as concessões para esse objeto no INFORMATION_SCHEMA. Em vez disso, INFORMATION_SCHEMA mostra apenas as suas próprias concessões sobre o objeto. Este comportamento será corrigido no futuro.
Os usuários com privilégio MANAGE podem exibir todas as concessões em um objeto usando comandos SQL ou o Gerenciador de Catálogos. Consulte Gerenciar privilégios no Catálogo Unity.
Permissões necessárias:
- Os administradores de metastore, os usuários com o privilégio de
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 no objeto. - Se você não tiver as permissões acima, poderá visualizar apenas suas próprias concessões no objeto.
Explorador de Catálogos
- No seu espaço de trabalho do Azure Databricks, clique no
Catálogo.
- Selecione o objeto, como um catálogo, esquema, tabela ou exibição.
- 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 principal:
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: você sempre pode exibir suas próprias concessões em um objeto.
Explorador de Catálogos
- No seu espaço de trabalho do Azure Databricks, clique no
Catálogo.
- Selecione o objeto, como um catálogo, esquema, tabela ou exibição.
- Vá para o separador Permissões. Se não for o proprietário do objeto ou administrador do metastore, poderá visualizar apenas as suas próprias permissões no objeto.
SQL
Execute o seguinte comando SQL em um bloco de anotações ou 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 proprietário do objeto, o privilégio de MANAGE no objeto, ou o proprietário do catálogo ou do esquema que contém o objeto.
Explorador de Catálogos
- No seu espaço de trabalho do Azure Databricks, clique no
Catálogo.
- Selecione o objeto, como um catálogo, esquema, tabela ou exibição.
- Vá para a guia Permissões .
- Clique Conceder.
- Insira o endereço de e-mail de um usuário ou o nome de um grupo.
- Selecione as permissões a serem concedidas.
- 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 seguinte concede a um grupo chamado equipa de finanças acesso para criar tabelas num esquema chamado padrão com o catálogo pai chamado principal.
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`;
Tenha em mente que os modelos registados 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 EXECUTE privilégio no modelo prod.ml_team.iris_model, você deve usar:
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 proprietário do objeto, o privilégio de MANAGE no objeto, ou o proprietário do catálogo ou do esquema que contém o objeto.
Explorador de Catálogos
- No seu espaço de trabalho do Azure Databricks, clique no
Catálogo.
- Selecione o objeto, como um catálogo, esquema, tabela ou exibição.
- Vá para a guia Permissões .
- Selecione um privilégio concedido a um usuário, entidade de serviço ou grupo.
- Clique Revogar.
- Para confirmar, clique 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> FROM <principal>
Por exemplo, o comando a seguir revoga a um grupo chamado equipe de finanças o acesso para criar tabelas em um esquema chamado padrão com o catálogo pai chamado principal:
REVOKE CREATE TABLE ON SCHEMA main.default FROM `finance-team`;
Uma REVOKE instrução é bem-sucedida mesmo que os privilégios especificados não tenham sido concedidos inicialmente. Garante que os privilégios não estão presentes, independentemente do seu estado anterior.
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
- No seu espaço de trabalho do Azure Databricks, clique no
Catálogo.
- Na parte superior do painel Catálogo , clique no
ícone de engrenagem e selecione Metastore.
- Clique na 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
- No seu espaço de trabalho do Azure Databricks, clique no
Catálogo.
- Na parte superior do painel Catálogo , clique no
ícone de engrenagem e selecione Metastore.
- Na guia Permissões , clique em Conceder .
- Insira o endereço de e-mail de um usuário ou o nome de um grupo.
- Selecione as permissões a serem concedidas.
- Clique em OK.
SQL
Execute o seguinte comando SQL em um bloco de anotações ou editor de consultas SQL.
GRANT <privilege-type> ON METASTORE TO <principal>;Ao conceder privilégios num metastore, não se inclui o nome do metastore, uma vez que se assume o metastore anexado ao seu espaço de trabalho.
Revogar permissões em um metastore
Permissões necessárias: administrador da Metastore ou administrador da conta.
Explorador de Catálogos
- No seu espaço de trabalho do Azure Databricks, clique no
Catálogo.
- Na parte superior do painel Catálogo , clique no
ícone de engrenagem e selecione Metastore.
- Na guia Permissões, selecione um utilizador ou grupo e clique em Revogar.
- Para confirmar, clique Revogar.
SQL
Execute o seguinte comando SQL em um bloco de anotações ou editor de consultas SQL.
REVOKE <privilege-type> ON METASTORE FROM <principal>;Ao revogar privilégios num metastore, não inclua o nome do metastore, pois assume-se o metastore ligado ao seu espaço de trabalho.
Gerir a propriedade do objeto
Exibir o proprietário de um objeto
Você pode usar o Catalog Explorer ou instruções SQL para exibir o proprietário de um objeto.
Permissões necessárias: Qualquer utilizador com o BROWSE privilégio no objeto ou um antecessor do objeto pode visualizar o proprietário do objeto.
Explorador de Catálogos
No seu espaço de trabalho do Azure Databricks, clique no
Catálogo.
Selecione o objeto, como um catálogo, esquema, tabela, exibição, volume, local externo ou credencial de armazenamento.
Como navegar para o objeto depende do objeto. Catálogos, esquemas e o conteúdo de esquemas (como tabelas e volumes) podem ser selecionados no painel esquerdo Catálogo. Você pode encontrar outros objetos, como locais externos ou partilhas Delta Sharing, clicando no
acima do painel do Catálogo e selecionando a categoria de objeto no menu.
Para a maioria dos objetos, o proprietário é exibido na guia Visão geral na página de detalhes do objeto. Para alguns objetos, como locais externos, ele é exibido na parte superior da página de detalhes do objeto.
SQL
Execute o seguinte comando SQL em um bloco de anotações ou editor de consultas SQL. Substitua os valores dos espaços reservados:
-
<securable-type>: O tipo de elemento assegurável, comoCATALOGouTABLE. -
<catalog>: O catálogo pai se você estiver exibindo um esquema ou o conteúdo de um esquema. -
<schema>: O esquema pai se estiver a visualizar o conteúdo de um esquema, como uma tabela ou uma vista. -
<securable-name>: O nome do objeto protegível.
DESCRIBE <securable-type> EXTENDED <catalog>.<schema>.<securable-name>;
Transferir propriedade
Pode usar o Explorador de Catálogo 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 de metastore, o proprietário do contêiner (o catálogo de um esquema, o esquema de uma tabela) ou um usuário com o privilégio de MANAGE no objeto. Os objetos de partilha Delta Sharing são uma exceção: apenas um administrador da metastore pode transferir a propriedade das ações.
Para evitar escalonamentos de privilégios, apenas um administrador de metastore pode transferir a propriedade de uma exibição, função ou modelo para qualquer usuário, entidade de serviço ou grupo na conta. Os proprietários e usuários atuais com o privilégio MANAGE estão restritos a transferir a propriedade para seu nome de usuário ou para um grupo do qual são membros.
Sugestão
Transferir a propriedade de uma vista ou vista métrica para um grupo permite a edição colaborativa. Quando um grupo possui uma vista ou vista métrica, todos os membros do grupo podem editar a sua definição enquanto o acesso aos dados permanece limitado ao que o grupo tem permissão para ver. Para orientações detalhadas, consulte Permitir a edição colaborativa.
Nota
Vistas materializadas e tabelas de streaming criadas com Databricks SQL podem ter a propriedade transferida. Para mais informações, veja Alterar o proprietário de uma vista materializada e Alterar o proprietário de uma tabela de streaming.
Vistas materializadas e tabelas de streaming criadas com Lakeflow Spark Declarative Pipelines não podem ter a sua propriedade transferida diretamente. Em vez disso, altere o utilizador de execução do pipeline que detém os conjuntos de dados. Com a próxima atualização, o proprietário será alterado para o utilizador 'run-as'. Veja Definir o utilizador como executado.
Explorador de Catálogos
No seu espaço de trabalho do Azure Databricks, clique no
Catálogo.
Selecione o objeto, como um catálogo, esquema, tabela, exibição, local externo ou credencial de armazenamento.
Como navegar para o objeto depende do objeto. Catálogos, esquemas e o conteúdo de esquemas (como tabelas e volumes) podem ser selecionados no painel esquerdo Catálogo. Você pode encontrar outros objetos, como locais externos ou partilhas Delta Sharing, clicando no
acima do painel do Catálogo e selecionando a categoria de objeto no menu.
Para a maioria dos objetos, o proprietário é exibido na guia Visão geral na página de detalhes do objeto. Para alguns objetos, como locais externos, ele é exibido 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 Guardar.
SQL
Execute o seguinte comando SQL em um bloco de anotações ou editor de consultas SQL. Substitua os valores dos espaços reservados:
-
<securable-type>: O tipo de objeto protegível, comoCATALOGouTABLE.METASTOREnão é suportado como um objeto protegível neste comando. -
<securable-name>: O nome do securable. Se você estiver modificando um esquema ou o conteúdo de um esquema, deverá usar o namespace completo de três níveis (catalog.schema.object), a menos que já tenha especificado o catálogo pai e/ou o esquema. -
<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.
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`;