Kontakte verwenden

Kontakte sind Objekte auf Schemaebene, die Details darüber enthalten, welcher Benutzende oder welche Benutzergruppe für einen bestimmten Zweck kontaktiert werden kann. Zum Beispiel kann ein Kontakt mit dem Namen data_stewards eine E-Mail-Verteilerliste enthalten, während ein anderer Kontakt namens support_department die URL der Website der Abteilung enthalten kann.

Kontakte können mit anderen Objekten, wie beispielsweise Datenbanken und Tabellen, verknüpft werden, sodass die richtige Person kontaktiert werden kann, wenn Hilfe bei diesen Objekten benötigt wird. So könnte es beispielsweise einen Kontakt in einer Tabelle geben, in der die Benutzenden enthalten sind, die helfen können, Zugriff auf die Tabelle zu erhalten. Der Zweck des Kontakts ist keine Eigenschaft des Kontakts, sondern die Zuordnung zwischen einem Kontakt und einem bestimmten Objekt. So kann beispielsweise derselbe Kontakt allgemeinen Support für eine Tabelle bieten und Zugriffsgenehmigungen für eine andere 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 den Database Explorer in Snowsight verwenden, um in ihren Datenbanken, Schemas und tabellenähnlichen Objekten zu navigieren. Snowflake-Features, die Benachrichtigungen an Benutzende senden, können den mit einem Objekt verbundenen Kontakt verwenden, um mit den Benutzenden zu kommunizieren.

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 Genehmigung des Zugriffs auf das ac_sch verantwortlich ist, wurde durch einen Kontakt ersetzt, der direkt mit t1 verbunden ist. t1 erbt jedoch weiterhin den data_stewards-Kontakt aus dem Schema.

Alle Objekte erben die im Konto festgelegten Kontakte, es sei denn, diese werden durch eine Zuordnung weiter unten in der Vererbungshierarchie überschrieben.

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 an und wie der Kontakt erreicht werden kann. Dazu gehören die folgenden Kommunikationsmethoden:

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

Tipp

Es kann hilfreich sein, alle Kontakte in einem eigenen Schema zu erstellen.

Snowsight:
  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie im Navigationsmenü die Option Catalog » Database Explorer 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 aus, und geben Sie dann die E-Mail-Adresse, die Benutzenden oder die URL der Personen an, die für Unterstützung mit einem Objekt kontaktiert werden können.

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

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

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');

Einen Kontakt mit einem Objekt verknüpfen

Wenn Sie einen Kontakt mit einem Objekt verknüpfen, geben Sie den Namen des Kontakts zusammen mit dem Zweck der Zuordnung zwischen dem Kontakt und dem Objekt an. Wenn Benutzende alle mit einem Objekt verbundenen Kontakte anzeigen, können sie anhand des Zwecks jedes Kontakts entscheiden, mit wem sie kommunizieren möchten. Wenn ein Snowflake-Feature den Kontakt verwendet, um Personen zu erreichen, kann es die richtigen Kontakte anhand des Zwecks auswählen.

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

Zweck

Beschreibung

SQL-Wert

Genehmiger

Genehmigt oder lehnt Anfragen zum Zugriff auf Daten ab.

ACCESS_APPROVAL

Sicherheit und Compliance

Empfang von Sicherheits- und Compliance-Updates.

SECURITY_COMPLIANCE

Datenverwalter

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

STEWARD

Unterstützung

Bietet technische Unterstützung im Zusammenhang mit einem Datensatz.

SUPPORT

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 im Navigationsmenü die Option Catalog » Database Explorer 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> ... ]

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;

Verknüpfen Sie den Kontakt security_officers mit dem Konto, damit Snowflake-Features Aktualisierungen bezüglich Sicherheit und Compliance senden können:

ALTER ACCOUNT SET CONTACT SECURITY_COMPLIANCE = security_officers;

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;

Bemerkung

Wenn Sie einen Kontakt für eine bestehende Iceberg-Tabelle, eine externe Tabelle oder eine dynamische Tabelle festlegen möchten, müssen Sie den ALTER TABLE-Befehl verwenden.

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> ... ] )

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.

Der Organisationsadministrator kann beim Erstellen eines Kontos keinen Kontakt zuordnen.

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

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

Einen Kontakt von einem Objekt trennen

Snowsight:
  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie im Navigationsmenü die Option Catalog » Database Explorer 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 dem Befehl 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>

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 zu trennen, der als STEWARD einer Tabelle hinzugefügt wurde, führen Sie Folgendes aus:

ALTER TABLE t1 UNSET CONTACT STEWARD;

Bemerkung

Wenn Sie einen Kontakt für eine bestehende Iceberg-Tabelle, eine externe Tabelle oder eine dynamische Tabelle zurücksetzen möchten, müssen Sie den ALTER TABLE-Befehl verwenden.

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'));

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. Wählen Sie im Navigationsmenü die Option Catalog » Database Explorer aus, und wählen Sie dann das Schema aus.

  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