Privilégios e objetos protegíveis no Catálogo Unity

Aplica-se a:verificação marcada como simSQL do Databricksverificação marcada como simDatabricks Runtimeverificação marcada como sim somente Catálogo do Unity

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 do Catálogo Unity. Se você estiver usando o metastore do Hive, consulte Privilégios e objetos protegíveis no metastore do Hive

Observação

Este artigo refere-se aos privilégios do Catálogo do Unity e ao modelo de herança no Modelo de Privilégios versão 1.0. Se você criou sua metastore do Catálogo do Unity durante a visualização pública (antes de 25 de agosto de 2022), atualize para o Modelo de Privilégio versão 1.0 seguindo Atualizar para herança de privilégios.

Objetos protegíveis

Um objeto protegível é um objeto definido no metastore do Unity Catalog, 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.

Sintaxe

securable_object
  { CATALOG [ catalog_name ] |
    CONNECTION connection_name |
    EXTERNAL LOCATION location_name |
    FUNCTION function_name |
    METASTORE |
    SCHEMA schema_name |
    SHARE share_name |
    STORAGE CREDENTIAL credential_name |
    [ TABLE ] table_name |
    MATERIALIZED VIEW view_name |
    VIEW view_name |
    VOLUME volume_name
  }

Você também pode especificar SERVER em vez de CONNECTION e DATABASE em vez de SCHEMA.

Parâmetros

  • CATALOGCatalog_NAME

    Controla o acesso ao catálogo de dados inteiro.

  • CONNECTIONconnection_name

    Controla o acesso à conexão.

  • EXTERNAL LOCATIONlocation_name

    Controla o acesso a um local externo.

  • FUNCTIONfunction_name

    Controla o acesso a uma função definida pelo usuário.

  • MATERIALIZED VIEWview_name

    Importante

    Esse recurso está em uma versão prévia.

    Controla o acesso a uma exibição materializada.

  • METASTORE

    Controla o acesso ao metastore do Unity Catalog anexado ao workspace. Ao gerenciar privilégios em um metastore, você não inclui o nome do metastore em um comando SQL. O Unity Catalog concede ou revoga o privilégio no metastore anexado ao workspace.

  • REGISTERED MODEL

    Controla o acesso a um modelo registrado MLflow.

  • SCHEMAschema_name

    Controla o acesso a um esquema.

  • STORAGE CREDENTIALcredential_name

    Controla o acesso a uma credencial de armazenamento.

  • SHAREshare_name

    Controla o acesso em um compartilhamento a um destinatário.

  • TABLEtable_name

    Controla o acesso a uma tabela gerenciada ou externa. Se a tabela não puder ser encontrada, o Azure Databricks gerará um erro TABLE_OR_VIEW_NOT_FOUND.

  • VIEWview_name

    Controla o acesso a uma exibição. Se a exibição não puder ser encontrada, o Azure Databricks gerará um erro TABLE_OR_VIEW_NOT_FOUND.

  • VOLUMEvolume_name

    Controla o acesso a um volume. Se o volume não puder ser encontrado, o Azure Databricks gerará um erro.

Modelo de herança

Os objetos protegíveis no Unity Catalog são hierárquicos e os privilégios são herdados para baixo. Isso significa que a concessão de um privilégio no catálogo ou esquema concede automaticamente o privilégio a todos os esquemas atuais e futuros no catálogo. Da mesma forma, os privilégios concedidos em um esquema são herdados por todas as tabelas e exibições atuais e futuras nesse esquema.

Por exemplo, se você conceder o privilégio SELECT em um esquema a um usuário, o usuário receberá automaticamente o privilégio SELECT em todas as tabelas atuais e futuras, exibições e exibições materializadas no esquema.

Tipos de privilégio

A tabela a seguir mostra quais privilégios do Unity Catalog estão associados a quais objetos protegíveis do Unity Catalog.

Protegível Privilégios
Metastore CREATE CATALOG, CREATE CONNECTION, CREATE EXTERNAL LOCATION, CREATE PROVIDER, CREATE RECIPIENT, CREATE SHARE, CREATE STORAGE CREDENTIAL, SET SHARE PERMISSION, USE MARKETPLACE ASSETS, USE PROVIDER, USE RECIPIENT, USE SHARE
Catálogo ALL PRIVILEGES, APPLY TAG, BROWSE, CREATE SCHEMA, USE CATALOG

Todos os usuários têm USE CATALOG no catálogo main por padrão.

Os tipos de privilégio a seguir se aplicam a objetos protegíveis em um catálogo. Você pode conceder esses privilégios no nível do catálogo para aplicá-los aos objetos atuais e futuros relevantes no catálogo.

CREATE FUNCTION, CREATE TABLE, CREATE MODEL, CREATE VOLUME, CREATE FOREIGN CATALOG, READ VOLUME, REFRESH, WRITE VOLUME, EXECUTE, MODIFY, SELECT, USE SCHEMA
Esquema ALL PRIVILEGES, APPLY TAG, CREATE FUNCTION, CREATE TABLE, CREATE MODEL, CREATE VOLUME, CREATE MATERIALIZED VIEW, USE SCHEMA

Os tipos de privilégio a seguir se aplicam a objetos protegíveis em um esquema. Você pode conceder esses privilégios no nível do esquema para aplicá-los aos objetos atuais e futuros relevantes no esquema.

EXECUTE, MODIFY, SELECT, READ VOLUME, REFRESH, WRITE VOLUME
Tabela ALL PRIVILEGES, APPLY TAG, MODIFY, SELECT
Exibição materializada ALL PRIVILEGES, APPLY TAG, REFRESH, SELECT
Visualizar ALL PRIVILEGES, APPLY TAG, SELECT
Volume ALL PRIVILEGES, READ VOLUME, WRITE VOLUME
Local externo ALL PRIVILEGES, BROWSE, CREATE EXTERNAL TABLE, CREATE EXTERNAL VOLUME, READ FILES, WRITE FILES, CREATE MANAGED STORAGE
Credencial de armazenamento ALL PRIVILEGES, CREATE EXTERNAL LOCATION, CREATE EXTERNAL TABLE, READ FILES, WRITE FILES
Conexão ALL PRIVILEGES, CREATE FOREIGN CATALOG, USE CONNECTION
Função ALL PRIVILEGES, EXECUTE
Modelo registrado ALL PRIVILEGES, APPLY TAG, EXECUTE
Compartilhar SELECT (pode ser concedido a RECIPIENT)
Destinatário Nenhum
Provedor Nenhum
  • APPLY TAG

    Aplicar e editar marcas em um objeto.

  • ALL PRIVILEGES

    Usado para conceder ou revogar todos os privilégios aplicáveis ao objeto protegível e a seus objetos filhos 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. Não concede individualmente ao usuário cada privilégio aplicável no momento da concessão.

    Quando ALL PRIVILEGES é revogado, apenas o ALL PRIVILEGES privilégio em si é revogado. Os usuários mantêm quaisquer outros privilégios que lhes foram concedidos separadamente.

  • BROWSE

    Importante

    Esse recurso está em uma versão prévia.

    Visualize os metadados de um objeto usando o Catalog Explorer, o navegador de esquema, os resultados da pesquisa, o gráfico de linhagem, information_schema e a API REST. O usuário não requer o privilégio USE CATALOG no catálogo pai ou USE SCHEMA no esquema pai.

  • CREATE CATALOG

    Criar catálogos em um metastore do Unity Catalog.

  • CREATE CONNECTION

    Criar conexões estrangeiras em um metastore do Catálogo do Unity.

  • CREATE EXTERNAL LOCATION

    Criar um local externo usando a credencial de armazenamento. Quando aplicado a uma credencial de armazenamento, permite que um usuário crie um local externo usando a credencial de armazenamento. Esse privilégio também precisa ser concedido a um usuário no metastore para permitir que ele crie um local externo nesse metastore.

  • CREATE EXTERNAL TABLE

    Criar tabelas externas usando a credencial de armazenamento ou a localização externa.

  • CREATE EXTERNAL VOLUME

    Crie volumes externos usando o local externo.

  • CREATE FOREIGN CATALOG

    Criar catálogos em uma conexão estrangeira. Em seguida, cada catálogo estrangeiro expõe os esquemas disponíveis no sistema de destino federado.

  • CREATE FUNCTION

    Criar uma função em um esquema. O usuário também requer o privilégio USE CATALOG no catálogo e o privilégio USE SCHEMA no esquema.

  • CREATE MANAGED STORAGE

    Permite que um usuário especifique um local para armazenar tabelas gerenciadas no nível do catálogo ou do esquema, substituindo o armazenamento raiz padrão para o metastore do Catálogo Unity.

  • CREATE MATERIALIZED VIEW

    Permite que um usuário crie uma exibição materializada no esquema. Como os privilégios são herdados, CREATE MATERIALIZED VIEW também pode ser concedido em um catálogo, o que permite que um usuário crie uma tabela ou exibição em qualquer esquema existente ou futuro no catálogo.

    O usuário também deve ter o privilégio USE CATALOG no catálogo pai e USE SCHEMA no esquema pai.

  • CREATE MODEL

    Permite que um usuário crie um modelo registrado do MLflow no esquema. Como os privilégios são herdados, CREATE MODEL também pode ser concedido em um catálogo, o que permite que um usuário crie um modelo registrado em qualquer esquema existente ou futuro no catálogo.

    O usuário também deve ter o privilégio USE CATALOG no catálogo pai e USE SCHEMA no esquema pai.

  • CREATE PROVIDER

    (Para destinatários de dados do Delta Sharing) Criar um provedor em um metastore do Catálogo Unity.

  • CREATE RECIPIENT

    (Para provedores de dados do Delta Sharing) Criar um destinatário em um metastore do Catálogo Unity.

  • CREATE SCHEMA

    Criar um esquema em um catálogo. O usuário também requer o privilégio USE CATALOG no catálogo.

  • CREATE SHARE

    (Para provedores de dados do Delta Sharing) Criar um compartilhamento em um metastore do Catálogo Unity.

  • CREATE STORAGE CREDENTIAL

    Crie uma credencial de armazenamento em um metastore do Catálogo do Unity.

  • CREATE TABLE

    Cria uma tabela ou um modo de exibição em um esquema. O usuário também requer o privilégio USE CATALOG no catálogo e o privilégio USE SCHEMA no esquema. Para criar uma tabela externa, o usuário também requer o privilégio CREATE EXTERNAL TABLE no local externo ou na credencial de armazenamento.

  • CREATE VOLUME

    Criar um volume em um esquema. O usuário também requer o privilégio USE CATALOG no catálogo e o privilégio USE SCHEMA no esquema. Para criar um volume externo, o usuário também precisa do privilégio CREATE EXTERNAL VOLUME no local externo.

  • EXECUTE

    Invocar uma função definida pelo usuário. O usuário também requer o privilégio USE CATALOG no catálogo e o privilégio USE SCHEMA no esquema.

  • MODIFY

    COPY INTO, UPDATEDELETE, INSERT ou MERGE INTO tabela.

  • READ FILES

    Consultar arquivos diretamente usando a credencial de armazenamento ou a localização externa.

  • READ VOLUME

    Consultar arquivos dentro do volume.

  • REFRESH

    Permite que um usuário atualize uma exibição materializada se o usuário também tiver USE CATALOG em seu catálogo pai e USE SCHEMA em seu esquema pai. O usuário também requer o privilégio USE CATALOG no catálogo e o privilégio USE SCHEMA no esquema.

  • 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 USE CATALOG no catálogo do objeto e USE SCHEMA no esquema do objeto.

  • SET SHARE PERMISSION

    No Compartilhamento Delta, essa permissão, combinada com USE SHARE e USE RECIPIENT (ou propriedade do destinatário), fornece a um usuário do provedor a capacidade de conceder a um destinatário acesso a um compartilhamento. Combinado com USE SHARE, ele oferece a capacidade de transferir a propriedade de um compartilhamento para outro usuário, grupo ou entidade de serviço.

  • USE CATALOG

    É necessário, mas insuficiente para referenciar todos os objetos em um catálogo. A entidade de segurança também precisa ter privilégios nos objetos protegíveis individuais. Não é necessário que um usuário leia os metadados de um objeto usando o privilégio BROWSE.

  • USE CONNECTION

    Necessário para ler metadados em uma conexão estrangeira ou em todas as conexões estrangeiras quando usado no metastore.

  • USE MARKETPLACE ASSETS

    Habilitado por padrão para todos os metastores do Catálogo do Unity. No Databricks Marketplace, esse privilégio fornece a um usuário a capacidade de obter acesso instantâneo ou solicitar acesso a produtos de dados compartilhados em uma listagem do Marketplace. Ele também permite que um usuário acesse o catálogo somente leitura criado quando um provedor compartilha um produto de dados. Sem esse privilégio, o usuário exigiria os privilégios CREATE CATALOG e USE PROVIDER ou a função de administrador do metastore. Isso permite limitar o número de usuários com essas funções poderosas.

  • USE PROVIDER

    No Compartilhamento Delta, fornece a um usuário destinatário acesso somente leitura a todos os provedores em um metastore de destinatário e seus compartilhamentos. Combinado com o privilégio CREATE CATALOG, esse privilégio permite que um usuário destinatário que não seja um administrador. Isso permite limitar o número de usuários com a poderosa função de administrador de metastore.

  • USE RECIPIENT

    No Compartilhamento Delta, fornece a um usuário do provedor acesso somente leitura a todos os destinatários em um metastore de provedor e seus compartilhamentos. Isso permite que um usuário do provedor que não é um administrador de metastore exiba detalhes do destinatário, o status de autenticação do destinatário e a lista de compartilhamentos que o provedor compartilhou com o destinatário.

    No Databricks Marketplace, isso fornece aos usuários do provedor a capacidade de exibir listagens e solicitações de consumidor no console do provedor.

  • USE SCHEMA

    É necessário, mas insuficiente para referenciar todos os objetos em um esquema. A entidade de segurança também precisa ter privilégios nos objetos protegíveis individuais. Não é necessário que um usuário leia os metadados de um objeto usando o privilégio BROWSE.

  • USE SHARE

    No Compartilhamento Delta, fornece a um usuário do provedor acesso somente leitura a todos os compartilhamentos definidos em um metastore de provedor. Isso permite que um usuário do provedor que não seja um administrador de metastore liste compartilhamentos e liste os ativos (tabelas e notebooks) em um compartilhamento, juntamente com os destinatários do compartilhamento.

    No Databricks Marketplace, isso fornece aos usuários do provedor a capacidade de exibir detalhes sobre os dados compartilhados em uma listagem.

  • WRITE FILES

    COPY INTO diretamente em arquivos controlados pela credencial de armazenamento ou pela localização externa.

  • WRITE VOLUME

    Arquivos COPY INTO diretamente em um volume.

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 USE SCHEMA ON SCHEMA some_schema FROM `alf@melmak.et`;