Teilnehmerrollen in Collaboration Data Clean Rooms

Übersicht

Teilnehmende agieren als eine oder mehrere der folgenden Rollen für die Zusammenarbeit in einem Clean Room. In diesem Fall ist eine Rolle eine Gruppe von Berechtigungen, nicht eine RBAC-Rolle:

  • Eigentümer: Diese Person definiert, erstellt und besitzt die Zusammenarbeit und definiert, welche Teilnehmenden eingeladen werden und welche Rollen sie haben. Ein Eigentümer ist nicht automatisch ein Analyseausführer oder Datenanbieter und hat keine erhöhten Ausführungsberechtigungen. Die Hauptfähigkeiten Eigentümers bestehen darin, den Clean Room zu erstellen, Rollen zuzuweisen, zu bestimmen, wer mit wem Daten teilen darf, und den Clean Room wieder abzubauen. Eine Zusammenarbeit kann nur einer Person gehören.

  • Datenanbieter: Stellt Datenangebote, wie z. B. Tabellen und Ansichten, für eine Zusammenarbeit bereit und gibt an, welche Analyseprotokolle diese verwenden können. Das heißt, Konto A ist ein Datenanbieter für die Konten B und C, wie in der Beschreibung der Zusammenarbeit angegeben.

  • Analyseausführer: Führt zulässige Vorlagen auf zulässigen Datenangeboten aus, wie in der Zusammenarbeitsdefinition angegeben.

Eine teilnehmende Person kann mehrere Rollen bei einer Zusammenarbeit haben, und mehrere teilnehmende Personen können dieselbe Rolle bei einer Zusammenarbeit haben (mit Ausnahme der Eigentümerrolle, die nur einem Benutzenden zugewiesen ist). Der Eigentümer einer Zusammenarbeit kann zum Beispiel auch ein Datenanbieter und ein Analyseausführer sein.

Sie können Ihre verfügbaren Rollen für eine Zusammenarbeit in der ROLES-Spalte durch Aufruf von GET_STATUS sehen, wodurch Ihre Rollen in der ROLES-Spalte aufgelistet werden. Wenn Sie beispielsweise ein Datenanbieter sind und sehen möchten, für wen Sie Daten freigeben können, prüfen Sie die Spezifikation für Ihre Zusammenarbeit, um Ihre Rollendetails zu sehen. Hier sehen Sie, wie Sie die Zusammenarbeitsspezifikation in einem einzigen Aufruf anzeigen können, nachdem Sie einer Zusammenarbeit beigetreten sind:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_COLLABORATIONS() ->>
  SELECT "COLLABORATION_SPEC" FROM $1
    WHERE "SOURCE_NAME" = $collaboration_name;
Copy

Der Eigentümer gibt alle Teilnehmenden und deren Rollen an, wenn sie die Zusammenarbeit erstellen. Teilnehmende und ihre Rollen können nicht mehr geändert werden, nachdem eine Zusammenarbeit erstellt wurde. Infolgedessen sind die folgenden Rollenfeatures festgelegt, nachdem eine Zusammenarbeit erstellt wurde:

  • Der Eigentümer kann nicht geändert werden.

  • Analyseausführer können nicht hinzugefügt oder entfernt werden.

  • Die Liste der Datenanbieter für die einzelnen Analyseausführer kann nicht geändert werden. Wenn Konto A bei der Erstellung der Zusammenarbeit nicht als Datenanbieter für Konto B definiert ist, kann Konto A niemals ein Datenanbieter für Konto B sein.

Allerdings können Teilnehmende Ressourcen hinzufügen oder entfernen, nachdem eine Zusammenarbeit erstellt wurde.

Beispiel

Das folgende Beispiel zeigt eine sehr einfache Definition der Zusammenarbeit, die Rollen, aber keine Ressourcen definiert. Sie können eine Zusammenarbeit mit oder ohne Ressourcen erstellen und diese später hinzufügen oder entfernen.

api_version: 2.0.0
spec_type: collaboration
name: basic_collaboration
owner: alice
collaborator_identifier_aliases:
  alice: corp1.acct123
  bob: corp2.acctxyz
analysis_runners:
  alice:
    data_providers:
      alice:
        data_offerings: []
      bob:
        data_offerings: []
  bob:
    data_providers:
      alice:
        data_offerings: []
Copy

Die vorherige Zusammenarbeit definiert die folgenden Teilnehmenden und Rollen:

  • alice ist Eigentümer der Zusammenarbeit, Anbieter von Analysen und Datenanbieter für bob und sich selbst. alice ist der in der Zusammenarbeit für das Konto corp1.acct123 definierte Alias.

  • bob ist Analyseausführer und Datenanbieter für alice, aber nicht für sich selbst. bob ist der in der Zusammenarbeit für das Konto corp2.acctxyz definierte Alias.

Diese Rollen können nicht mehr geändert werden, und neue Teilnehmende können nicht hinzugefügt werden, nachdem die Zusammenarbeit erstellt wurde.

Datenanbieter können Datenangebote hinzufügen, nachdem eine Zusammenarbeit erstellt wurde. Jede teilnehmende Person kann Vorlagen hinzufügen, nachdem eine Zusammenarbeit erstellt wurde. Das folgende Beispiel zeigt, wie Sie die Collaboration API verwenden können, um der vorherigen Zusammenarbeit Ressourcen hinzuzufügen, nachdem sie erstellt wurde:

api_version: 2.0.0
spec_type: collaboration
name: basic_collaboration
owner: alice
collaborator_identifier_aliases:
  alice: corp1.acct123
  bob: corp2.acctxyz
analysis_runners:
  alice:
    data_providers:
      alice:
        data_offerings:
        - id: alice_data_1
        - id: alice_data_2
      bob:
        data_offerings:
        - id: bob_data_1
    templates:
    - id: template1  # Alice can run template1 using alice_data_1, alice_data_2, or bob_data_1.
  bob:
    data_providers:
      alice:
        data_offerings:
        - id: alice_data_1
    templates:
    - id: template2  # Bob can run template2 using data from alice_data_1, provided by alice.
Copy

Die geänderte Zusammenarbeit unterstützt jetzt die folgenden Ressourcen und Funktionen:

  • alice kann Analysen mit template1 mit Daten von alice_data_1, alice_data_2``und ``bob_data_1 ausführen.

  • bob kann template2 unter Verwendung von Daten von alice_data_1 ausführen.