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
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. 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 | CATALOG | SCHEMA | FUNÇÃO | TABLE | VER |
---|---|---|---|---|---|---|---|
CREATE | Sim | Sim | |||||
MODIFICAR | Sim | Sim | Sim | Sim | |||
READ_METADATA | Sim | Sim | Sim | Sim | |||
SELECT | 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
COPY INTO, UPDATEEXCLUIR, INSERTou MERGE INTO a tabela.
Se o securable_object for o
hive_metastore
ou um esquema dentro dele, concederMODIFY
concederáMODIFY
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 catálogo
hive_metastore
ou um esquema dentro dele, concederREAD_METADATA
concederáREAD_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 definida pelo utilizador ou anónima 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, concederSELECT
concederáSELECT
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
Diretamente COPY INTO 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`;