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.
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.
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;