Habilitação de funções diferentes de ACCOUNTADMIN para executar tarefas de compartilhamento de dados

Este tópico lista os privilégios mínimos necessários para realizar ações de SQL relacionadas a compartilhamentos.

Por padrão, os privilégios necessários para criar e gerenciar os compartilhamentos são concedidos somente à função ACCOUNTADMIN, garantindo que somente os administradores de conta possam realizar estas tarefas. No entanto, os privilégios também podem ser concedidos a outras funções, permitindo que as tarefas sejam delegadas a outros usuários na conta.

Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.

Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.

Nota

Se você conceder privilégios de compartilhamento a outros usuários na conta, certifique-se de que os perfis de usuário desses outros usuários incluam um nome, sobrenome e um endereço de e-mail. Para modificar o perfil do usuário em Snowsight, consulte Adição dos detalhes do usuário ao seu perfil de usuário.

Provedores de dados

Os provedores de dados podem escolher uma das seguintes opções para adicionar objetos a um compartilhamento:

  • Opção 1: crie uma função de banco de dados em um banco de dados, conceda privilégios em objetos à função de banco de dados e, em seguida, conceda a função de banco de dados ao compartilhamento.

  • Opção 2: Conceda privilégios no banco de dados e objetos de banco de dados diretamente para o compartilhamento.

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

Os privilégios mínimos necessários para criar e gerenciar compartilhamentos em uma conta de provedor ou consumidor de dados dependem de qual opção foi utilizada.

Opção 1:

Ação

Privilégio

Objeto

Notas

Crie compartilhamentos.

CREATE SHARE

Conta

Somente a função ACCOUNTADMIN tem este privilégio por padrão. O privilégio pode ser concedido a funções adicionais, conforme necessário.

Crie funções de banco de dados em um banco de dados.

CREATE DATABASE ROLE

Banco de dados

Somente a função do proprietário do banco de dados (ou seja, a função com o privilégio OWNERSHIP no banco de dados) tem este privilégio por padrão. O privilégio pode ser concedido a funções adicionais, conforme necessário.

Opção 2:

Ação

Privilégio

Objeto

Notas

Crie compartilhamentos.

CREATE SHARE

Conta

Somente a função ACCOUNTADMIN tem este privilégio por padrão. O privilégio pode ser concedido a funções adicionais, conforme necessário.

Conceda ou revogue privilégios nesses objetos de ou para um compartilhamento.

OWNERSHIP

Compartilhamento

Essa função também deve ter, no mínimo, os seguintes privilégios nos objetos do banco de dados com a opção de concessão:

  • USAGE no banco de dados

  • USAGE no esquema

  • SELECT em quaisquer tabelas, tabelas externas, exibições seguras ou exibições materializadas seguras

  • USAGE em quaisquer UDFs seguros

Observe que operar em qualquer objeto de um esquema também requer o privilégio USAGE no banco de dados e esquema principais.

Atenção

A concessão de CREATE SHARE a outras funções torna o gerenciamento de compartilhamentos mais flexível, mas também permite que os usuários com essas funções exponham a outras contas quaisquer objetos que possuam (ou sobre os quais tenham os privilégios necessários). Isto é particularmente importante se você estiver compartilhando dados de uma conta que contenha dados confidenciais ou patenteados.

Leve isto em consideração antes de conceder CREATE SHARE a outras funções.

Bloqueio de acesso a objetos em um compartilhamento

O acesso aos objetos em um compartilhamento pode ser bloqueado tanto pela função que possui o compartilhamento quanto pela função que possui os objetos:

  • Se sua função for proprietária do compartilhamento, você pode bloquear o acesso, revogando os privilégios sobre os objetos do compartilhamento.

  • Se sua função não for proprietária do compartilhamento, mas sim dos objetos no compartilhamento, você pode bloquear o acesso revogando os privilégios USAGE ou SELECT com CASCADE sobre os objetos do proprietário do compartilhamento.

Nota

A propriedade de um compartilhamento, assim como os objetos do compartilhamento, pode ser através de uma concessão direta à função ou herdada de uma função de nível inferior na hierarquia de funções. Para obter mais detalhes, consulte Hierarquia de funções e herança de privilégios.

É possível que a mesma função possua um compartilhamento e os objetos do compartilhamento.

Consumidores de dados

Em uma conta de consumidor, o privilégio global IMPORT SHARE permite visualizar os compartilhamentos de entrada compartilhados com a conta. O privilégio também permite a criação de bancos de dados a partir de compartilhamentos de entrada se a função também receber o privilégio global CREATE DATABASE.

Privilégio IMPORT SHARE

Se o privilégio IMPORT SHARE for concedido a uma função, qualquer usuário com a função pode realizar as seguintes tarefas:

  • Ver todos os compartilhamentos INBOUND (compartilhados pelas contas do provedor).

  • Veja todos os compartilhamentos OUTBOUND de propriedade da função.

  • Crie bancos de dados a partir de compartilhamentos de entrada se a função também receber o privilégio global CREATE DATABASE

Concessão do privilégio a outra função

Para conceder o privilégio global IMPORT SHARE a uma função diferente de ACCOUNTADMIN em uma conta de consumidor, use a função ACCOUNTADMIN e o comando GRANT <privilégios>.

Por exemplo, para conceder o privilégio à função SYSADMIN:

USE ROLE ACCOUNTADMIN;

GRANT IMPORT SHARE ON ACCOUNT TO SYSADMIN;
Copy