Kontakte verwenden

Kontakte sind Objekte auf Schemaebene, die Details zur Kommunikation mit einem Benutzer oder einer Gruppe von Benutzern enthalten. Ein Kontakt mit dem Namen data_stewards könnte beispielsweise eine E-Mail-Verteilerliste umfassen, während ein anderer Kontakt mit dem Namen support_department die URL zur Website der Abteilung umfassen könnte.

Kontakte können mit anderen Objekten wie Datenbanken und Tabellen verknüpft werden, damit die Benutzer wissen, an wen sie sich wenden können, wenn sie Hilfe zu dem Objekt benötigen. Zum Beispiel könnte es einen Kontakt für eine Tabelle geben, der beschreibt, an wen Sie sich wenden müssen, um Zugang zu der Tabelle zu erhalten. Der Zweck des Kontakts ist keine Eigenschaft des Kontakts, sondern vielmehr die Zuordnung zwischen einem Kontakt und einem bestimmten Objekt. So kann ein und derselbe Kontakt beispielsweise allgemeinen Support für eine Tabelle bieten und gleichzeitig die Zugriffsgenehmigung für eine andere Tabelle erteilen.

Ein Objekt kann mehr als einen Kontakt haben, solange der Zweck eines jeden Kontakts für das Objekt eindeutig ist. Eine Tabelle kann zum Beispiel einen Kontakt haben, der den Zugriff auf die Tabelle gewährt, und einen anderen Kontakt, der allgemeinen Support für die Tabelle bietet. Wenn ein Benutzer die mit einem Objekt verbundenen Kontakte anschaut, sieht er den Zweck jedes Kontakts zusammen mit einer Kommunikationsmethode, sodass er weiß, mit wem er aus einem bestimmten Grund kommunizieren muss und wie er ihn erreichen kann.

Datenbenutzer sehen diese Kontakte, wenn sie das Menü Data in Snowsight verwenden, um in ihren Datenbanken, Schemas und tabellenähnlichen Objekten zu navigieren.

Kontakte vererben und überschreiben

Kontakte werden an nachgeordnete Objekte vererbt. Wenn Sie einen Kontakt mit einem Objekt verknüpfen, das das übergeordnete Objekt eines anderen Objekts ist, erben das untergeordnete Objekt, das darunter untergeordnete Objekt usw. den Kontakt. Wenn Sie beispielsweise einen Kontakt mit einem Schema verknüpfen, erben alle Tabellen des Schemas standardmäßig den Kontakt.

Die Kontaktvererbung wird außer Kraft gesetzt, wenn ein untergeordnetes Objekt einen Kontakt mit dem gleichen Zweck hat. Nehmen wir zum Beispiel an, dass jemand die folgenden zwei Kontakte mit dem Schema ac_sch verknüpft, das die Tabelle t1 enthält:

Kontakt

Zweck

data_stewards

Verwalter

business_unit1

Genehmiger

Nehmen wir nun an, dass jemand den Kontakt finance_dept mit t1 zum Zweck der Zugriffsgenehmigung verknüpft. Die Kontakte, die mit t1 verknüpft sind, sind nun die folgenden:

Kontakt

Zweck

data_stewards

Verwalter

finance_dept

Genehmiger

Der Kontakt, der für die Zugriffsgenehmigung für das ac_schema zuständig ist, wurde durch einen Kontakt ersetzt, der direkt mit t1 verknüpft ist, aber t1 erbt weiterhin den Kontakt data_stewards aus dem Schema.

Unterstützte Objekte

Sie können einen Kontakt mit den folgenden Objekten verknüpfen:

  • Datenbank

  • Schema

  • Tabelle

  • Apache Iceberg™-Tabelle

  • Externe Tabelle

  • Dynamische Tabelle

  • Ereignistabelle

  • Ansicht

  • Materialisierte Ansicht

  • Aufgabe (nur SQL)

Einen Kontakt erstellen

Wenn Sie einen Kontakt erstellen, geben Sie den Namen des Kontakts und die Art und Weise an, wie jemand mit diesem Kontakt kommunizieren soll. Zu den Kommunikationsmethoden gehören die folgenden:

  • Die URL einer Website.

  • Eine E-Mail-Adresse, die eine Verteilerliste sein kann.

  • Eine Liste von Snowflake-Benutzern.

Sie können einen Kontakt mit Snowsight oder SQL erstellen. Es kann hilfreich sein, alle Kontakte in einem eigenen Schema zu erstellen.

Snowsight:
  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie Data aus.

  3. Navigieren Sie zu dem Schema, in dem Sie den Kontakt erstellen möchten.

  4. Wählen Sie Create » Contact aus.

  5. Geben Sie den Namen des Kontakts an.

  6. Wählen Sie eine Kommunikationsmethode und geben Sie dann die E-Mail-Adresse, die Benutzer oder URL an, an die sich die Datenbenutzer wenden sollen, wenn sie Hilfe zu einem Objekt benötigen.

  7. Wählen Sie die Rollen aus, die den Kontakt mit Objekten verknüpfen können. Diese Rollen verfügen über die Berechtigung APPLY für den Kontakt.

  8. Wählen Sie Create aus.

SQL:

Sie können den Befehl CREATE CONTACT ausführen, um einen neuen Kontakt zu erstellen.

Beispiele

Legen Sie einen Kontakt für das Support-Team an, das über seine Website erreicht werden kann.

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

Erstellen Sie einen Kontakt für das Finanzteam, das über eine E-Mail-Adresse erreichbar ist, die als Verteilerliste dient.

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

Erstellen Sie einen Kontakt für Datenbankadministratoren, die durch den Namen ihrer Snowflake-Benutzerobjekte identifiziert werden.

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

Einen Kontakt mit einem Objekt verknüpfen

Wenn Sie einen Kontakt mit einem Objekt verknüpfen, geben Sie den Namen des Kontakts sowie den Zweck der Zuordnung zwischen dem Kontakt und dem Objekt an. Wenn Benutzer alle mit einem Objekt verknüpften Kontakte sehen, können sie entscheiden, mit wem sie auf der Grundlage des Zwecks der einzelnen Kontakte kommunizieren möchten.

Der Zweck, einen Kontakt einem Objekt zuzuordnen, kann einer der folgenden sein:

Zweck

Beschreibung

SQL-Wert

Verwalter

Bietet Informationen über die Genauigkeit, Konsistenz und Zuverlässigkeit der Daten.

STEWARD

Unterstützung

Bietet technische Unterstützung im Zusammenhang mit einem Datensatz.

SUPPORT

Genehmiger

Genehmigt oder lehnt Anfragen zum Zugriff auf Daten ab.

ACCCESS_APPROVAL

Sie können einen Kontakt verknüpfen und seinen Zweck definieren, wenn Sie ein bestehendes Objekt ändern oder ein neues Objekt erstellen.

Einen Kontakt mit einem bestehenden Objekt verknüpfen

Snowsight:
  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie Data » Databases aus.

  3. Navigieren Sie zu einem der unterstützten Objekte.

  4. Wählen Sie die Registerkarte Details aus.

  5. Suchen Sie den Abschnitt Assigned Contacts und wählen Sie das Symbol Edit.

  6. Wählen Sie einen Kontakt für einen oder mehrere der Zwecke aus. Wenn Sie z. B. einen Kontakt aus der Dropdown-Liste Approver auswählen, wenden sich die Benutzer der Daten an diesen Kontakt, wenn sie Zugriff auf das Objekt benötigen.

  7. Wählen Sie Save aus.

SQL:

Mit dem Befehl ALTER … SET CONTACT für ein bestehendes Objekt können Sie einen Kontakt zuordnen und den Zweck des Kontakts für dieses Objekt angeben. Die Syntax zum Zuordnen des Kontakts ist für alle Objekte, die mit einem Kontakt verknüpft werden können, gleich:

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

Bei purpose muss es sich um einen der vordefinierten Zwecke handeln, die die Beziehung des Kontakts zu dem Objekt beschreiben. Wenn Benutzer die Kontakte eines Objekts ansehen, verwenden sie den Zweck, um zu bestimmen, mit welchem der Kontakte sie kommunizieren möchten.

Beispiele

Verknüpfen Sie den Kontakt finance_dept mit einer Tabelle, damit die Benutzer wissen, mit wem sie kommunizieren müssen, wenn sie Zugriff auf die Tabelle benötigen:

ALTER TABLE t1 SET CONTACT ACCESS_APPROVAL = finance_dept;
Copy

Verknüpfen Sie den Kontakt internal_support mit einer Datenbank, damit die Benutzer wissen, an wen sie sich wenden müssen, wenn sie allgemeine Unterstützung für eine Tabelle in der Datenbank benötigen:

ALTER DATABASE my_db SET CONTACT SUPPORT = internal_support;
Copy

Verknüpfen Sie den Kontakt data_stewards mit einem Schema, damit die Benutzer wissen, an wen sie sich wenden müssen, wenn es um die Objektkennzeichnung von Tabellen im Schema geht:

ALTER SCHEMA sch1 SET CONTACT STEWARD = data_stewards;
Copy

Bei der Erstellung eines neuen Objekts einen Kontakt zuordnen

Mit dem Befehl CREATE … WITH CONTACT können Sie einen Kontakt einem neuen Objekt zuordnen. Die Syntax für die WITH CONTACT-Klausel ist für alle Objekte, die einem Kontakt zugeordnet werden können, gleich:

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

Bei purpose muss es sich um einen der vordefinierten Zwecke handeln, die die Beziehung des Kontakts zu dem Objekt beschreiben. Wenn Benutzer die Kontakte eines Objekts ansehen, verwenden sie den Zweck, um zu bestimmen, mit welchem der Kontakte sie kommunizieren möchten.

Bei Tabellen und tabellenähnlichen Objekten wird die WITH CONTACT-Klausel nach den Spaltendefinitionen angegeben.

Beispiele

Verknüpfen Sie den Kontakt finance_dept mit einer neuen Tabelle, damit die Benutzer wissen, mit wem sie kommunizieren müssen, wenn sie Zugriff auf die Tabelle benötigen:

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

Verknüpfen Sie den Kontakt internal_support mit einer neuen Datenbank, damit die Benutzer wissen, an wen sie sich wenden müssen, wenn sie allgemeine Unterstützung für eine Tabelle in der Datenbank benötigen:

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

Verknüpfen Sie den Kontakt data_stewards mit einem neuen Schema, damit die Benutzer wissen, mit wem sie in Bezug auf die Objektkennzeichnung von Tabellen im Schema kommunizieren müssen, und mit dem Kontakt finance_dept, damit die Benutzer wissen, mit wem sie kommunizieren müssen, wenn sie Zugriff benötigen:

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

Einen Kontakt von einem Objekt trennen

Snowsight:
  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie Data » Databases aus.

  3. Navigieren Sie zu dem Objekt.

  4. Wählen Sie die Registerkarte Details aus.

  5. Suchen Sie den Abschnitt Assigned Contacts und wählen Sie das Symbol Edit.

  6. Suchen Sie den Zweck (z. B. Approver), zu dem der Kontakt gehört, den Sie trennen möchten, und wählen Sie aus der Dropdown-Liste None.

  7. Wählen Sie Save aus.

SQL:

Mit den Befehlen ALTER … UNSET CONTACT können Sie einen Kontakt von einem Objekt trennen. Die Syntax zum Trennen des Kontakts ist für alle Objekte, die mit einem Kontakt verknüpft werden können, gleich:

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

Sie identifizieren den zu trennenden Kontakt durch die Angabe des Zwecks der Zuordnung zwischen dem Kontakt und dem Objekt, nicht durch den Kontaktnamen. Eine Liste der möglichen Zwecke, die zum Trennen eines Kontakts angegeben werden können, finden Sie unter vordefinierte Zwecke.

Um zum Beispiel den Kontakt, der als STEWARD einer Tabelle hinzugefügt wurde, zu trennen, führen Sie Folgendes aus:

ALTER TABLE t1 UNSET CONTACT STEWARD;
Copy

Kontakte für ein Objekt anzeigen

Snowsight:

Wenn Sie in Snowsight zu einem Objekt navigieren, erscheinen die Kontakte, die mit dem Objekt verbunden sind, auf der Registerkarte Details.

SQL:

Benutzer mit mindestens einer Berechtigung für ein Objekt können die Tabellenfunktion GET_CONTACTS verwenden, um die mit diesem Objekt verbundenen Kontakte anzuzeigen. Die Funktion gibt eine Zeile für jeden mit dem Objekt verbundenen Kontakt zurück.

Um zum Beispiel die Kontakte in der Tabelle t1 aufzulisten, kann ein Benutzer mit mindestens einer Berechtigung Folgendes ausführen:

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

Für jeden Kontakt listet die Funktion die folgenden Informationen auf:

  • Zweck des Kontakts.

  • Art der Kommunikation mit dem Kontakt.

  • Ob der Kontakt direkt mit dem Objekt verknüpft war oder von einem übergeordneten Objekt geerbt wurde.

Kontakte und ihre Zuordnungen regeln

Snowsight:

So listen Sie die Kontakte auf, die in einem Schema erstellt wurden, und schlüsseln die Details zu einem bestimmten Kontakt auf:

  1. Melden Sie sich bei Snowsight an.

  2. Verwenden Sie das Menü Data » Databases, um zum Schema zu navigieren.

  3. Wählen Sie die Registerkarte Contacts aus.

  4. Wählen Sie einen Kontakt aus, wenn Sie Details zu ihm anzeigen möchten, einschließlich der Objekte, mit denen er verknüpft ist.

SQL:

Das Schema ACCOUNT_USAGE bietet die folgenden Ansichten, um die Verwaltung von Kontakten zu erleichtern:

Zugriffssteuerungsrechte

Im Folgenden finden Sie eine Zusammenfassung der Berechtigungen, die ein Benutzer für die Arbeit mit Kontakten benötigt.

Aufgabe

Erforderliche Berechtigungen

Einen Kontakt erstellen

Die beiden Folgenden:

  • CREATE CONTACT für das Schema

  • USAGE für das Schema und die Datenbank

Einen Kontakt mit einem Objekt verknüpfen

Eine der folgenden Möglichkeiten:

  • APPLY CONTACT für das Konto

  • APPLY-Berechtigung für den Kontakt und OWNERSHIP für das Objekt

Kontakte für ein Objekt auflisten

Jede Berechtigung für das Objekt.

Einen Kontakt von einem Objekt trennen

Eine der folgenden Möglichkeiten:

  • APPLY CONTACT für das Konto

  • APPLY-Berechtigung für den Kontakt und OWNERSHIP für das Objekt

Einen bestehenden Kontakt ändern

Eine der folgenden Möglichkeiten:

  • OWNERSHIP für den Kontakt

  • MODIFY für den Kontakt

Einen Kontakt löschen

OWNERSHIP für den Kontakt