CREATE JOIN POLICY

Erstellt eine neue Verknüpfungsrichtlinie im aktuellen/angegebenen Schema oder ersetzt eine vorhandene Verknüpfungsrichtlinie.

Nachdem Sie eine Verknüpfungsrichtlinie erstellt haben, weisen Sie die Richtlinie mit dem Befehl ALTER TABLE einer Tabelle oder mit dem Befehl ALTER VIEW einer Ansicht zu. Alternativ können Sie einer Tabelle bei ihrer Erstellung auch eine Verknüpfungsrichtlinie zuweisen.

Siehe auch:

DDL-Referenz für Verknüpfungsrichtlinien

Syntax

CREATE [ OR REPLACE ] JOIN POLICY [ IF NOT EXISTS ] <name>
  AS () RETURNS JOIN_CONSTRAINT -> <body>
  [ COMMENT = '<string_literal>' ]
Copy

Parameter

name

Bezeichner für die Verknüpfungsrichtlinie; muss für Ihr Schema eindeutig sein.

Darüber hinaus muss der Bezeichner mit einem Buchstaben beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.

AS () RETURNS JOIN_CONSTRAINT

Signatur und Rückgabetyp der Police. Die Signatur akzeptiert keine Argumente, und der Rückgabetyp ist der interne Datentyp JOIN_CONSTRAINT. Alle Verknüpfungsrichtlinien haben die gleiche Signatur und den gleichen Rückgabetyp.

body

SQL-Ausdruck, der die Einschränkungen einer Verknüpfungsrichtlinie bestimmt.

Um den Hauptteil (Body) der Verknüpfungsrichtlinie zu definieren, rufen Sie die Funktion JOIN_CONSTRAINT auf, die TRUE oder FALSE zurückgibt. Wenn die Funktion TRUE zurückgibt, müssen Abfragen eine Verknüpfung verwenden, um Ergebnisse zu liefern.

Die Syntax der JOIN_CONSTRAINT-Funktion lautet:

JOIN_CONSTRAINT (
  { JOIN_REQUIRED => <boolean_expression> }
  )
Copy

Wobei:

JOIN_REQUIRED => boolean_expression

Gibt an, ob eine Verknüpfung in Abfragen erforderlich ist, wenn Daten aus Tabellen oder Ansichten ausgewählt werden, denen die Verknüpfungsrichtlinie zugewiesen ist.

Der Hauptteil (body) einer Richtlinie kann nicht auf benutzerdefinierte Funktionen, Tabellen oder Ansichten verweisen.

Erlaubte Verknüpfungspalten werden in der Anweisung CREATE oder ALTER für die Tabelle oder die Ansicht angegeben, auf die die Richtlinie angewendet wird, nicht in der Anweisung CREATE JOIN POLICY.

COMMENT = 'string_literal'

Fügt einen Kommentar hinzu oder überschreibt einen vorhandenen Kommentar für die Verknüpfungsrichtlinie.

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieser Operation verwendet wird, muss mindestens die folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

CREATE JOIN POLICY

Schema

USAGE-Berechtigung für die übergeordnete Datenbank und das Schema ist erforderlich, um Operationen an einem beliebigen Objekt in einem Schema durchzuführen.

Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.

Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.

Weitere Informationen über die Verknüpfungsrichtlinien-DDL und Berechtigungen finden Sie unter Verwalten von Verknüpfungsrichtlinien.

Nutzungshinweise

  • Wenn Sie eine bestehende Verknüpfungsrichtlinie aktualisieren möchten und den aktuellen Hauptteil (Body) der Richtlinie anzeigen müssen, führen Sie den Befehl DESCRIBE JOIN POLICY oder die Funktion GET_DDL aus.

  • Metadaten:

    Achtung

    Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.

Beispiele

Erstellen Sie eine Verknüpfungsrichtlinie, die verlangt, dass Abfragen eine Verknüpfung enthalten (wenn die Richtlinie auf Tabellen und Ansichten angewendet wird, die in diesen Abfragen erscheinen):

CREATE JOIN POLICY jp1 AS ()
  RETURNS JOIN_CONSTRAINT -> JOIN_CONSTRAINT(JOIN_REQUIRED => TRUE);
Copy

Erstellen Sie eine Verknüpfungsrichtlinie, die es einem Benutzer mit der Rolle ACCOUNTADMIN erlaubt, Abfragen ohne Verknüpfungen durchzuführen; andere Benutzer müssen Verknüpfungsabfragen durchführen:

CREATE JOIN POLICY jp2 AS ()
  RETURNS JOIN_CONSTRAINT ->
    CASE
      WHEN CURRENT_ROLE() = 'ACCOUNTADMIN'
        THEN JOIN_CONSTRAINT(JOIN_REQUIRED => FALSE)
      ELSE JOIN_CONSTRAINT(JOIN_REQUIRED => TRUE)
    END;
Copy