Privilégios e objetos protegíveis no metastore do Hive
Aplica-se a: SQL do Databricks Databricks Runtime
Um privilégio é um direito concedido a uma entidade de segurança para operar em um objeto protegível no metastore.
O modelo de privilégio e os objetos protegíveis diferem dependendo se você está usando um metastore do Catálogo Unity ou o metastore do Hive herdado. Este artigo descreve o modelo de privilégio para o metastore do Hive herdado. Se você estiver usando o Catálogo do Unity, consulte Privilégios e objetos protegíveis no Unity Catalog.
Objetos protegíveis no metastore do Hive
Um objeto protegível é um objeto definido no metastore, no qual os privilégios podem ser concedidos a uma entidade de segurança.
Para gerenciar privilégios em qualquer objeto, você deve ser o proprietário dele ou um administrador.
Sintaxe
securable_object
{ ANY FILE |
CATALOG [ catalog_name ] |
{ SCHEMA | DATABASE } schema_name |
FUNCTION function_name |
[ TABLE ] table_name |
VIEW view_name
}
Parâmetros
ANY FILE
Controla o acesso ao sistema de arquivos subjacente.
CATALOG
catalog_nameControla o acesso ao catálogo de dados inteiro.
{ SCHEMA | DATABASE }
schema_nameControla o acesso a um esquema.
FUNCTION
function_nameControla o acesso a uma função nomeada.
[ TABLE ]
table_nameControla o acesso a uma tabela gerenciada ou externa.
VIEW
view_nameControla o acesso aos modos de exibição do SQL.
Modelo de herança
Os objetos protegíveis no metastore do Hive são hierárquicos e os privilégios são herdados para baixo. Isso significa que conceder ou negar um privilégio no CATALOG
concede ou nega automaticamente o privilégio a todos os esquemas no catálogo. Da mesma forma, os privilégios concedidos em um objeto de esquema são herdados por todos os objetos nesse esquema. Este padrão é verdadeiro para todos os objetos protegíveis.
Se você negar privilégios a um usuário em uma tabela, o usuário não poderá ver a tabela ao tentar listar todas as tabelas no esquema. Se você negar privilégios a um usuário em um esquema, o usuário não poderá ver que o esquema existe ao tentar listar todos os esquemas no catálogo.
Tipos de privilégio
A tabela a seguir mostra quais privilégios estão associados a quais objetos protegíveis.
Tipo de privilégio | ANONYMOUS FUNCTION | ANY FILE | CATALOG | SCHEMA | FUNCTION | TABLE | VIEW |
---|---|---|---|---|---|---|---|
CREATE | Sim | Yes | |||||
MODIFY | Sim | Sim | Sim | Yes | |||
READ_METADATA | Sim | Sim | Sim | Yes | |||
SELECT | Sim | Sim | Sim | Sim | Sim | Sim | Yes |
USAGE | Sim | Yes |
ALL PRIVILEGES
Usado para conceder ou revogar todos os privilégios aplicáveis ao protegível e seus objetos filho sem especificá-los explicitamente. Isso se expande para todos os privilégios disponíveis no momento em que as verificações de permissões são feitas.
CREATE
Criar objetos no catálogo ou no esquema.
MODIFY
COPIAR PARA, ATUALIZAR EXCLUIR, INSERIR ou MESCLAR a tabela.
Se o securable_object for o
hive_metastore
ou um esquema dele, concederMODIFY
concederáMODIFY
em todas as tabelas e exibições atuais e futuras no objeto protegível.READ_METADATA
Descobrir o objeto protegível em SHOW e interrogar o objeto em DESCRIBE
Se o objeto protegível for o
hive_metastore
catálogo ou um esquema dentro dele, concederREAD_METADATA
concederáREAD_METADATA
em todas as tabelas e exibições atuais e futuras no objeto protegível.READ FILES
Consultar arquivos diretamente usando a credencial de armazenamento ou a localização externa.
SELECT
Consultar uma tabela ou exibição, invoque uma função definida pelo usuário ou anônima ou selecionar
ANY FILE
. O usuário precisa deSELECT
na tabela, exibição ou função, além deUSAGE
no esquema e catálogo do objeto.Se o objeto protegível for o
hive_metastore
ou um esquema dentro dele, concederSELECT
concederáSELECT
em todas as tabelas e exibições atuais e futuras no objeto protegível.USAGE
É necessário, mas não suficiente para fazer referência a todos os objetos em um catálogo ou esquema. A entidade de segurança também precisa ter privilégios nos objetos protegíveis individuais.
WRITE FILES
COPY INTO diretamente em arquivos controlados pela credencial de armazenamento ou pela localização externa.
Exemplos
-- Grant a privilege to the user alf@melmak.et
> GRANT SELECT ON TABLE t TO `alf@melmak.et`;
-- Revoke a privilege from the general public group.
> REVOKE USAGE ON SCHEMA some_schema FROM `alf@melmak.et`;