Introdução ao Secure Data Sharing

O Secure Data Sharing permite que você compartilhe objetos selecionados em um banco de dados em sua conta com outras contas Snowflake. Você pode compartilhar os seguintes objetos do Snowflake:

  • Bancos de dados

  • Tabelas

  • Tabelas dinâmicas

  • Tabelas externas

  • Tabelas Iceberg

  • Exibições seguras

  • Exibições materializadas seguras

  • Funções definidas pelo usuário seguras (UDFs)

O Snowflake permite o compartilhamento de bancos de dados através de compartilhamentos, que são criados por provedores de dados e «importados» por consumidores de dados.

Importante

Todos os objetos de banco de dados compartilhados entre contas são somente leitura (ou seja, os objetos não podem ser modificados ou apagados, incluindo a adição ou modificação de dados de tabela).

Neste tópico:

Como funciona o Secure Data Sharing?

Com o Secure Data Sharing, dados reais não são copiados ou transferidos entre contas. Todos os compartilhamentos utilizam a camada de serviços e o armazenamento de metadados do Snowflake. Os dados compartilhados não ocupam espaço de armazenamento nas contas de consumidor e, portanto, não contribuem para os encargos mensais de armazenamento de dados do consumidor. Os únicos encargos para os consumidores são relativos aos recursos computacionais (ou seja, warehouses virtuais) usados para consultar os dados compartilhados.

Como nenhum dado é copiado ou trocado, a configuração do Secure Data Sharing é rápida e fácil para os provedores e o acesso aos dados compartilhados é praticamente instantâneo para os consumidores:

  • O provedor cria um compartilhamento de um banco de dados em sua conta e concede acesso a objetos específicos no banco de dados. O provedor também pode compartilhar dados de vários bancos de dados, desde que estes bancos de dados pertençam à mesma conta. Uma ou mais contas são adicionadas ao compartilhamento, que pode incluir suas próprias contas (se você tiver várias contas Snowflake).

    Para obter mais detalhes, consulte O que é um compartilhamento? (neste tópico).

  • Para o consumidor, é criado um banco de dados somente leitura a partir do compartilhamento. O acesso a este banco de dados pode ser configurado usando o mesmo controle de acesso padrão baseado em função que o Snowflake fornece para todos os objetos do sistema.

Com esta arquitetura, o Snowflake permite uma rede de provedores que podem compartilhar dados com vários consumidores (inclusive dentro de sua própria organização) e consumidores que podem acessar dados compartilhados de vários provedores:

Visão geral de contas de provedores que compartilham dados com contas de consumidores

Nota

Qualquer conta Snowflake completa pode fornecer ou consumir dados compartilhados. O Snowflake também oferece suporte a contas de terceiros, um tipo especial de conta que consome dados compartilhados a partir de uma única conta de provedor. Para obter mais detalhes, consulte Contas de leitor para acesso de terceiros (neste tópico).

O que é um compartilhamento?

Compartilhamentos são objetos Snowflake nomeados que contêm todas as informações necessárias para compartilhar um banco de dados.

Os provedores de dados adicionam objetos Snowflake (bancos de dados, esquemas, tabelas, exibições seguras etc.) a um compartilhamento usando uma ou ambas as opções a seguir:

  • Opção 1: Conceder privilégios em objetos a um compartilhamento através de uma função de banco de dados.

  • Opção 2: Conceder privilégios em objetos diretamente a um compartilhamento.

Para obter mais informações sobre estas opções, consulte Como compartilhar objetos de banco de dados.

Você escolhe quais contas podem consumir dados do compartilhamento, adicionando as contas ao compartilhamento.

Depois que um banco de dados é criado (em uma conta de consumidor) a partir de um compartilhamento, todos os objetos compartilhados se tornam acessíveis aos usuários na conta de consumidor:

Relacionamento entre bancos de dados, objetos de banco de dados, compartilhamentos e contas

Os compartilhamentos são seguros, configuráveis e totalmente controlados pela conta do provedor:

  • Novos objetos adicionados a um compartilhamento tornam-se imediatamente disponíveis para todos os consumidores, proporcionando acesso em tempo real aos dados compartilhados.

  • As atualizações de objetos existentes em um compartilhamento ficam imediatamente disponíveis para todos os consumidores.

  • O acesso a um compartilhamento (ou a qualquer um dos objetos de um compartilhamento) pode ser revogado a qualquer momento.

Opções de compartilhamento no Snowflake

Você pode compartilhar dados no Snowflake usando uma das seguintes opções:

  • uma listagem na qual você oferece um compartilhamento e metadados adicionais como um produto de dados para uma ou mais contas,

  • um compartilhamento direto no qual você compartilha diretamente objetos específicos de banco de dados (um compartilhamento) com outra conta em sua região,

  • uma troca de dados na qual você configura e administra um grupo de contas e oferece um compartilhamento para esse grupo.

Você também pode converter um compartilhamento direto em uma listagem. Para obter instruções, consulte Conversão de um compartilhamento direto em uma listagem.

Consulte Visão geral do compartilhamento de dados no Snowflake para obter mais detalhes.

Visão geral dos provedores e consumidores de dados

Ao compartilhar no Snowflake, a conta que compartilha dados é chamada de provedor, e a conta que é receptora dos dados é chamada de consumidor.

Sobre os provedores

Um provedor de dados é qualquer conta Snowflake que crie compartilhamentos e os disponibilize a outras contas Snowflake para consumo. Como provedor de dados, você compartilha um banco de dados com uma ou mais contas Snowflake. Para cada banco de dados que você compartilha, o Snowflake oferece suporte ao uso de concessões para oferecer controle de acesso granular a objetos selecionados no banco de dados (ou seja, você concede privilégios de acesso para um ou mais objetos específicos no banco de dados).

Você pode criar quantos compartilhamentos quiser, e adicionar quantas contas quiser a um compartilhamento. Se você quiser fornecer um compartilhamento para muitas contas, talvez queira usar uma listagem ou uma troca de dados.

Para um guia sobre compartilhamento de dados como provedor, consulte Começando a utilizar o Secure Data Sharing. Para obter informações mais detalhadas, consulte Como trabalhar com compartilhamentos.

Sobre os consumidores

Um consumidor de dados é qualquer conta que opte por criar um banco de dados a partir de um compartilhamento disponibilizado por um provedor de dados. Como consumidor de dados, depois de ter adicionado um banco de dados compartilhado à sua conta, você poderá acessar e consultar os objetos no banco de dados da mesma forma que qualquer outro banco de dados em sua conta.

Você pode consumir quantos compartilhamentos quiser dos provedores de dados, mas só pode criar um banco de dados por compartilhamento.

Para obter mais detalhes, consulte Consumo de dados compartilhados.

Métricas de uso compartilhadas com provedores

Se você fornecer listagens de forma privada, usando uma troca de dados, ou no Snowflake Marketplace, você tem acesso a várias métricas sobre o uso do consumidor de suas listagens, e métricas sobre as contas do consumidor que acessam suas listagens.

Para obter mais detalhes sobre os dados de uso das listagens, consulte Monitoramento do uso de sua listagem. Os dados de uso de listagens compartilhadas em uma troca de dados estão disponíveis apenas nas exibições contidas no esquema Uso de Data Sharing do banco de dados Snowflake compartilhado.

Contas de leitor para acesso de terceiros

O compartilhamento de dados só é suportado entre contas Snowflake. Como provedor de dados, você pode querer compartilhar dados com um consumidor que ainda não tem uma conta Snowflake ou não pretende se tornar um cliente licenciado Snowflake.

Para facilitar o compartilhamento de dados com esses consumidores, você pode criar contas de leitor. As contas de leitor (antigamente conhecidas como «contas somente leitura») oferecem uma forma rápida, fácil e econômica de compartilhar dados sem exigir que o consumidor se torne um cliente Snowflake.

Cada conta de leitor pertence à conta do provedor que a criou. Como provedor, você usa compartilhamentos para compartilhar bancos de dados com contas de leitor. No entanto, uma conta de leitor só pode consumir dados da conta de provedor que a criou. Consulte o diagrama a seguir:

Visão geral do compartilhamento de dados de contas de leitor

Os usuários em uma conta de leitor podem consultar dados que foram compartilhados com a conta do leitor, mas não podem realizar nenhuma das tarefas DML permitidas em uma conta completa, como carregamento de dados, inserção, atualização e operações semelhantes de manipulação de dados.

Para obter mais detalhes, consulte Gerenciamento de contas de leitor.