Privilégios do Unity Catalog e objetos seguros

Este artigo descreve os objetos protegíveis do Unity Catalog e os privilégios que se aplicam a eles. Para saber como conceder privilégios no Unity Catalog, consulte Mostrar, conceder e revogar privilégios.

Objetos seguros no Unity Catalog

Um objeto protegível é um objeto definido no metastore do Unity Catalog no qual privilégios podem ser concedidos a uma entidade (usuário, entidade de serviço ou grupo). Os objetos protegíveis no Unity Catalog são hierárquicos.

Hierarquia de objetos do Unity Catalog

Os objetos seguros são:

  • METASTORE: contêiner de nível superior para metadados. Cada metastore do Unity Catalog expõe um namespace de três níveis (catalog.schema.table) que organiza seus dados.

    No gerenciamento de privilégios no metastore, não se inclui o nome do metastore em um comando SQL. O Unity Catalog concede ou revoga o privilégio no metastore anexado ao seu workspace. Por exemplo, o comando a seguir concede a um grupo chamado engenharia a capacidade de criar um catálogo no metastore anexado ao workspace:

    GRANT CREATE CATALOG ON METASTORE TO engineering
    
  • CATÁLOGO: primeira camada da hierarquia de objetos, utilizada para organizar seus ativos de dados. Catálogos estrangeiros são um tipo de catálogo especial que espelha um banco de dados em um sistema de dados externo em um cenário de Federação de lakehouse.

  • ESQUEMA: também conhecidos como bancos de dados, os esquemas são a segunda camada da hierarquia de objetos e contêm tabelas e views.

  • TABELA: nível mais baixo na hierarquia de objetos, as tabelas podem ser externas (armazenadas em locais externos no armazenamento em nuvem de sua preferência) ou tabelas gerenciadas (armazenadas em um contêiner em seu armazenamento em nuvem, criado exclusivamente para o Databricks).

  • VIEW: um objeto somente para leitura criado a partir de uma consulta em uma ou mais tabelas contidas em um esquema.

  • VOLUME: no nível mais baixo na hierarquia de objetos, os volumes podem ser externos (armazenados em locais externos no armazenamento em nuvem de sua preferência) ou gerenciados (armazenados em um contêiner em seu armazenamento em nuvem, criado exclusivamente para o Databricks).

  • FUNCTION (FUNÇÃO): uma função definida pelo usuário ou um modelo registrado do MLflow que está contido em um esquema.

  • Modelo: Um modelo registrado no MLflow é um tipo específico de função. Os modelos são listados separadamente de outras funções no Catalog Explorer, mas quando o senhor concede um privilégio em um modelo usando SQL, usa GRANT ON FUNCTION.

  • LOCALIZAÇÃO EXTERNA: objeto que contém uma referência a uma credencial de armazenamento e uma trilha de armazenamento em nuvem que está contido no metastore do Unity Catalog.

  • CREDENCIAL DE ARMAZENAMENTO: objeto que encapsula uma credencial de nuvem de longo prazo, que oferece acesso ao armazenamento em nuvem contido no metastore do Unity Catalog.

  • CONEXÃO: objeto que especifica uma trilha e credenciais para acessar um sistema de banco de dados externo em um cenário de federação de lakehouse.

  • COMPARTILHAR: agrupamento lógico para as tabelas que você pretende compartilhar utilizando o Delta Sharing. Compartilhamento está contido no metastore do Unity Catalog.

  • DESTINATÁRIO: objeto que identifica uma organização ou grupo de usuários que podem ter dados compartilhados com eles utilizando o Delta Sharing. Esses objetos estão contidos no metastore do Unity Catalog.

  • PROVEDOR: objeto que representa uma organização que disponibilizou dados para compartilhamento utilizando o Delta Sharing. Esses objetos estão contidos no metastore do Unity Catalog.

Tipos de privilégios por objeto seguro no Unity Catalog

A tabela a seguir lista os tipos de privilégios que se aplicam a cada objeto protegível no Unity Catalog. Para saber como conceder privilégios no Unity Catalog, consulte Mostrar, conceder e revogar privilégios.

Seguro

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, EXTERNAL USE SCHEMA, USE CATALOG

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

Os seguintes tipos de privilégios se aplicam a objetos passíveis de proteção em um catálogo. Você pode conceder esses privilégios no nível do catálogo para aplicá-los aos objetos atuais e futuros do catálogo.

CREATE FUNCTION, CREATE TABLE, CREATE MODEL, CREATE VOLUME, READ VOLUME, WRITE VOLUME, EXECUTE, MODIFY, SELECT, USE SCHEMA

Esquema

ALL PRIVILEGES, APPLY TAG, CREATE FUNCTION, CREATE TABLE, CREATE MODEL, CREATE VOLUME, EXTERNAL USE SCHEMA, USE SCHEMA

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

EXECUTE, MODIFY, READ VOLUME, SELECT, WRITE VOLUME

Tabela

ALL PRIVILEGES, APPLY TAG, MODIFY, SELECT

View

ALL PRIVILEGES, APPLY TAG, SELECT

Volume

ALL PRIVILEGES, APPLY TAG, READ VOLUME, WRITE VOLUME

Localização externa

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, APPLY TAG (somente modelos), EXECUTE

Modelo

Os modelos registrados são um tipo de função.

Compartilhar

SELECT (Pode ser concedido a RECIPIENT)

Destinatário

Nenhuma

Pro

Nenhuma

Tipos de privilégios gerais do Unity Catalog

Esta seção fornece detalhes sobre os tipos de privilégios que geralmente se aplicam ao Unity Catalog. Para saber como conceder privilégios no Unity Catalog, consulte Mostrar, conceder e revogar privilégios.

ALL PRIVILEGES

Tipos de objetos aplicáveis: CATALOG, EXTERNAL LOCATION, STORAGE CREDENTIAL, SCHEMA, FUNCTION (incluindo modelos), TABLE, VIEW, VOLUME

Usado para conceder ou revogar todos os privilégios aplicáveis ao objeto protegido e a seus objetos filhos sem especificá-los explicitamente.

Quando ALL PRIVILEGES é concedido em um objeto, ele não concede individualmente ao usuário cada privilégio aplicável no momento da concessão. Em vez disso, ele se expande para todos os privilégios disponíveis no momento em que as verificações de permissões são feitas.

Quando ALL PRIVILEGES é revogado, o privilégio ALL PRIVILEGES é revogado e todos os privilégios explícitos concedidos ao usuário no objeto também são revogados.

Para evitar a exfiltração acidental de dados, ALL PRIVILEGES não inclui o privilégio EXTERNAL USE SCHEMA.

Observação

Este privilégio é poderoso quando aplicado em níveis mais altos na hierarquia. Por exemplo, CONCEDER TODOS OS PRIVILÉGIOS DO CATÁLOGO main A analysts concederia à equipe de analistas todos os privilégios em todos os objetos (esquemas, tabelas, views, funções) no catálogo.

APLICAR TAG

Tipos de objetos aplicáveis: CATALOG, SCHEMA, TABLE, VOLUME, VIEW, modelos registrados como FUNCTION

Permite que um usuário adicione e edite tags em um objeto. Conceder APPLY TAG a uma tabela ou view também habilita as tags de coluna. A concessão de APPLY TAG a um modelo registrado também permite tags de versão de modelo.

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

NAVEGAR

Tipos de objetos aplicáveis: CATALOG, EXTERNAL LOCATION

Visualização

Este recurso está em visualização pública.

Permite que um usuário visualize os metadados de um objeto usando o Catalog Explorer, o navegador de esquemas, os resultados de pesquisa, o gráfico de linhagem, information_schema e a API REST.

O usuário não precisa do privilégio USE CATALOG no catálogo pai ou USE SCHEMA no esquema pai.

Todos os usuários recebem o privilégio BROWSE por default em novos catálogos criados usando o Explorador de Catálogos. Você pode revogar o privilégio, se preferir. Os catálogos criados usando instruções SQL, a API REST ou a CLI do Databricks não concedem o privilégio BROWSE por default. Você deve concedê-lo abertamente.

CREATE CATALOG

Tipos de objetos aplicáveis: metastore do Unity Catalog

Permite que um usuário crie um catálogo em um metastore do Unity Catalog. Para criar um foreign catalog, você também deve ter o privilégio CRIAR FOREIGN CATALOG na conexão que contém o foreign catalog ou no metastore.

CREATE CONNECTION

Tipos de objetos aplicáveis: metastore do Unity Catalog

Permite que o usuário crie uma conexão com um banco de dados externo em um cenário de federação de lakehouse.

CRIAR LOCALIZAÇÃO EXTERNA

Tipos de objetos aplicáveis: metastore do Unity Catalog, STORAGE CREDENTIAL

Para criar uma external location, o usuário deve ter este privilégio tanto no metastore quanto na credencial de armazenamento que está sendo referenciada na external location.

CREATE EXTERNAL TABLE

Tipos de objetos aplicáveis: EXTERNAL LOCATION, STORAGE CREDENTIAL

Permite que o usuário crie tabelas externas diretamente no seu tenant de nuvem utilizando um local externo ou uma credencial de armazenamento. O Databricks recomenda conceder esse privilégio em locais externos em vez de uma credencial de armazenamento (como o escopo é uma trilha, isso permite mais controle sobre onde os usuários podem criar tabelas externas no tenant de nuvem).

CREATE EXTERNAL VOLUME

Tipos de objetos aplicáveis: EXTERNAL LOCATION

Permite que o usuário crie volumes externos utilizando uma localização externa.

CREATE FOREIGN CATALOG

Tipos de objetos aplicáveis: CONNECTION

Permite que o usuário crie catálogos externos utilizando uma conexão com um banco de dados externo em um cenário de federação de lakehouse.

CREATE FUNCTION

Tipos de objetos aplicáveis: SCHEMA

Permite que o usuário crie uma função no esquema. Como os privilégios são herdados, CREATE FUNCTION também pode ser concedido no catálogo, o que permite que o usuário crie uma função em qualquer esquema atual ou futuro no catálogo.

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

CREATE MODEL

Tipos de objetos aplicáveis: SCHEMA

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

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

CREATE MANAGED STORAGE

Tipos de objetos aplicáveis: EXTERNAL LOCATION

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

CREATE SCHEMA

Tipos de objetos aplicáveis: CATALOG

Permite que o usuário crie um esquema. O usuário deve ter também o privilégio USE CATALOG no catálogo.

CRIAR CREDENCIAL DE ARMAZENAMENTO

Tipos de objetos aplicáveis: metastore do Unity Catalog

Permite a um usuário criar uma credencial de armazenamento em um metastore do Unity Catalog.

CREATE TABLE

Tipos de objetos aplicáveis: SCHEMA

Permite que o usuário crie uma tabela ou view no esquema. Como os privilégios são herdados, CREATE TABLE pode ser concedido também em um catálogo, o que permite que o usuário crie uma tabela ou view em qualquer esquema atual ou futuro no catálogo.

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

CREATE VOLUME

Tipos de objetos aplicáveis: SCHEMA

Permite que o usuário crie um volume no esquema. Como os privilégios são herdados, CREATE VOLUME pode ser concedido também em um catálogo, o que permite ao usuário criar um volume em qualquer esquema atual ou futuro no catálogo.

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

EXECUTE

Tipos de objetos aplicáveis: FUNCTION, Model

Permite que um usuário invoque uma função definida pelo usuário ou carregue um modelo para inferência, se o usuário também tiver USE CATALOG em seu catálogo principal e USE SCHEMA em seu esquema principal. Para funções, EXECUTE concede a capacidade de visualizar a definição e os metadados da função. Para modelos cadastrados, o EXECUTE concede a capacidade de visualizar metadados de todas as versões do modelo cadastrado e de baixar arquivos de modelo.

Como os privilégios são herdados, você pode conceder a um usuário o privilégio EXECUTE no catálogo ou esquema, o que concede automaticamente ao usuário o privilégio EXECUTE em todas as funções atuais e futuras no catálogo ou esquema.

EXTERNO USE SCHEMA

Tipos de objetos aplicáveis: SCHEMA

Permite que um usuário receba uma credencial temporária para acessar as tabelas do Unity Catalog a partir de um mecanismo de processamento externo usando as APIs abertas do Unity Catalog ou as APIs REST do Iceberg.

Somente o proprietário do catálogo pode conceder esse privilégio.

Para evitar a exfiltração acidental de dados, ALL PRIVILEGES não inclui o privilégio EXTERNAL USE SCHEMA, e os proprietários de esquemas não têm esse privilégio em default.

Consulte Controlar o acesso externo aos dados no Unity Catalog.

GERENCIAR LISTA DE PERMISSÕES

Tipos de objetos aplicáveis: metastore do Unity Catalog

Permite que um usuário adicione ou modifique caminhos para init scripts, JARs e coordenadas Maven na lista de permissões que rege clusters habilitados para o Unity Catalog com modo de acesso compartilhado. Consulte Bibliotecas da lista de permissões e init scripts na computação compartilhada.

MODIFY

Tipos de objetos aplicáveis: TABLE

Permite que o usuário adicione, atualize e exclua dados de ou para a tabela se o usuário também tiver SELECT na tabela, USE CATALOG no catálogo principal e USE SCHEMA no esquema pai.

Como os privilégios são herdados, você pode conceder a um usuário o privilégio MODIFY no catálogo ou esquema, o que concede automaticamente ao usuário o privilégio MODIFY em todas as tabelas atuais e futuras no catálogo ou esquema.

READ FILES

Tipos de objetos aplicáveis: VOLUME, EXTERNAL LOCATION

Permite que um usuário leia arquivos diretamente do seu armazenamento de objetos em cloud. O Databricks recomenda conceder este privilégio em volumes e concedê-lo em external locations para casos de uso limitados. Para mais orientações, veja Gerenciar external locations, external tables e external volumes.

READ VOLUME

Tipos de objetos aplicáveis: VOLUME

Permite que o usuário leia arquivos e diretórios armazenados em um volume se o usuário também tiver USE CATALOG no catálogo principal e USE SCHEMA no esquema pai.

Os privilégios são herdados. Quando você pode conceder ao usuário o privilégio READ VOLUME no catálogo ou esquema, você concede automaticamente ao usuário o privilégio READ VOLUME em todos os volumes atuais e futuros no catálogo ou esquema.

SELECT

Tipos de objetos aplicáveis: TABLE, VIEW, SHARE

Se aplicado a uma tabela ou view, permite que o usuário selecione na tabela ou view, se o usuário também tiver USE CATALOG no catálogo principal e USE SCHEMA no esquema pai. Se aplicado a um compartilhamento, permite que um destinatário selecione o compartilhamento.

Como os privilégios são herdados, você pode conceder a um usuário o privilégio SELECT no catálogo ou esquema, o que automaticamente concede ao usuário o privilégio SELECT em todas as tabelas atuais e futuras e views no catálogo ou esquema.

USE CATALOG

Tipos de objetos aplicáveis: CATALOG

Esse privilégio não concede acesso ao catálogo em si, mas é necessário para que o usuário interaja com qualquer objeto dentro do catálogo. Por exemplo, para selecionar dados de uma tabela, os usuários precisam ter o privilégio SELECT nessa tabela e os privilégios USE CATALOG no catálogo principal, bem como os privilégios USE SCHEMA no esquema pai.

Isso é útil para que os proprietários dos catálogos possam limitar até que ponto os proprietários dos esquemas e tabelas individuais podem compartilhar os dados que produzem. Por exemplo, o proprietário de uma tabela que concede SELECT a outro usuário não permite que esse usuário tenha acesso de leitura à tabela, a menos que ele também tenha recebido os privilégios USE CATALOG no catálogo principal, bem como os privilégios USE SCHEMA no esquema pai.

O privilégio USE CATALOG no catálogo principal não é necessário para ler os metadados de um objeto se o usuário tiver o privilégio BROWSE nesse catálogo.

USE CONNECTION

Tipos de objetos aplicáveis: CONNECTION

Permite que o usuário liste e veja detalhes sobre conexões com um banco de dados externo em um cenário de federação de lakehouse. Para criar catálogos estrangeiros para uma conexão, você precisa ter CREATE FOREIGN CATALOG na conexão ou propriedade da conexão.

USE SCHEMA

Tipos de objetos aplicáveis: SCHEMA

Esse privilégio não concede acesso ao esquema em si, mas é necessário para que um usuário interaja com qualquer objeto dentro do esquema. Por exemplo, para selecionar dados de uma tabela, os usuários precisam ter o privilégio SELECT nessa tabela e USE SCHEMA no esquema pai, bem como USE CATALOG no catálogo principal.

Como os privilégios são herdados, é possível conceder ao usuário o privilégio USE SCHEMA no catálogo, o que automaticamente concede ao usuário o privilégio USE SCHEMA em todos os esquemas atuais e futuros do catálogo.

O privilégio USE SCHEMA no esquema pai não é necessário para ler os metadados de um objeto se o usuário tiver o privilégio BROWSE nesse esquema ou em seu catálogo principal.

WRITE FILES

Tipos de objetos aplicáveis: VOLUME,EXTERNAL LOCATION

Permite que um usuário escreva arquivos diretamente no seu armazenamento de objetos em cloud. O Databricks recomenda conceder este privilégio em volumes. Conceda este privilégio com parcimônia em external locations. Para mais orientações, veja Gerenciar external locations, external tables e external volumes.

WRITE VOLUME

Tipos de objetos aplicáveis: VOLUME

Permite que o usuário adicione, remova ou modifique arquivos e diretórios armazenados em um volume se o usuário também tiver USE CATALOG no catálogo principal e USE SCHEMA no esquema pai.

Os privilégios são herdados. Quando você pode conceder ao usuário o privilégio WRITE VOLUME no catálogo ou esquema, você concede automaticamente ao usuário o privilégio WRITE VOLUME em todos os volumes atuais e futuros no catálogo ou esquema.

Tipos de privilégios que se aplicam somente ao Delta Sharing ou ao Databricks Marketplace

Esta seção apresenta detalhes sobre os tipos de privilégios que se aplicam somente ao Delta Sharing.

CREATE PROVIDER

Tipos de objetos aplicáveis: metastore do Unity Catalog

Permite que um usuário crie um objeto de provedor do Delta Sharing no metastore. O provedor identifica uma organização ou grupo de usuários que compartilharam dados usando o Delta Sharing. A criação do provedor é realizada por um usuário na conta Databricks do destinatário. Consulte O que é Delta Sharing?

CREATE RECIPIENT

Tipos de objetos aplicáveis: metastore do Unity Catalog

Permite que um usuário crie um objeto destinatário do Delta Sharing no metastore. Um destinatário identifica uma organização ou grupo de usuários que podem ter dados compartilhados com eles usando o Delta Sharing. A criação do destinatário é realizada por um usuário na conta Databricks do provedor. Consulte O que é Delta Sharing?

CREATE SHARE

Tipos de objetos aplicáveis: metastore do Unity Catalog

Permite que o usuário crie um compartilhamento no metastore. O compartilhamento é um agrupamento lógico para as tabelas que você pretende compartilhar utilizando o Delta Sharing

SET SHARE PERMISSION

Tipos de objetos aplicáveis: metastore do Unity Catalog

No Delta Sharing, esse privilégio, combinado com USE SHARE e USE RECIPIENT (ou propriedade do destinatário), dá ao usuário 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 MARKETPLACE ASSETS

Tipos de objetos aplicáveis: metastore do Unity Catalog

Habilitado por padrão para todos os metastores do Unity Catalog. No Databricks Marketplace, esse privilégio oferece ao usuário a capacidade de conseguir acesso imediato ou solicitar acesso para produtos de dados compartilhados em uma listagem do Marketplace. Permite também que o usuário acesse o catálogo somente leitura criado quando o provedor compartilha um produto de dados. Sem esse privilégio, o usuário precisaria ter 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 permissões avançadas.

USE O PROVEDOR

Tipos de objetos aplicáveis: metastore do Unity Catalog

No Delta Sharing, concede ao usuário destinatário acesso somente leitura a todos os provedores no metastore destinatário e seus compartilhamentos. Combinado com o privilégio CREATE CATALOG, esse privilégio permite que o usuário destinatário que não seja administrador do metastore monte um compartilhamento como catálogo. Isso permite que você limite o número de usuários com a avançada função de administrador do metastore.

USE RECIPIENT

Tipos de objetos aplicáveis: metastore do Unity Catalog

No Delta Sharing, dá ao usuário do provedor acesso somente leitura a todos os destinatários no metastore do provedor e seus compartilhamentos. Isso permite que o usuário do provedor que não seja um administrador do metastore veja os 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 oferece aos usuários do provedor a capacidade de ver as listagens e solicitações do consumidor no console do provedor.

USE SHARE

Tipos de objetos aplicáveis: metastore do Unity Catalog

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

No Databricks Marketplace, isso permite que os usuários do provedor vejam os detalhes sobre os dados compartilhados em uma listagem.