Uso de contatos

Os contatos são objetos no nível do esquema que contêm detalhes sobre como se comunicar com um usuário ou grupo de usuários. Por exemplo, um contato chamado data_stewards pode incluir uma lista de distribuição de e-mail, enquanto outro chamado support_department pode incluir o URL do site do departamento.

Os contatos podem ser associados a outros objetos, como bancos de dados e tabelas, para que os usuários saibam com quem entrar em contato para obter assistência com o objeto. Por exemplo, pode haver um contato em uma tabela que descreva quem deve ser contatado para obter acesso à tabela. A finalidade do contato não é uma propriedade do contato, mas sim a associação entre um contato e um objeto específico. Por exemplo, o mesmo contato pode fornecer suporte geral a uma tabela e aprovação de acesso para outra.

Um objeto pode ter mais de um contato, desde que a finalidade de cada contato seja exclusiva para o objeto. Por exemplo, uma tabela pode ter um contato que concede acesso à tabela e outro contato que fornece suporte geral para a tabela. Quando um usuário visualiza os contatos associados a um objeto, ele vê a finalidade de cada contato juntamente com um método de comunicação, para saber com quem se comunicar por um motivo específico e como entrar em contato com ele.

Os usuários de dados veem esses contatos quando usam o menu Data no Snowsight para navegar em seus bancos de dados, esquemas e objetos semelhantes a tabelas.

Herança e substituição de contatos

Os contatos são herdados pelos objetos descendentes. Se você associar um contato a um objeto que seja pai de outro objeto, o filho, o neto e assim por diante herdarão o contato. Por exemplo, se você associar um contato a um esquema, todas as tabelas do esquema herdarão o contato por padrão.

A herança de contatos é substituída se um objeto filho tiver um contato com a mesma finalidade. Por exemplo, suponha que alguém associe os dois contatos a seguir ao esquema ac_sch, que contém a tabela t1:

Contatos

Objetivo

data_stewards

Administrador

business_unit1

Aprovador

Agora, suponha que alguém associe o contato finance_dept a t1 para fins de aprovação de acesso. Os contatos associados a t1 agora são os seguintes:

Contatos

Objetivo

data_stewards

Administrador

finance_dept

Aprovador

O contato responsável pela aprovação de acesso no ac_schema foi substituído por um contato diretamente associado à t1, mas t1 continua herdando o contato data_stewards do esquema.

Objetos com suporte

Você pode associar um contato aos seguintes objetos:

  • Banco de dados

  • Esquema

  • Tabela

  • Tabela Apache Iceberg™

  • Tabela externa

  • Tabela dinâmica

  • Tabela de eventos

  • Exibição

  • Exibição materializada

  • Tarefa (somente SQL)

Crie um contato

Ao criar um contato, você especifica o nome do contato e como alguém deve se comunicar com ele. Os métodos de comunicação incluem o seguinte:

  • O URL de um site.

  • Um endereço de e-mail, que pode ser uma lista de distribuição.

  • Uma lista de usuários Snowflake.

Você pode criar um contato usando o Snowsight ou SQL. Pode ser útil criar todos os contatos em um esquema dedicado.

Snowsight:
  1. Faça login no Snowsight.

  2. Selecione Data.

  3. Navegue até o esquema em que deseja criar o contato.

  4. Selecione Create » Contact.

  5. Especifique o nome do contato.

  6. Escolha um método de comunicação e, em seguida, especifique o endereço de e-mail, os usuários ou URL com que os usuários de dados entrarão em contato para obter assistência com um objeto.

  7. Selecione as funções que terão a capacidade de associar o contato a objetos. A essas funções é concedido o privilégio APPLY no contato.

  8. Selecione Create.

SQL:

Você pode executar o comando CREATE CONTACT para criar um novo contato.

Exemplos

Crie um contato para a equipe de suporte que possa ser acessado pelo site.

CREATE CONTACT support_dept URL = 'http://internalsupport.example.com';
Copy

Crie um contato para a equipe financeira que seja acessado por meio de um endereço de e-mail, que funciona como uma lista de distribuição.

CREATE CONTACT finance_dept EMAIL_DISTRIBUTION_LIST = 'fd_dl@example.com';
Copy

Crie um contato para administradores de banco de dados, conforme identificado pelo nome de seus objetos de usuário Snowflake.

CREATE CONTACT db_admins USERS = (ex_admin1, ex_admin2);
Copy

Associe um contato a um objeto

Ao associar um contato a um objeto, você especifica o nome do contato juntamente com a finalidade da associação entre o contato e o objeto. Quando os usuários visualizarem todos os contatos associados a um objeto, eles poderão decidir com quem se comunicar com base na finalidade de cada contato.

A finalidade de ter um contato associado a um objeto pode ser uma das seguintes:

Objetivo

Descrição

Valor SQL

Administrador

Fornecer informações sobre a precisão, a consistência e a confiabilidade dos dados.

STEWARD

Suporte

Fornecer suporte técnico relacionado a um conjunto de dados.

SUPPORT

Aprovador

Aprovar ou rejeitar solicitações de acesso a dados.

ACCCESS_APPROVAL

Você pode associar um contato e definir sua finalidade ao modificar um objeto existente ou criar um novo objeto.

Associe um contato a um objeto existente

Snowsight:
  1. Faça login no Snowsight.

  2. Selecione Data » Databases.

  3. Navegue até um dos objetos compatíveis.

  4. Selecione a guia Details.

  5. Localize a seção Assigned Contacts e selecione o ícone Edit.

  6. Selecione um contato para uma ou mais finalidades. Por exemplo, se você selecionar um contato na lista suspensa Approver, os usuários de dados entrarão em contato com esse contato quando precisarem acessar o objeto.

  7. Selecione Save.

SQL:

O comando ALTER … SET CONTACT para um objeto existente permite que você associe um contato e especifique a finalidade do contato para esse objeto. A sintaxe para associar o contato é a mesma para todos os objetos que podem ser associados a um contato:

ALTER <object_type> <object_name>
  SET CONTACT <purpose> = <contact_name> [ , <purpose> = <contact_name> ... ]
Copy

O purpose deve ser um dos propósitos predefinidos, que descrevem o relacionamento do contato com o objeto. Quando os usuários visualizam os contatos de um objeto, eles usam a finalidade para determinar com quais contatos devem se comunicar.

Exemplos

Associe o contato finance_dept a uma tabela para que os usuários saibam com quem se comunicar quando precisarem acessar a tabela:

ALTER TABLE t1 SET CONTACT ACCESS_APPROVAL = finance_dept;
Copy

Associe o contato internal_support a um banco de dados para que os usuários saibam com quem se comunicar quando precisarem de suporte geral para uma tabela no banco de dados:

ALTER DATABASE my_db SET CONTACT SUPPORT = internal_support;
Copy

Associe o contato data_stewards a um esquema para que os usuários saibam com quem se comunicar em relação à marcação de objetos das tabelas no esquema:

ALTER SCHEMA sch1 SET CONTACT STEWARD = data_stewards;
Copy

Associe um contato ao criar um novo objeto

O comando CREATE … WITH CONTACT permite que você associe um contato a um novo objeto. A sintaxe da cláusula WITH CONTACT é a mesma para todos os objetos que podem ser associados a um contato:

WITH CONTACT ( <purpose> = <contact_name> [ , <purpose> = <contact_name> ... ] )
Copy

O purpose deve ser um dos propósitos predefinidos, que descrevem o relacionamento do contato com o objeto. Quando os usuários visualizam os contatos de um objeto, eles usam a finalidade para determinar com quais contatos devem se comunicar.

Para tabelas e objetos semelhantes a tabelas, a cláusula WITH CONTACT é especificada após as definições de coluna.

Exemplos

Associe o contato finance_dept a uma nova tabela para que os usuários saibam com quem se comunicar quando precisarem acessar a tabela:

CREATE TABLE t1 (col1 VARCHAR, col2 INT) WITH CONTACT (ACCESS_APPROVAL = finance_dept);
Copy

Associe o contato internal_support a um novo banco de dados para que os usuários saibam com quem se comunicar quando precisarem de suporte geral para uma tabela no banco de dados:

CREATE DATABASE my_db WITH CONTACT (SUPPORT = internal_support);
Copy

Associe o contato data_stewards a um novo esquema para que os usuários saibam com quem se comunicar em relação à marcação de objetos das tabelas no esquema e o contato finance_dept para que os usuários saibam com quem se comunicar quando precisarem de acesso:

CREATE SCHEMA sch1 WITH CONTACT (STEWARD = data_stewards, ACCESS_APPROVAL = finance_dept);
Copy

Separe um contato de um objeto

Snowsight:
  1. Faça login no Snowsight.

  2. Selecione Data » Databases.

  3. Navegue até o objeto.

  4. Selecione a guia Details.

  5. Localize a seção Assigned Contacts e selecione o ícone Edit.

  6. Localize a finalidade (por exemplo, Approver) que tem o contato que deseja separar e use a lista suspensa para selecionar None.

  7. Selecione Save.

SQL:

Os comandos ALTER … UNSET CONTACT permitem que você separe um contato de um objeto. A sintaxe para desanexar o contato é a mesma para todos os objetos que podem ser associados a um contato:

ALTER <object_type> <object_name>
  UNSET CONTACT <purpose>
Copy

Você identifica o contato a ser desvinculado especificando a finalidade da associação entre o contato e o objeto, e não pelo nome do contato. Para obter uma lista de possíveis finalidades que podem ser especificadas para desanexar um contato, consulte propósitos predefinidos.

Por exemplo, para desanexar o contato que foi adicionado como STEWARD de uma tabela, execute:

ALTER TABLE t1 UNSET CONTACT STEWARD;
Copy

Visualize os contatos de um objeto

Snowsight:

Quando você navega para um objeto no Snowsight, os contatos associados ao objeto aparecem na guia Details.

SQL:

Os usuários com pelo menos um privilégio em um objeto podem usar a função de tabela GET_CONTACTS para visualizar os contatos associados a esse objeto. A função retorna uma linha para cada contato associado ao objeto.

Por exemplo, para listar os contatos na tabela t1, um usuário com pelo menos um privilégio pode executar o seguinte:

SELECT *
  FROM TABLE(SNOWFLAKE.CORE.GET_CONTACTS('t1', 'TABLE'));
Copy

Para cada contato, a função lista o seguinte:

  • Objetivo do contato.

  • Método de comunicação para o contato.

  • Se o contato foi associado ao objeto diretamente ou herdado de um objeto pai.

Contatos governamentais e suas associações

Snowsight:

Para listar os contatos que foram criados em um esquema e detalhar as informações de um contato específico:

  1. Faça login no Snowsight.

  2. Use o menu Data » Databases para navegar até o esquema.

  3. Selecione a guia Contacts.

  4. Selecione um contato se quiser ver os detalhes sobre ele, inclusive os objetos aos quais ele está associado.

SQL:

O esquema ACCOUNT_USAGE oferece as seguintes exibições para ajudar a gerenciar os contatos:

Privilégios de controle de acesso

A seguir, um resumo dos privilégios de que um usuário precisa para trabalhar com contatos.

Tarefa

Privilégios obrigatórios

Crie um contato

Ambos os seguintes:

  • CREATECONTACT no esquema

  • USAGE no esquema e no banco de dados

Associe um contato a um objeto

Uma das seguintes opções:

  • APPLY CONTACT na conta

  • Privilégio APPLY no contato e OWNERSHIP no objeto

Liste os contatos de um objeto

Qualquer privilégio no objeto.

Separe um contato de um objeto

Uma das seguintes opções:

  • APPLY CONTACT na conta

  • Privilégio APPLY no contato e OWNERSHIP no objeto

Modifique um contato existente

Uma das seguintes opções:

  • OWNERSHIP no contato

  • MODIFY no contato

Remova um contato

OWNERSHIP no contato