Privilégios e objetos protegíveis no metastore do Hive

Aplica-se a: marca de seleção positiva SQL do Databricks verificação marcada como sim 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.

  • CATALOGcatalog_name

    Controla o acesso ao catálogo de dados inteiro.

  • { SCHEMA | DATABASE }schema_name

    Controla o acesso a um esquema.

  • FUNCTIONfunction_name

    Controla o acesso a uma função nomeada.

  • [ TABLE ]table_name

    Controla o acesso a uma tabela gerenciada ou externa.

  • VIEWview_name

    Controla 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, conceder MODIFY 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, conceder READ_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 de SELECT na tabela, exibição ou função, além de USAGE no esquema e catálogo do objeto.

    Se o objeto protegível for o hive_metastore ou um esquema dentro dele, conceder SELECT 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`;