Gerir recetores de dados para OpenSharing

Esta página descreve como os fornecedores gerem os destinatários OpenSharing existentes no Azure Databricks. Um destinatário é o objeto nomeado que representa a identidade de um utilizador ou grupo com quem partilha dados.

Se é um destinatário de dados e pretende gerir um objeto de fornecedor que importou de um ficheiro de credenciais, consulte Gerir fornecedores OpenSharing para destinatários de dados em vez disso.

Para criar um destinatário, consulte Criar destinatários de dados para o OpenSharing (partilha de Databricks para Databricks), Criar um objeto destinatário para utilizadores não Databricks com tokens de portador (partilha de Databricks para Open) ou Ativar a federação Open ID Connect (OIDC) para destinatários do OpenSharing. Para gerir partilhas, veja Administrar partilhas para OpenSharing.

Conceder ao destinatário acesso a um compartilhamento

Depois de criar o destinatário e criar partilhas, pode conceder acesso ao destinatário a essas partilhas.

Para conceder acesso de compartilhamento aos destinatários, você pode usar o Gerenciador de Catálogos, a CLI do Catálogo Unity do Databricks ou o GRANT ON SHARE comando SQL em um bloco de anotações do Azure Databricks ou no editor de consultas do Databricks SQL.

Permissões necessárias: uma das seguintes opções:

  • Administrador da Metastore.
  • Permissões delegadas ou propriedade tanto nos objetos da partilha quanto nos objetos do destinatário ((USE SHARE + SET SHARE PERMISSION) ou proprietário da partilha) E (USE RECIPIENT ou proprietário do destinatário).

Para instruções, consulte Gerir o acesso a partilhas de dados OpenSharing (para fornecedores).

Ver destinatários

Para exibir uma lista de destinatários, você pode usar o Gerenciador de Catálogos, a CLI do Catálogo Unity Databricks ou o SHOW RECIPIENTS comando SQL em um bloco de anotações do Azure Databricks ou no editor de consultas Databricks SQL.

Permissões necessárias: Deve ter o privilégio USE RECIPIENT de visualizar todos os destinatários na metastore. Outros utilizadores têm acesso apenas aos destinatários que possuem.

Explorador de Catálogos

  1. No seu espaço de trabalho do Azure Databricks, clique no ícone Dados.Catálogo.

  2. No topo do painel de Catálogo , clique no ícone de engrenagem. ícone de engrenagem e selecione OpenSharing.

    Alternativamente, no canto superior direito, clique em Partilhar > OpenSharing.

  3. Na guia Compartilhado por mim, clique em Destinatários.

SQL

Execute o seguinte comando em um bloco de anotações ou no editor de consultas Databricks SQL. Opcionalmente, substitua <pattern> por um LIKE predicado.

SHOW RECIPIENTS [LIKE <pattern>];

CLI

Execute o seguinte comando usando a CLI do Databricks.

databricks recipients list

Ver detalhes do destinatário

Para exibir detalhes sobre um destinatário, você pode usar o Gerenciador de Catálogos, a CLI do Catálogo Databricks Unity ou o DESCRIBE RECIPIENT comando SQL em um bloco de anotações do Azure Databricks ou no editor de consultas Databricks SQL.

Permissões necessárias: administrador do Metastore, usuário com o USE RECIPIENT privilégio ou proprietário do objeto destinatário.

Os detalhes incluem:

  • O criador do destinatário, a data e hora de criação, os comentários e o tipo de autenticação (DATABRICKS, TOKEN, OAUTH_CLIENT_CREDENTIALS ou OIDC_FEDERATION).
  • Se o destinatário utilizar a partilha de Databricks para Open com tokens de portador: tempo de vida do token, ligação de ativação, estado de ativação (se a credencial foi descarregada) e listas de acesso por IP, se atribuídas.
  • Se o destinatário usar partilha de Databricks para Open com federação OIDC: endpoint do destinatário, endpoint MTLS, políticas de federação e listas de acesso IP, se atribuídas.
  • Se o destinatário utilizar o compartilhamento entre Databricks: a nuvem, a região e o ID do metastore do Unity Catalog do destinatário, assim como o status de ativação.
  • Propriedades do destinatário, incluindo propriedades personalizadas. Consulte Gerenciar propriedades do destinatário.

Explorador de Catálogos

  1. No seu espaço de trabalho do Azure Databricks, clique no ícone Dados.Catálogo.

  2. No topo do painel de Catálogo , clique no ícone de engrenagem. ícone de engrenagem e selecione OpenSharing.

    Alternativamente, no canto superior direito, clique em Partilhar > OpenSharing.

  3. Na guia Compartilhado por mim, clique em Destinatários e selecione o destinatário.

SQL

Execute o seguinte comando em um bloco de anotações ou no editor de consultas Databricks SQL.

DESCRIBE RECIPIENT <recipient-name>;

CLI

Execute o seguinte comando usando a CLI do Databricks.

databricks recipients get <recipient-name>

Exibir as permissões de compartilhamento de um destinatário

Para exibir a lista de compartilhamentos aos quais um destinatário recebeu acesso, você pode usar o Gerenciador de Catálogos, a CLI do Databricks ou o SHOW GRANTS TO RECIPIENT comando SQL em um bloco de anotações do Azure Databricks ou no editor de consultas do Databricks SQL.

Permissões necessárias: administrador do Metastore, usuário com o USE RECIPIENT privilégio ou proprietário do objeto destinatário.

Explorador de Catálogos

  1. No seu espaço de trabalho do Azure Databricks, clique no ícone Dados.Catálogo.

  2. No topo do painel de Catálogo , clique no ícone de engrenagem. ícone de engrenagem e selecione OpenSharing.

    Alternativamente, no canto superior direito, clique em Partilhar > OpenSharing.

  3. Na guia Compartilhado por mim, clique em Destinatários e selecione o destinatário.

  4. Aceda ao separador Partilhas para ver a lista de partilhas partilhadas com o destinatário.

SQL

Execute o seguinte comando em um bloco de anotações ou no editor de consultas Databricks SQL.

SHOW GRANTS TO RECIPIENT <recipient-name>;

CLI

Execute o seguinte comando usando a CLI do Databricks.

databricks recipients share-permissions <recipient-name>

Atualizar um destinatário

Para atualizar um destinatário, você pode usar o Gerenciador de Catálogos, a CLI do Catálogo Unity do Databricks ou o ALTER RECIPIENT comando SQL em um bloco de anotações do Azure Databricks ou o editor de consultas do Databricks SQL.

As propriedades que você pode atualizar incluem nome do destinatário, proprietário, comentário e propriedades personalizadas.

Permissões necessárias: você deve ser um administrador de metastore ou proprietário do objeto de destinatário para atualizar o proprietário. Deve ter o CREATE RECIPIENTprivilégio e ser o proprietário para atualizar o nome. Você deve ser o proprietário para atualizar o comentário ou as propriedades personalizadas.

Explorador de Catálogos

  1. No seu espaço de trabalho do Azure Databricks, clique no ícone Dados.Catálogo.

  2. No topo do painel de Catálogo , clique no ícone de engrenagem. ícone de engrenagem e selecione OpenSharing.

    Alternativamente, no canto superior direito, clique em Partilhar > OpenSharing.

  3. Na guia Compartilhado por mim, clique em Destinatários e selecione o destinatário.

  4. Na página de detalhes do destinatário:

    • Atualize o proprietário.

    • Edite ou adicione um comentário.

    • Renomeie o destinatário.

      Clique no ícone do menu Kebab e selecione Renomear.

    • Edite, remova ou adicione propriedades personalizadas de Destinatário.

      Clique no ícone de edição ao lado de Propriedades do destinatário. Em seguida, adicione um nome de propriedade (Key) e Value. Para obter detalhes, consulte Gerenciar propriedades do destinatário.

    • Somente destinatários autenticados por token:

    • Somente destinatários federados do OIDC:

SQL

Execute um ou mais dos seguintes comandos em um bloco de anotações ou no editor de consultas Databricks SQL.

ALTER RECIPIENT <recipient-name> RENAME TO <new-recipient-name>;

ALTER RECIPIENT <recipient-name> OWNER TO <new-owner>;

COMMENT ON RECIPIENT <recipient-name> IS "<new-comment>";

ALTER RECIPIENT <recipient-name> SET PROPERTIES ( <property-key>  =  property_value [, ...] )

ALTER RECIPIENT <recipient-name> UNSET PROPERTIES ( <property-key> [, ...] )

Para obter mais informações sobre propriedades, consulte Gerenciar propriedades de destinatário.

CLI

Crie um arquivo JSON que inclua uma atualização para o nome do destinatário, comentário, proprietário, lista de acesso IP ou propriedades personalizadas.

{
  "name": "new-recipient-name",
  "owner": "someone-else@example.com",
  "comment": "something new",
  "ip_access_list": {
    "allowed_ip_addresses": ["8.8.8.8", "8.8.8.4/10"]
  },
  "property": {
    "country": "us",
    "id": "001"
  }
}

Em seguida, execute o seguinte comando usando a CLI do Databricks. Substitua <recipient-name> pelo nome do destinatário atual e substitua update-recipient-settings.json pelo nome do arquivo JSON.

databricks recipients update --json-file update-recipient-settings.json

Para obter mais informações sobre propriedades, consulte Gerenciar propriedades de destinatário.

(Opcional) Restringir o acesso de destinatários usando listas de acesso

Pode limitar o acesso do destinatário a um conjunto restrito de endereços IP para destinatários de partilha Databricks-to-Open. Veja Restringir o acesso do destinatário do Open Sharing através de listas de acesso IP (Databricks-to-Open Sharing).

Gerenciar propriedades do destinatário

Os objetos de destinatário incluem propriedades predefinidas que você pode usar para refinar o acesso ao compartilhamento de dados. Por exemplo, você pode usá-los para fazer o seguinte:

  • Compartilhe partições de tabela diferentes com destinatários diferentes, permitindo que você use os mesmos compartilhamentos com vários destinatários enquanto mantém os limites de dados entre eles.
  • Partilhe vistas dinâmicas que limitam o acesso do destinatário aos dados da tabela ao nível da linha ou coluna com base nas propriedades do destinatário.

Você também pode criar propriedades personalizadas.

As propriedades predefinidas começam com databricks. e incluem o seguinte:

  • databricks.accountId: A conta do Azure Databricks à qual pertence um destinatário de dados (somente compartilhamento de Databricks para Databricks).
  • databricks.metastoreId: O metastore do Unity Catalog ao qual pertence um destinatário de dados (compartilhamento somente de Databricks para Databricks).
  • databricks.name: O nome do destinatário dos dados.

As propriedades personalizadas que podem ser valiosas podem incluir, por exemplo, country. Por exemplo, se você anexar a propriedade 'country' = 'us' personalizada a um destinatário, poderá particionar dados da tabela por país e compartilhar apenas linhas que tenham dados dos EUA com os destinatários que têm essa propriedade atribuída. Você também pode compartilhar um modo de exibição dinâmico que restringe o acesso a linhas ou colunas com base nas propriedades do destinatário. Para obter exemplos mais detalhados, consulte Usar propriedades de destinatário para fazer filtragem de partições e Adicionar exibições dinâmicas a um compartilhamento para filtrar linhas e colunas.

Requisitos

Deve usar um armazém SQL ou uma instância de computação a correr Databricks Runtime 12.2 ou superior.

Adicionar propriedades ao criar ou atualizar um destinatário

Você pode adicionar propriedades ao criar um destinatário ou atualizá-las para um destinatário existente. Você pode usar o Gerenciador de Catálogos, a CLI do Catálogo Databricks Unity ou comandos SQL em um bloco de anotações do Azure Databricks ou no editor de consultas Databricks SQL.

Permissões necessárias: administrador ou usuário do Metastore com o CREATE RECIPIENT privilégio para o metastore do Unity Catalog.

Explorador de Catálogos

Ao criar ou atualizar um destinatário usando o Gerenciador de Catálogos, adicione ou atualize propriedades personalizadas fazendo o seguinte:

  1. Vá para a página Detalhes do destinatário.

    Se estiver a criar um novo destinatário, aceda a esta página depois de clicar em Criar. Se estiver a atualizar um destinatário existente, aceda a esta página clicando no ícone de engrenagem.ícone de engrenagem > OpenSharing > Partilhado por mim > Destinatários e selecionando o destinatário.

  2. No canto inferior direito da página, nas propriedades do destinatário, clique no ícone de lápis. ao lado de databricks.metastoreID para um destinatário do Azure Databricks ou ao lado de databricks.name para um destinatário aberto.

  3. Insira um nome de propriedade (Chave) e Valor.

    Por exemplo, se você quiser filtrar dados compartilhados por país e compartilhar apenas dados dos EUA com esse destinatário, poderá criar uma chave chamada "país" com um valor de "EUA".

  4. Clique em Salvar.

SQL

Para adicionar uma propriedade personalizada ao criar um destinatário, execute o seguinte comando em um bloco de anotações ou no editor de consultas Databricks SQL:

CREATE RECIPIENT [IF NOT EXISTS] <recipient-name>
[USING ID '<sharing-identifier>'] /* Skip this if you are using open sharing */
[COMMENT "<comment>"]
PROPERTIES ( '<property-key>' = '<property-value>' [, ...] );

<property-key> pode ser um literal de string ou um identificador. <property-value> deve ser uma cadeia de caracteres literal.

Por exemplo:

CREATE RECIPIENT acme PROPERTIES ('country' = 'us', 'partner_id' = '001');

Para adicionar, editar ou excluir propriedades personalizadas de um destinatário existente, execute uma das seguintes opções:

ALTER RECIPIENT <recipient-name> SET PROPERTIES ( '<property-key>' = '<property-value>' [, ...] );

ALTER RECIPIENT <recipient-name> UNSET PROPERTIES ( '<property-key>' );

CLI

Para adicionar propriedades personalizadas ao criar um destinatário, execute o seguinte comando usando a CLI do Databricks. Substitua os valores dos espaços reservados:

  • <recipient-name>: O nome do destinatário.
  • <property-key> pode ser um literal de string ou um identificador.
  • <property-value> deve ser uma cadeia de caracteres literal.
databricks recipients create \
--json='{
  "name": "<recipient-name>",
  "properties_kvpairs": {
    "properties": {
      "<property-key>": "<property-value>",
    }
  }
}'

Por exemplo:

databricks recipients create \
--json='{
  "name": "<recipient-name>",
  "properties_kvpairs": {
    "properties": {
      "country": "us",
      "partner_id":"001"
    }
  }
}'

Para adicionar ou editar propriedades personalizadas para um destinatário existente, use update em vez de create:

databricks recipients update \
--json='{
  "name": "<recipient-name>",
  "properties_kvpairs": {
    "properties": {
      "country": "us",
      "partner_id":"001"
    }
  }
}'

Exibir propriedades do destinatário

Para exibir as propriedades do destinatário, siga as instruções em Exibir detalhes do destinatário.

Excluir um destinatário

Para excluir um destinatário, você pode usar o Gerenciador de Catálogos, a CLI do Catálogo Unity do Databricks ou o DROP RECIPIENT comando SQL em um bloco de anotações do Azure Databricks ou o editor de consultas do Databricks SQL. Você deve ser o proprietário do objeto destinatário para excluir o destinatário.

Quando você exclui um destinatário, os usuários representados pelo destinatário não podem mais acessar os dados compartilhados. Os tokens que os destinatários utilizam num cenário de partilha de Databricks para Open são invalidados.

Permissões necessárias: Proprietário do objeto do recetor.

Explorador de Catálogos

  1. No seu espaço de trabalho do Azure Databricks, clique no ícone Dados.Catálogo.

  2. No topo do painel de Catálogo , clique no ícone de engrenagem. ícone de engrenagem e selecione OpenSharing.

    Alternativamente, no canto superior direito, clique em Partilhar > OpenSharing.

  3. Na guia Compartilhado por mim, clique em Destinatários e selecione o destinatário.

  4. Na guia Destinatários, localize e selecione o destinatário.

  5. Clique no ícone do menu Kebab. menu kebab e selecione Excluir.

  6. Na caixa de diálogo de confirmação, clique em Excluir.

SQL

Execute o seguinte comando em um bloco de anotações ou no editor de consultas Databricks SQL.

DROP RECIPIENT [IF EXISTS] <recipient-name>;

CLI

Execute o seguinte comando usando a CLI do Databricks.

databricks recipients delete <recipient-name>