gerenciar privilégios em Unity Catalog
Este artigo explica como controlar o acesso a dados e outros objetos em Unity Catalog. Para saber como esse modelo difere do controle de acesso no Hive metastore, consulte Work with Unity Catalog and the legacy Hive metastore.
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 protegíveis no Unity Catalog têm um proprietário. Os proprietários de objetos têm todos os privilégios sobre esse objeto, incluindo a capacidade de conceder privilégios a outros diretores. Os proprietários podem conceder a outros usuários o privilégio MANAGE
no objeto, o que permite que os usuários gerenciem privilégios no objeto. Consulte gerenciar Unity Catalog propriedade do objeto.
Os privilégios podem ser concedidos por qualquer um dos seguintes:
- Um administrador da metastore.
- Um usuário com o privilégio
MANAGE
no objeto. - O proprietário do objeto.
- O 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 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
e CREATE FUNCTION
no esquema default
do catálogo.
Para obter mais informações, consulte Habilitação automática do Unity Catalog site.
Modelo de herança
Os objetos protegíveis no Unity Catalog são hierárquicos e os privilégios são herdados de baixo para cima. O objeto de nível mais alto do qual os privilégios são herdados é o catálogo. Isso significa que conceder um privilégio em um 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 o senhor conceder a um usuário o privilégio SELECT
em um catálogo, esse usuário poderá selecionar (ler) todas as tabelas e exibições desse catálogo. Os privilégios concedidos em um metastore do Unity Catalog não são herdados.
Os proprietários de um objeto recebem automaticamente todos os privilégios sobre esse objeto. Além disso, os proprietários de objetos podem conceder privilégios sobre o próprio objeto e sobre todos os seus objetos secundários. Isso significa que os proprietários de um esquema não têm automaticamente todos os privilégios sobre as tabelas no esquema, mas podem conceder a si mesmos privilégios sobre essas tabelas.
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, comoCATALOG
ouTABLE
. 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 (
Mostrar concessões em objetos em um metastore do Unity Catalog
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
MANAGE
no 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 objetos em um metastore do Unity Catalog
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 objetos em um metastore do Unity Catalog
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`;
Revogação de permissões em objetos em um metastore do Unity Catalog
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`;
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 .
- Ao lado do rótulo da página Catalog Explorer , clique no ícone ao lado do nome do metastore.
- Acesse Permissions (Permissões ) tab.
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 .
- Ao lado do rótulo da página Catalog Explorer , clique no ícone ao lado do nome do 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 .
- Ao lado do rótulo da página Catalog Explorer , clique no ícone ao lado do nome do 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.