Privilégios e objetos protegíveis no metastore do Hive
Aplica-se a: Databricks SQL Databricks Runtime
Um privilégio é um direito concedido a um comitente para operar em um objeto protegível no metastore.
O modelo de privilégio e os objetos protegíveis diferem dependendo se você estiver usando um metastore do Unity Catalog ou o metastore herdado do Hive. Este artigo descreve o modelo de privilégio para o metastore herdado do Hive. Se você estiver usando o Unity Catalog, 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 privilégios podem ser concedidos a uma entidade de segurança.
Para gerenciar privilégios em qualquer objeto, você deve ser seu proprietário ou 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 a todo o catálogo de dados.
{ 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 a exibições 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
automaticamente concede ou nega 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. Esse padrão é verdadeiro para todos os objetos protegíveis.
Se você negar privilégios de usuário em uma tabela, o usuário não poderá ver a tabela tentando listar todas as tabelas no esquema. Se você negar privilégios de usuário em um esquema, o usuário não poderá ver que o esquema existe tentando listar todos os esquemas no catálogo.
Tipos de privilégios
A tabela a seguir mostra quais privilégios estão associados a quais objetos protegíveis.
Tipo de privilégio | FUNÇÃO ANÓNIMA | QUALQUER FICHEIRO | CATÁLOGO | ESQUEMA | FUNÇÃO | TABELA | VER |
---|---|---|---|---|---|---|---|
CREATE | Sim | Sim | |||||
MODIFICAR | Sim | Sim | Sim | Sim | |||
READ_METADATA | Sim | Sim | Sim | Sim | |||
SELECIONAR | Sim | Sim | Sim | Sim | Sim | Sim | Sim |
UTILIZAÇÃO | Sim | Sim |
ALL PRIVILEGES
Usado para conceder ou revogar todos os privilégios aplicáveis ao protegível e seus objetos filhos sem especificá-los explicitamente. Isto expande-se para todos os privilégios disponíveis no momento em que as verificações de permissões são efetuadas.
CREATE
Crie objetos dentro do catálogo ou esquema.
MODIFY
COPIAR EM, ATUALIZAR EXCLUIR, INSERIR ou MESCLAR na tabela.
Se o securable_object for o ou um esquema dentro dele, a
hive_metastore
concessãoMODIFY
será concedidaMODIFY
em todas as tabelas e exibições atuais e futuras dentro do objeto protegível.READ_METADATA
Descubra o objeto protegível em SHOW e interrogue o objeto em DESCRIBE
Se o objeto protegível for o
hive_metastore
catálogo ou um esquema dentro dele, a concessãoREAD_METADATA
será concedidaREAD_METADATA
em todas as tabelas e exibições atuais e futuras dentro do objeto protegível.READ FILES
Consulte arquivos diretamente usando a credencial de armazenamento ou o local externo.
SELECT
Consulte uma tabela ou vista, invoque uma função anónima ou definida pelo utilizador ou selecione
ANY FILE
. O usuário precisaSELECT
na tabela, exibição ou função, bem comoUSAGE
no esquema e catálogo do objeto.Se o objeto protegível for o
hive_metastore
ou um esquema dentro dele, a concessãoSELECT
será concedidaSELECT
em todas as tabelas e exibições atuais e futuras dentro do objeto protegível.USAGE
Obrigatório, mas não suficiente para fazer referência a quaisquer objetos em um catálogo ou esquema. O principal também precisa ter privilégios sobre os objetos protegíveis individuais.
WRITE FILES
Copie diretamente em arquivos regidos pela credencial de armazenamento ou local externo.
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`;