Compartilhamento de dados a partir de diversos bancos de dados¶
Os provedor de dados do Snowflake podem compartilhar dados que se encontram em diferentes bancos de dados, utilizando exibições seguras. Uma exibição segura pode fazer referência a objetos como esquemas, tabelas e outras exibições de um ou mais bancos de dados, desde que esses bancos de dados pertençam à mesma conta.
O processo de compartilhamento de uma exibição segura que faça referência a objetos de vários bancos de dados é diferente do compartilhamento de dados que se encontram em um único banco de dados.
Além de realizar todos os passos padrão para o compartilhamento de dados, você deve conceder o privilégio REFERENCE_USAGE em cada um dos bancos de dados referenciados por uma exibição segura que você deseje compartilhar. Entretanto, você não precisa conceder REFERENCE_USAGE no banco de dados em que a exibição segura é criada.
Importante
O privilégio REFERENCE_USAGE não pode ser concedido a uma função de banco de dados para incluir objetos de múltiplos bancos de dados em um compartilhamento. Esta limitação também se aplica a objetos como exibições seguras que têm uma ou mais tabelas subjacentes em um banco de dados separado.
Para incluir vários bancos de dados em um compartilhamento, você deve conceder privilégios nos objetos diretamente ao compartilhamento. Para obter mais informações sobre esta opção, consulte Opção 2: concessão de privilégios diretamente a um compartilhamento.
Você deve conceder o privilégio separadamente em cada banco de dados referenciado em uma exibição, antes de adicionar a exibição a um compartilhamento (ou seja, ao conceder o privilégio SELECT em uma visão a um compartilhamento).
Para compartilhar uma exibição segura que faz referência a objetos de diversos bancos de dados:
Conecte-se à sua conta Snowflake como um usuário com a função ACCOUNTADMIN ou uma função à qual é concedido o privilégio global CREATE SHARE. Para obter mais detalhes sobre o privilégio CREATE SHARE, consulte Habilitação de funções diferentes de ACCOUNTADMIN para executar tarefas de compartilhamento de dados.
Criar um compartilhamento usando CREATE SHARE.
Conceda o privilégio USAGE sobre o banco de dados que você deseja compartilhar usando GRANT <privilégio> … TO SHARE.
Nota
Se estiver compartilhando uma exibição segura que faz referência a objetos pertencentes a diversos bancos de dados, você deve conceder o privilégio USAGE somente ao banco de dados em que a exibição segura é criada. Você só pode conceder USAGE a um banco de dados por compartilhamento.
Conceda o privilégio USAGE sobre cada esquema no banco de dados que você deseja compartilhar, usando GRANT <privilégio> … TO SHARE.
Conceda o privilégio REFERENCE_USAGE sobre cada banco de dados adicional que contenha objetos referenciados pela exibição que você deseja compartilhar, usando GRANT <privilégio> … TO SHARE.
Conceda o privilégio SELECT sobre a visualização que você deseja compartilhar usando GRANT <privilégio> … TO SHARE.
Adicionar uma ou mais contas de consumidor ao compartilhamento usando ALTER SHARE.
Agora o compartilhamento está pronto para ser consumido pelas contas especificadas.
Nota
Para compartilhar uma exibição segura que faça referência à UDF em um banco de dados diferente, você deve tornar a UDF segura. Para obter mais detalhes sobre como criar uma UDF segura, consulte Criação de um UDF ou procedimento armazenado seguro.
Exemplos¶
Consulte os exemplos a seguir para criar exibições seguras.
Compartilhamento de dados de vários bancos de dados com consumidores em outras regiões¶
Você pode compartilhar dados de vários bancos de dados com contas de consumidores em outras regiões e plataformas de nuvem usando um grupo de replicação. Inclua o compartilhamento e cada banco de dados ao qual o compartilhamento faz referência no grupo para replicar dados para uma conta Snowflake em outra região. Você pode então adicionar contas do consumidor ao compartilhamento replicado. Para instruções detalhadas, consulte Compartilhamento de dados de forma segura entre regiões e plataformas de nuvem.