Concessão de privilégios a outras funções

O Snowflake fornece um conjunto de privilégios para trabalhar com listagens no Snowflake Marketplace ou em um Data Exchange.

Neste tópico:

Concessão de privilégios de administrador em um Data Exchange

Por padrão, somente um administrador de conta (um usuário com a função ACCOUNTADMIN) na conta do administrador de Data Exchange pode gerenciar um Data Exchange que inclui as seguintes tarefas:

  • Adicionar ou remover membros.

  • Aprovar ou negar solicitações de aprovação de listagem.

  • Aprovar ou negar solicitações de aprovação de perfil de provedor.

  • Mostrar categorias.

Para oferecer suporte à delegação dessas tarefas a outros usuários, o privilégio IMPORTED PRIVILEGES pode ser concedido em um Data Exchange para outras funções.

Concessão do privilégio IMPORTED PRIVILEGES para outras funções

Para conceder o privilégio IMPORTED PRIVILEGES para um Data Exchange a uma função, use a função ACCOUNTADMIN e o comando GRANT <privilégios>.

Nota

O parâmetro WITH GRANT OPTION não oferece suporte ao privilégio IMPORTED PRIVILEGES.

Sintaxe:

GRANT IMPORTED PRIVILEGES ON DATA EXCHANGE <exchange_name> TO <role_name>;
Copy

Onde:

  • exchange_name é o nome de um Data Exchange.

  • role_name é a função à qual o privilégio é concedido.

Por exemplo, conceda privilégios de importação para o mydataexchange Data Exchange à função myrole:

USE ROLE ACCOUNTADMIN;

GRANT IMPORTED PRIVILEGES ON DATA EXCHANGE mydataexchange TO myrole;
Copy

Notas de uso

  • Este privilégio é concedido no nível do Data Exchange. Portanto, os usuários com a função só podem administrar o Data Exchange para o qual o privilégio foi concedido.

  • Somente um administrador de conta na conta do administrador do Data Exchange pode conceder o privilégio a outra função.

  • Quando uma função recebe IMPORTED PRIVILEGES para um banco de dados criado a partir de um compartilhamento, chamadas subsequentes para o comando SHOW GRANTS listam o privilégio como USAGE e não IMPORTED PRIVILEGES.

  • Este privilégio só pode ser usado para o Data Exchange. No Snowflake Marketplace, somente os administradores do Snowflake podem realizar tarefas administrativas.

Concessão de privilégios de provedor a outras funções para o Snowflake Marketplace ou Data Exchange

O Snowflake fornece um conjunto de privilégios para permitir que os provedores executem diversas tarefas relacionadas ao compartilhamento de dados e aplicativos com consumidores específicos, no Snowflake Marketplace, ou dados em um Data Exchange.

Privilégio

Tipo de objeto

Pode ser concedido por

Descrição

Privilégio global CREATE DATA EXCHANGE LISTING

ACCOUNT

ACCOUNTADMIN

Concede a capacidade de criar uma listagem ou perfil de provedor.

Privilégio CREATE SHARE

ACCOUNT

ACCOUNTADMIN

Concede a capacidade de criar um compartilhamento.

Privilégio IMPORT SHARE

ACCOUNT

ACCOUNTADMIN

Concede a capacidade de visualizar um compartilhamento de entrada compartilhado com a conta e criar um banco de dados a partir do compartilhamento.

Privilégio PURCHASE DATA EXCHANGE LISTING

ACCOUNT

ACCOUNTADMIN

Concede a capacidade de comprar uma listagem paga.

Privilégio MODIFY em uma listagem

LISTING

Função com o privilégio OWNERSHIP na listagem.

Concede a capacidade de modificar propriedades da listagem.

Privilégio USAGE em uma listagem

LISTING

Função com o privilégio OWNERSHIP na listagem.

Concede a capacidade de visualizar uma listagem.

Privilégio OWNERSHIP em uma listagem

LISTING

Função com o privilégio OWNERSHIP na listagem.

Transfira o privilégio OWNERSHIP na listagem.

Privilégio MODIFY para um perfil de provedor

PROVIDER PROFILE

Função com o privilégio OWNERSHIP no perfil.

Concede a capacidade de modificar propriedades para um perfil de provedor.

Privilégio OWNERSHIP para um perfil de provedor

PROVIDER PROFILE

Função com o privilégio OWNERSHIP no perfil.

Transfira o privilégio OWNERSHIP no perfil.

Privilégios no nível da conta

O Snowflake fornece os seguintes privilégios para trabalhar com compartilhamentos, listagens e perfis de provedor no nível de conta no Snowflake Marketplace ou um Data Exchange:

Privilégio global CREATE DATA EXCHANGE LISTING

Se o privilégio global CREATE DATA EXCHANGE LISTING for concedido a uma função, qualquer usuário com a função pode criar uma listagem ou perfil de provedor. Como o criador e, portanto, proprietário da listagem, a função pode ser usada para executar todas as tarefas para a listagem, inclusive:

  • Criar listagens.

  • Modificar propriedades das listagens.

  • Ver listagens.

  • Ver pedidos de acesso à listagem.

  • Rejeitar pedidos de listagem.

  • Enviar listagens para aprovação.

  • Publicar listagens.

  • Criar e visualizar perfis de provedor.

Se uma conta é um provedor em mais de um Data Exchange, uma função com o privilégio global CREATE DATA EXCHANGE LISTING pode criar listagens em cada um desses Data Exchanges.

Nota

  • Um função que cria uma listagem torna-se o proprietário da listagem. O privilégio OWNERSHIP pode ser transferido usando Privilégio OWNERSHIP em uma listagem para uma função diferente pela função de proprietário.

  • Somente os administradores de conta (usuários com a função ACCOUNTADMIN) podem conceder o privilégio global CREATE DATA EXCHANGE LISTING a uma função.

Para conceder o privilégio global CREATE DATA EXCHANGE LISTING a um função em um Data Exchange, use o comando GRANT <privilégios> [WITH GRANT OPTION].

Por exemplo, use a função ACCOUNTADMIN para conceder o privilégio:

USE ROLE ACCOUNTADMIN;
Copy

Em seguida, conceda o privilégio a uma função personalizada, myrole:

GRANT CREATE DATA EXCHANGE LISTING ON ACCOUNT TO ROLE myrole;
Copy

Em seguida, conceda o privilégio à função myrole com opção de concessão:

GRANT CREATE DATA EXCHANGE LISTING ON ACCOUNT TO ROLE myrole WITH GRANT OPTION;
Copy

Privilégio CREATE SHARE

Se o privilégio CREATE SHARE for concedido a uma função, qualquer usuário com a função pode criar um compartilhamento. Como criador e, portanto, proprietário da ação, a função também pode ser usada para executar todas as tarefas para o compartilhamento, inclusive:

  • Conceder privilégios em objetos ou revogar privilégios em objetos do compartilhamento.

  • Adicionar ou remover contas do consumidor do compartilhamento.

Para obter mais informações, consulte Habilitação de funções diferentes de ACCOUNTADMIN para executar tarefas de compartilhamento de dados.

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.

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

Para obter mais informações, consulte Habilitação de funções diferentes de ACCOUNTADMIN para executar tarefas de compartilhamento de dados.

Privilégio PURCHASE DATA EXCHANGE LISTING

Se o privilégio PURCHASE DATA EXCHANGE LISTING for concedido a uma função, qualquer usuário com a função pode adquirir uma listagem compartilhada de forma privada ou no Snowflake Marketplace.

Para obter mais informações sobre a compra de listagens, consulte Como se tornar um consumidor de listagens.

Para obter mais informações sobre esse privilégio, consulte Habilitação de funções diferentes de ACCOUNTADMIN para executar tarefas de compartilhamento de dados.

Privilégios no nível de listagem

O Snowflake fornece os seguintes privilégios para listagens. Você só pode conceder esses privilégios usando a função concedida ao privilégio OWNERSHIP na listagem.

Privilégio MODIFY em uma listagem

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

  • Modificar as propriedades das listagens.

  • Ver uma listagem.

  • Ver pedidos de acesso à listagem de entrada.

  • Enviar uma listagem para aprovação.

  • Publicar uma listagem.

  • Rejeitar pedidos de listagem.

Somente a função com o privilégio OWNERSHIP na listagem pode conceder esse privilégio. O privilégio MODIFY só pode ser concedido em uma listagem usando Snowsight.

Para conceder o privilégio MODIFY em uma listagem compartilhada com consumidores específicos ou publicada no Snowflake Marketplace:

  1. Entre em Snowsight.

  2. Navegue até Data Products » Provider Studio.

  3. Selecione Listings.

  4. Localize a listagem que você deseja modificar e selecione a linha para abrir os detalhes da listagem.

  5. Na página de detalhes da listagem, selecione Settings.

  6. Na seção Privileges, selecione o ícone do lápis ao lado do privilégio Modify Listing.

  7. Selecione Add Role e adicione as funções necessárias.

  8. Salve suas alterações.

Para conceder o privilégio MODIFY para uma listagem em uma troca de dados:

  1. Entre em Snowsight.

  2. Navegue até Data Products » Private Sharing.

  3. Selecione Shared By My Account.

  4. Localize a listagem que você deseja modificar e selecione a linha para abrir os detalhes da listagem.

  5. Na página de detalhes da listagem, selecione Settings.

  6. Na seção Privileges, selecione o ícone do lápis ao lado do privilégio Modify Listing.

  7. Selecione Add Role e adicione as funções necessárias.

  8. Salve suas alterações.

Privilégio USAGE em uma listagem

Se o privilégio USAGE para uma listagem for concedido a uma função, qualquer usuário com a função pode visualizar listagens e pedidos de listagem recebidos. Somente a função com o privilégio OWNERSHIP na listagem pode conceder esse privilégio.

Para conceder o privilégio USAGE em uma listagem compartilhada com consumidores específicos ou publicada no Snowflake Marketplace:

  1. Entre em Snowsight.

  2. Navegue até Data Products » Provider Studio.

  3. Selecione Listings.

  4. Localize a listagem que você deseja modificar e selecione a linha para abrir os detalhes da listagem.

  5. Na página de detalhes da listagem, selecione Settings.

  6. Na seção Privileges, selecione o ícone do lápis ao lado do privilégio Modify Listing.

  7. Selecione Add Role e adicione as funções necessárias.

  8. Salve suas alterações.

Para conceder o privilégio USAGE para uma listagem em uma troca de dados:

  1. Entre em Snowsight.

  2. Navegue até Data Products » Private Sharing.

  3. Selecione Shared By My Account.

  4. Localize a listagem que você deseja modificar e selecione a linha para abrir os detalhes da listagem.

  5. Na página de detalhes da listagem, selecione Settings.

  6. Na seção Privileges, selecione o ícone do lápis ao lado do privilégio Modify Listing.

  7. Selecione Add Role e adicione as funções necessárias.

  8. Salve suas alterações.

Privilégio OWNERSHIP em uma listagem

Se o privilégio OWNERSHIP para uma listagem for concedido a uma função, essa função se torna o novo OWNER da listagem. Somente o OWNER da listagem pode conceder este privilégio. OWNERSHIP é um tipo especial de privilégio que só pode ser concedido de uma função para outra; ele não pode ser revogado. Para obter mais detalhes, consulte Visão geral do controle de acesso.

Importante

Quando a propriedade da listagem é transferida, todas as concessões existentes são revogadas. Todas as funções às quais foram concedidos privilégios perdem imediatamente o acesso a esta lista, e seus privilégios são revogados. O novo proprietário da listagem deve conceder novamente estes privilégios.

Para conceder o privilégio OWNERSHIP em uma listagem compartilhada com consumidores específicos ou publicada no Snowflake Marketplace:

  1. Entre em Snowsight.

  2. Navegue até Data Products » Provider Studio.

  3. Selecione Listings.

  4. Localize a listagem que você deseja modificar e selecione a linha para abrir os detalhes da listagem.

  5. Na página de detalhes da listagem, selecione Settings.

  6. Na seção Privileges, selecione o ícone do lápis ao lado do privilégio Modify Listing.

  7. Selecione Add Role e adicione as funções necessárias.

  8. Salve suas alterações.

Para conceder o privilégio OWNERSHIP para uma listagem em uma troca de dados:

  1. Entre em Snowsight.

  2. Navegue até Data Products » Private Sharing.

  3. Selecione Shared By My Account.

  4. Localize a listagem que você deseja modificar e selecione a linha para abrir os detalhes da listagem.

  5. Na página de detalhes da listagem, selecione Settings.

  6. Na seção Privileges, selecione o ícone do lápis ao lado do privilégio Modify Listing.

  7. Selecione Add Role e adicione as funções necessárias.

  8. Salve suas alterações.

Privilégios de nível de perfil do provedor

O Snowflake oferece os seguintes privilégios para perfis de provedor. Somente a função com o privilégio OWNERSHIP no perfil do provedor pode conceder esse privilégio.

Nota

Privilégio MODIFY para um perfil de provedor

Se o privilégio MODIFY for concedido a uma função em um perfil de provedor, qualquer usuário com a função pode visualizar e modificar propriedades do perfil do provedor. Somente a função com o privilégio OWNERSHIP no perfil do provedor pode conceder esse privilégio.

O privilégio MODIFY pode ser concedido através da interface da Web ou usando SQL:

Snowsight:

Selecione Data Products » Private Sharing » Manage Exchanges » Selecione uma Exchange » Selecione um perfil de provedor » Manage » Manage Profile Editors.

SQL:

Execute o comando GRANT <privilégios> [WITH GRANT OPTION].

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

GRANT MODIFY ON DATA EXCHANGE PROFILE "<provider_profile_name>" TO ROLE myrole;
Copy

Privilégio OWNERSHIP para um perfil de provedor

Se o privilégio OWNERSHIP para um perfil de provedor for concedido a uma função, essa função se torna o novo proprietário do perfil. Somente a função com o privilégio OWNERSHIP no perfil do provedor pode conceder esse privilégio.

OWNERSHIP é um tipo especial de privilégio que só pode ser concedido de uma função para outra; ele não pode ser revogado. Para obter mais detalhes, consulte Visão geral do controle de acesso.

Para conceder o privilégio OWNERSHIP para o perfil de um provedor a uma função, use o comando GRANT <privilégios> [WITH GRANT OPTION]. Você não pode usar Snowsight para conceder este privilégio.

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

GRANT OWNERSHIP ON DATA EXCHANGE PROFILE "<provider_profile_name>" TO ROLE myrole;
Copy