Conceder e gerenciar o acesso aos compartilhamentos de dados do Compartilhamento Delta (para provedores)

Este artigo explica como conceder a um destinatário de dados acesso a um compartilhamento Delta Sharing. Também explica como exibir, atualizar e revogar o acesso.

Requisitos

Para compartilhar dados com destinatários:

  • Você precisa usar um workspace do Azure Databricks que tenha um metastore do Unity Catalog anexado.
  • Você precisa usar um SQL warehouse ou um cluster que usa um modo de acesso de cluster compatível com o Unity Catalog.
  • Compartilhamentos e destinatários precisam já estar definidos.
  • Você deve ser um dos seguintes:
    • Administrador de metastore.
    • Usuário com permissões delegadas ou propriedade no compartilhamento e nos objetos de destinatário ((USE SHARE + SET SHARE PERMISSION) ou proprietário do compartilhamento) E (USE RECIPIENT ou proprietário do destinatário).

Conceder acesso ao compartilhamento ao destinatário

Para permitir acesso no compartilhamento aos destinatários, use o Explorador do Catálogo, a CLI do Catálogo do Unity do Databricks ou comandos SQL em um notebook do Azure Databricks ou no editor de consultas do Databricks SQL.

Permissões necessárias: uma das seguintes:

  • Administrador de metastore.
  • permissões delegadas ou propriedade no compartilhamento e nos objetos de destinatário ((USE SHARE + SET SHARE PERMISSION) ou proprietário do compartilhamento) E (USE RECIPIENT ou proprietário do destinatário).

Explorador do Catálogo

Para adicionar destinatários a um compartilhamento (começando no compartilhamento):

  1. No workspace do Azure Databricks, clique no Catalog iconCatálogo.
  2. No painel esquerdo, expanda o menu Compartilhamento Delta e selecione Compartilhado por mim.
  3. Na guia Compartilhamentos, localize e selecione o compartilhamento.
  4. Clique em Adicionar destinatário.
  5. Na caixa de diálogo Adicionar destinatário, comece a digitar o nome do destinatário ou clique no menu suspenso para selecionar os destinatários que deseja adicionar ao compartilhamento.
  6. Clique em Adicionar.

Para conceder acesso ao compartilhamento a um destinatário (começando no destinatário):

  1. No workspace do Azure Databricks, clique no Catalog iconCatálogo.
  2. No painel esquerdo, expanda o menu Compartilhamento Delta e selecione Compartilhado por mim.
  3. Na guia Compartilhamentos, localize e selecione o destinatário.
  4. Clique em Conceder compartilhamento.
  5. Na caixa de diálogo Conceder compartilhamento, comece a digitar o nome do compartilhamento ou clique no menu suspenso para selecionar os compartilhamentos que deseja conceder.
  6. Clique em Conceder.

Sql

Execute o comando a seguir em um notebook ou no editor de SQL do Databricks.

GRANT SELECT ON SHARE <share-name> TO RECIPIENT <recipient-name>;

SELECT é o único privilégio que você pode conceder a um destinatário em um compartilhamento.

Cli

Crie um arquivo JSON que inclua o seguinte, substituindo recipient-name. SELECT é o único privilégio que você pode conceder em um compartilhamento.

{
  "privilege_assignments": [{
    "principal": "recipient-name",
    "privileges": [
      "SELECT"
    ]
  }]
}

Em seguida, execute o comando a seguir usando a CLI do Databricks. Substitua <share-name> pelo nome do compartilhamento que deseja conceder ao destinatário e substitua update-share-perms.json pelo nome do arquivo JSON.

databricks unity-catalog shares update-permissions --name <share-name> \
                                --json-file update-share-perms.json

Revogar o acesso do destinatário a um compartilhamento

Para revogar o acesso de um destinatário em um compartilhamento, use o Explorador do Catálogo, a CLI do Catálogo do Unity do Databricks ou o comando SQL REVOKE ON SHARE em um notebook do Azure Databricks ou no editor de consultas do Databricks SQL.

Permissões necessárias: administrador do metastore, usuário com o privilégio USE SHARE ou o proprietário do objeto do provedor.

Explorador do Catálogo

Para revogar o acesso de um destinatário a um compartilhamento, começando no compartilhamento:

  1. No workspace do Azure Databricks, clique no Catalog iconCatálogo.
  2. No painel esquerdo, expanda o menu Compartilhamento Delta e selecione Compartilhado por mim.
  3. Na guia Compartilhamentos, localize e selecione o compartilhamento.
  4. Na guia Destinatários, localize o destinatário.
  5. Clique no menu kebab Kebab menu (também conhecido como menu de três pontos) e selecione Revogar.
  6. Na caixa de diálogo de confirmação, clique em Remover.

Para revogar o acesso de um destinatário a um compartilhamento, começando no destinatário:

  1. No workspace do Azure Databricks, clique no Catalog iconCatálogo.
  2. No painel esquerdo, expanda o menu Compartilhamento Delta e selecione Compartilhado por mim.
  3. Na guia Compartilhamentos, localize e selecione o destinatário.
  4. Na guia Compartilhamentos, localize o compartilhamento.
  5. Clique no menu kebab Kebab menu (também conhecido como menu de três pontos) na linha do compartilhamento e selecione Revogar.
  6. Na caixa de diálogo de confirmação, clique em Remover.

Sql

Execute o comando a seguir em um notebook ou no editor de SQL do Databricks.

REVOKE SELECT ON SHARE <share-name> FROM RECIPIENT <recipient-name>;

Cli

Crie um arquivo JSON que inclua o seguinte, substituindo recipient-name:

{
  "changes": [{
    "principal": "recipient-name",
    "remove": ["SELECT"]
  }]
}

Execute o comando a seguir usando a CLI do Databricks. Substitua <share-name> pelo nome do compartilhamento que deseja conceder ao destinatário e substitua update-share-perms.json pelo nome do arquivo JSON.

databricks unity-catalog shares update-permissions --name <share-name> --json-file update-share-perms.json

Exibir concessões em um compartilhamento ou concessões de propriedade de um destinatário

Para visualizar as concessões atuais em um compartilhamento, use o Explorador do Catálogo, a CLI do Catálogo do Unity do Databricks, o comando SQL SHOW GRANTS ON SHARE em um notebook do Azure Databricks ou o editor de consultas do Databricks SQL.

Permissões necessárias: se você estiver exibindo destinatários que receberam acesso a um compartilhamento, precisará ser um administrador de metastore, um usuário com o privilégio USE SHARE ou o proprietário do objeto de compartilhamento. Se você estiver exibindo compartilhamentos concedidos a um destinatário, precisará ser um administrador de metastore, um usuário com o privilégio USE RECIPIENT ou o proprietário do objeto do destinatário.

Explorador do Catálogo

Para exibir destinatários com acesso a um compartilhamento:

  1. No workspace do Azure Databricks, clique no Catalog iconCatálogo.
  2. No painel esquerdo, expanda o menu Compartilhamento Delta e selecione Compartilhado por mim.
  3. Na guia Compartilhamentos, localize e selecione o compartilhamento.
  4. Acesse a guia Destinatários para exibir todos os destinatários que têm acesso ao compartilhamento.

Sql

Execute o comando a seguir em um notebook ou no editor de SQL do Databricks.

SHOW GRANT ON SHARE <share-name>;

Cli

Execute o comando a seguir usando a CLI do Databricks.

databricks unity-catalog shares list-permissions --name <share-name>

Para visualizar as concessões atuais de compartilhamento pertencentes a um destinatário, use o Explorador do Catálogo, a CLI do Catálogo do Unity do Databricks, o comando SQL SHOW GRANTS TO RECIPIENT em um notebook do Azure Databricks ou o editor de consultas do Databricks SQL.

Explorador do Catálogo

Para exibir os compartilhamentos concedidos a um destinatário:

  1. No workspace do Azure Databricks, clique no Catalog iconCatálogo.
  2. No painel esquerdo, expanda o menu Compartilhamento Delta e selecione Compartilhado por mim.
  3. Na guia Compartilhamentos, localize e selecione o destinatário.
  4. Acesse a guia Compartilhamentos para exibir todos os compartilhamentos aos quais o destinatário tem acesso.

Sql

Execute o comando a seguir em um notebook ou no editor de SQL do Databricks.

SHOW GRANTS TO RECIPIENT <recipient-name>;

Cli

Execute o comando a seguir usando a CLI do Databricks.

databricks unity-catalog recipients list-permissions --name <recipient-name>