Snowflake Data Clean Rooms Collaboration-API

Einführung

Dies ist die Referenzseite für die Snowflake Data Clean Rooms Collaboration-API. Diese API verwendet die COLLABORATION- und REGISTRY-Namespaces, nicht die PROVIDER- oder CONSUMER-Namespaces, die von den Anbieter- und Verbraucher-APIs verwendet werden.

Bemerkung

Sie sollten Sekundärrollen in Ihrer Umgebung deaktivieren, wenn Sie die Collaboration-API verwenden:

USE SECONDARY ROLES NONE;
Copy

Verwalten des Zugriffs auf die DCR Collaboration-API

Mitarbeiter können die allgemeine Rolle SAMOOHA_APP_ROLE verwenden, um alle aufzurufen DCR Collaboration-API-Prozeduren aufzurufen.

Wir empfehlen jedoch, dass Administratoren je nach Bedarf einen detaillierteren Zugriff für bestimmte Collaborations oder bestimmte Rollen gewähren. Die detaillierteren Berechtigungen finden Sie unter Prozeduren für die Zugriffsverwaltung.

Um einem Benutzer detaillierte API-Berechtigungen zu erteilen, führen Sie die folgenden Schritte aus:

  1. Erstellen Sie eine Rolle.

  2. Erteilen Sie der Rolle die Nutzungsberechtigung für das verwendete Warehouse.

  3. Rufen Sie bei Bedarf GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE auf, um einer Rolle die entsprechenden Berechtigungen für eine bestimmte Collaboration zu erteilen.

  4. Rufen Sie bei Bedarf GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE auf, um der Rolle entsprechende Berechtigungen für alle Collaborations im Konto zu erteilen.

  5. Weisen Sie dem Benutzer die Rolle zu, der nun Collaboration-Prozeduren aufrufen kann, um an der Zusammenarbeit teilnehmen zu können.

Beispiel

Hier ist ein Beispiel für die Erstellung von zwei Collaboration-API-Rollen: eine Rolle, die Collaborations erstellen und verknüpfen kann, und eine andere Rolle, die Ressourcen in einer Collaboration anzeigen und Analysen in einer Collaboration durchführen kann (aber nicht einer Collaboration beitreten oder sie ändern kann).

-- Create a role that can create and join collaborations.
USE ROLE ACCOUNTADMIN;
CREATE ROLE COLLABORATION_CREATOR_ROLE;
GRANT USAGE ON WAREHOUSE APP_WH TO COLLABORATION_CREATOR_ROLE;
GRANT APPLY ROW ACCESS POLICY ON ACCOUNT TO ROLE COLLABORATION_CREATOR_ROLE;
GRANT CREATE APPLICATION ON ACCOUNT TO ROLE COLLABORATION_CREATOR_ROLE;
GRANT CREATE DATABASE ON ACCOUNT TO ROLE COLLABORATION_CREATOR_ROLE;
GRANT CREATE LISTING ON ACCOUNT TO ROLE COLLABORATION_CREATOR_ROLE;
GRANT CREATE SHARE ON ACCOUNT TO ROLE COLLABORATION_CREATOR_ROLE;
GRANT IMPORT SHARE ON ACCOUNT TO ROLE COLLABORATION_CREATOR_ROLE;
GRANT MANAGE SHARE TARGET ON ACCOUNT TO ROLE COLLABORATION_CREATOR_ROLE;
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'COLLABORATION_CREATOR_ROLE');
GRANT ROLE COLLABORATION_CREATOR_ROLE TO USER george_washington;

-- Create a role that can run analyses on a specific collaboration.
USE ROLE COLLABORATION_CREATOR_ROLE;
CREATE ROLE ANALYST_ROLE;

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE(
  'RUN',
  'COLLABORATION',
  $collaboration_name,
  'ANALYST_ROLE'
);

-- Also grant READ, which gives permission to read the resources available to use in a collaboration.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE(
  'READ',
  'COLLABORATION',
  $collaboration_name,
  'ANALYST_ROLE'
);

GRANT ROLE ANALYST_ROLE to USER alexander_hamilton;
Copy

Metadaten-Merkblatt

Hier finden Sie einige häufig gesuchte Informationen über Collaborations:

Um dies zu erfahren …

Rufen Sie dies auf

Welchen Collaborations kann ich beitreten?

VIEW_COLLABORATIONS. Suchen Sie nach Collaborations, bei denen die Spalte COLLABORATION_NAME gleich NULL ist.

Welchen Collaborations bin ich beigetreten?

VIEW_COLLABORATIONS. Suchen Sie nach Collaborations, bei denen die COLLABORATION_NAME-Spalte nicht NULL ist, was bedeuten kann, dass Sie die Collaboration entweder erstellt haben oder ihr beigetreten sind.

Welche Collaborations gehören mir?

VIEW_COLLABORATIONS. Suchen Sie in der Spalte OWNER_ACCOUNT.

Wie ist der Status aller Teilnehmer einer Collaboration?

GET_STATUS

Wie ist der Verknüpfungs- oder Erstellungsstatus einer Collaboration?

GET_STATUS oder VIEW_COLLABORATIONS

Wem gehört eine bestimmte Collaboration?

GET_STATUS. Suchen Sie nach OWNER in der Spalte ROLES.

Was ist meine Rolle in einer bestimmten Collaboration?

GET_STATUS. Suchen Sie in der Spalte ROLES.

Welche Rollen werden in einer bestimmten Collaboration zugewiesen?

GET_STATUS. Suchen Sie in der Spalte ROLES.

Was ist die Spezifikation einer bestimmten Collaboration?

VIEW_COLLABORATIONS. Suchen Sie in der Spalte COLLABORATION_SPEC.

Ist die Spezifikation auf dem neuesten Stand?

Es gibt keine Möglichkeit, um festzustellen, ob für eine bestimmte Spezifikation Änderungen vorgenommen wurden, aber Sie können VIEW_COLLABORATIONS aufrufen, um zu sehen, wann die letzten Aktualisierungen angewendet wurden.

Welche ausstehenden Aktualisierungsanfragen habe ich?

VIEW_UPDATE_REQUESTS. Suchen Sie nach Zeilen mit STATUS = PENDING.

Zeige mir die Spezifikation für eine bestimmte Collaboration

REVIEW gibt die Collaboration-Spezifikation zurück. Wenn Sie bereits REVIEW aufgerufen haben oder der Collaboration beigetreten sind, rufen Sie den folgenden SQL-Befehl mit Ihrem Collaboration-Namen wie angegeben auf:

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

Vorlagenprozeduren

REGISTER_TEMPLATE

Schema:

REGISTRY

Registriert eine Vorlage, damit sie in einer Collaboration verwendet werden kann. Jede registrierte Vorlage muss einen eindeutigen Namen + Version für alle Vorlagen in allen Registrys in Ihrem Konto haben.

Syntax

REGISTER_TEMPLATE( ['<registry_name>' ,] <template_spec> )
Copy

Argumente

registry_name (Optional)

Name einer kundenspezifischen Registry, in der diese Vorlage registriert werden soll. Wenn nicht angegeben, wird die Vorlage in der standardmäßigen Konto-Registry registriert.

template_spec

Vorlagendefinition im YAML-Format als Zeichenfolge

Rückgabewerte

Eine Vorlagen-ID zur Verwendung in der Collaboration-Spezifikation.

Beispiele

Registrieren einer Vorlage in der Standard-Registry:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_TEMPLATE(
  $$
  api_version: 2.0.0
  spec_type: template
  name: my_test_template
  version: 2026_01_12_V1
  type: sql_analysis
  description: A test template
  template:
    SELECT * FROM IDENTIFIER({{ source_table[0] }}) LIMIT 10;
$$);
Copy

Registrieren einer Vorlage in einer kundenspezifischen Registry:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_TEMPLATE(
  'my_custom_registry',
  $$
  api_version: 2.0.0
  spec_type: template
  name: my_test_template
  version: 2026_01_12_V1
  type: sql_analysis
  description: A test template
  template:
    SELECT * FROM IDENTIFIER({{ source_table[0] }}) LIMIT 10;
$$);
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie die folgenden Prozeduren aufrufen:

So registrieren Sie Objekte in der Standard-Registry:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('REGISTER TEMPLATE', 'role name')

So registrieren Sie Elemente in einer kundenspezifischen Registry:

  • Sie haben Lese- und Schreibberechtigungen für jede kundenspezifische Registry, die Sie selbst erstellt haben.

  • Um auf eine von einem anderen Benutzenden erstellte kundenspezifische Registry zuzugreifen, benötigen Sie GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('REGISTER', 'REGISTRY', 'MY_REGISTRY', 'role name').


VIEW_REGISTERED_TEMPLATES

Schema:

REGISTRY

Listet alle Vorlagen auf, die Sie registriert haben. Um eine Vorlage zu registrieren, rufen Sie REGISTRY.REGISTER_TEMPLATE auf.

Syntax

VIEW_REGISTERED_TEMPLATES( [ '<registry_name>' ] )
Copy

Argumente

registry_name (Optional)

Name einer kundenspezifische Registry zum Auflisten von Vorlagen. Wenn nicht angegeben, werden Vorlagen aus der Standardkonto-Registry aufgelistet.

Rückgabewerte

Eine Tabelle, die die Details aller Vorlagen auflistet, die Sie in diesem Konto registriert haben.

Beispiel

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.VIEW_REGISTERED_TEMPLATES();
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie eine der folgenden Prozeduren aufrufen.

So zeigen Sie Elemente in der Standard-Registry an:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW REGISTERED TEMPLATES', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

So zeigen Sie Elemente in einer kundenspezifischen Registry an:

  • Sie haben Lese- und Schreibberechtigungen für jede kundenspezifische Registry, die Sie selbst erstellt haben.

  • Um auf eine von einem anderen Benutzenden erstellte kundenspezifische Registry zuzugreifen, benötigen Sie GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'REGISTRY', 'MY_REGISTRY', 'role name').


ADD_TEMPLATE_REQUEST

Schema:

COLLABORATION

Sendet eine Anfrage zum Hinzufügen einer Vorlage zu einer vorhandenen Collaboration. Wenn der Absender von der Anfrage betroffen ist, genehmigt er die Anfrage automatisch. Alle anderen betroffenen Teilnehmer müssen der Anfrage zustimmen, damit die Änderung angewendet wird. Alle Teilnehmer müssen diese Prozedur aufrufen, um eine Vorlage zu einer vorhandenen Collaboration hinzuzufügen, auch der Eigentümer der Collaboration.

Um weitere Vorlagenutzer hinzuzufügen, können Sie diese Prozedur mit deren Aliassen erneut aufrufen. Bei jedem Aufruf werden die in share_with aufgeführten Benutzer hinzugefügt.

Um den Status der Anfrage zu sehen, rufen Sie VIEW_UPDATE_REQUESTS auf.

Siehe Workflow zum Hinzufügen einer Vorlage

Syntax

ADD_TEMPLATE_REQUEST( <collaboration_name>, <template_id>, <share_with> )
Copy

Argumente

collaboration_name

Name der Collaboration, zu der die Vorlage hinzugefügt werden soll.

template_id

ID der Vorlage, die der Collaboration hinzugefügt werden soll. Registrieren Sie die Vorlage, um diesen Wert zu erhalten.

share_with

Array von Aliassen der Analyse-Runner, für die diese Vorlage freigegeben werden soll. Die hier aufgeführten Teilnehmer werden zusätzlich zu allen anderen Teilnehmern hinzugefügt, die mit dieser Vorlage verbunden sind. Alle hier aufgeführten Teilnehmer müssen Analyse-Runner sein, sonst schlägt die Prozedur fehl, ohne dass diese Vorlage für jemanden freigegeben ist.

Rückgabewerte

String-Erfolgsmeldung.

Beispiel

-- Ask to add the template only for Collaborator3 in this collaboration.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.ADD_TEMPLATE_REQUEST(
  $collaboration_name,
  $template_alias,
  ['Collaborator3']
);
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie die folgenden Prozeduren aufrufen:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • Eine der folgenden Berechtigungen:

    • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name'), zuzüglich aller zusätzlichen Berechtigungen auf Kontoebene, die der Rolle manuell erteilt werden müssen.

    • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name'), zuzüglich aller zusätzlichen Berechtigungen auf Kontoebene, die der Rolle manuell erteilt werden müssen.

  • Wenn sich die Vorlage in einer kundenspezifischen Registry befindet, müssen Sie auch über GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE( 'READ', 'registry name', 'role name') verfügen.


REMOVE_TEMPLATE

Schema:

COLLABORATION

Asynchrone Anfrage zum Entfernen einer Vorlage aus einer bestimmten Collaboration für bestimmte Teilnehmer. Nur der Teilnehmer, der die Vorlage registriert hat, kann eine Vorlage entfernen. Um eine von Ihnen registrierte Vorlage zu entfernen, ist keine Genehmigung von anderen Personen erforderlich. Wenn eine Vorlage für einen Teilnehmer entfernt wird, kann dieser Teilnehmer die Vorlage weder sehen noch anzeigen.

Syntax

REMOVE_TEMPLATE( <collaboration_name>, <template_id>, <remove_for> )
Copy

Argumente

collaboration_name

Name der Collaboration, aus der die Vorlage entfernt werden soll.

template_id

ID der Vorlage, die aus der Collaboration entfernt werden soll.

remove_for

Array von einem oder mehreren Aliassen der Analyse-Runner in dieser Collaboration, die diese Vorlage nicht mehr sehen oder verwenden können sollen.

Rückgabewerte

String-Erfolgsmeldung. Um zu sehen, ob eine Vorlage für einen Teilnehmer entfernt wurde, sehen Sie sich die Collaboration-Spezifikation an.

Beispiel

-- Prevent collaborator_1234 from using the specified template
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.REMOVE_TEMPLATE(
  $collaboration_name,
  $template_id,
  ['collaborator_1234']
);
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie die folgenden Prozeduren aufrufen:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • Eine der folgenden Berechtigungen:

    • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name'), zuzüglich aller zusätzlichen Berechtigungen auf Kontoebene, die der Rolle manuell erteilt werden müssen.

    • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name'), zuzüglich aller zusätzlichen Berechtigungen auf Kontoebene, die der Rolle manuell erteilt werden müssen.

  • Wenn sich die Vorlage in einer kundenspezifischen Registry befindet oder auf eine Codespezifikation in einer kundenspezifischen Registry verweist, müssen Sie auch über GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE( 'READ', 'registry name', 'role name') verfügen.


VIEW_TEMPLATES

Schema:

COLLABORATION

Zeigt alle Vorlagen an, die Sie ausführen können oder die Sie für die angegebene Collaboration eingereicht haben.

Syntax

VIEW_TEMPLATES( <collaboration_name> )
Copy

Argumente

collaboration_name

Name der Collaboration. Sie müssen diese Collaboration überprüfen oder ihr beitreten, bevor Sie ihre Vorlagen auflisten können.

Rückgabewerte

Eine Tabelle, die Informationen über Vorlagen auflistet, die Sie in dieser Collaboration ausführen können, einschließlich Vorlagen, die Sie registriert haben. Die Informationen enthalten die Vorlagen-ID (die zur Ausführung der Vorlage verwendet wird), Vorlagentext, Parameter, wer sie erstellt hat und wer sie ausführen kann.

Beispiel

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_TEMPLATES(
  $collaboration_name
);
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie eine der folgenden Prozeduren aufrufen:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW TEMPLATES', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


ENABLE_TEMPLATE_AUTO_APPROVAL

Schema:

COLLABORATION

Bewirkt, dass alle von anderen Teilnehmern gesendeten Anfragen zur Vorlagenaktualisierung automatisch genehmigt werden. Anfragen werden weiterhin im Anfrageprotokoll angezeigt. Dies betrifft nur Anfragen, die nach der Aktivierung der automatischen Genehmigung gesendet werden.

Syntax

ENABLE_TEMPLATE_AUTO_APPROVAL( <collaboration_name> )
Copy

Argumente

collaboration_name

Name der Collaboration.

Rückgabewerte

String-Erfolgsmeldung.

Beispiel

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.ENABLE_TEMPLATE_AUTO_APPROVAL(
  $collaboration_name
);
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie eine der folgenden Prozeduren aufrufen:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE TEMPLATE AUTO APPROVAL', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


DISABLE_TEMPLATE_AUTO_APPROVAL

Schema:

COLLABORATION

Deaktiviert die automatische Genehmigung für Anfragen zu Vorlagen, die von anderen Teilnehmern gestellt wurden. Alle zukünftigen Anfragen müssen manuell durch Aufruf von APPROVE_UPDATE_REQUEST genehmigt werden.

Syntax

DISABLE_TEMPLATE_AUTO_APPROVAL( <collaboration_name> )
Copy

Argumente

collaboration_name

Name der Collaboration.

Rückgabewerte

String-Erfolgsmeldung.

Beispiel

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.DISABLE_TEMPLATE_AUTO_APPROVAL(
  $collaboration_name
);
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie eine der folgenden Prozeduren aufrufen:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE TEMPLATE AUTO APPROVAL', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Prozeduren für Datenangebote

REGISTER_DATA_OFFERING

Schema:

REGISTRY

Registriert ein Datenangebot, sodass es zu einer Collaboration-Definition hinzugefügt werden kann. Die Registrierung eines registrierten Datenangebots kann nicht aufgehoben werden. Sie können ein bestehendes Datenangebot nicht überschreiben, aber Sie können ein neues mit demselben Namen und einer neuen Version registrieren. Beim Erstellen einer neuen Version eines Datenangebots werden keine früheren Versionen entfernt.

Jedes Datenangebot muss einen eindeutigen Namen + Version für alle Datenangebote in allen Registrys Ihres Kontos haben.

Wenn Sie diese Tabelle für andere Mitglieder der Collaboration freigeben möchten, fügen Sie die Tabelle vor dem Erstellen der Collaboration zu den Collaboration-Spezifikationen hinzu.

Sie müssen OWNERSHIP-Berechtigung für alle Daten haben, die Sie in einer Collaboration freigeben. Wenn Sie dies nicht tun, erhalten Sie beim Versuch, der Collaboration beizutreten oder das Objekt zu registrieren, den Fehler „fehlende Referenznutzungszuweisung“. Erfahren Sie, wie Sie dieses Problem beheben können.

Syntax

REGISTER_DATA_OFFERING( ['<registry_name>' ,] <data_offering_spec> )
Copy

Argumente

registry_name (Optional)

Name einer kundenspezifischen Registry, in der dieses Datenangebot registriert werden soll. Wenn nicht angegeben, wird das Datenangebot in der standardmäßigen Konto-Registry registriert.

data_offering_spec

Eine Datenangebotsdefinition im YAML-Format, das dieses Datenangebot beschreibt.

Rückgabewerte

Die Datenangebots-ID zur Verwendung in einem data_offerings.id-Feld der Collaboration.

Beispiele

Registrieren eines Datenangebots in der Standard-Registry:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_DATA_OFFERING(
    $$
    api_version: 2.0.0
    spec_type: data_offering
    version: v1
    name: customers
    datasets:
     - alias: customers_1
       data_object_fqn: SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS
       allowed_analyses: template_only
       schema_and_template_policies:
         hashed_email:
           category: join_custom
         status:
           category: passthrough
    $$
  );
Copy

Registrieren eines Datenangebots in einer kundenspezifischen Registry:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_DATA_OFFERING(
    'my_custom_registry',
    $$
    api_version: 2.0.0
    spec_type: data_offering
    version: v1
    name: customers
    datasets:
     - alias: customers_1
       data_object_fqn: SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS
       allowed_analyses: template_only
       schema_and_template_policies:
         hashed_email:
           category: join_custom
         status:
           category: passthrough
    $$
  );
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie die folgenden Prozeduren aufrufen:

Registrieren eines Datenangebots in der Standard-Registry:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('REGISTER DATA OFFERING', 'role name')

So registrieren Sie Elemente in einer kundenspezifischen Registry:

  • Sie haben Lese- und Schreibberechtigungen für jede kundenspezifische Registry, die Sie selbst erstellt haben.

  • Um auf eine von einem anderen Benutzenden erstellte kundenspezifische Registry zuzugreifen, benötigen Sie GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('REGISTER', 'REGISTRY', 'MY_REGISTRY', 'role name').






VIEW_REGISTERED_DATA_OFFERINGS

Schema:

REGISTRY

Listet alle Datenangebote auf, die Sie registriert haben. Um Datenangebote in einer von anderen hinzugefügten Collaboration anzuzeigen, rufen Sie COLLABORATION.VIEW_DATA_OFFERINGS auf.

Syntax

VIEW_REGISTERED_DATA_OFFERINGS( [ '<registry_name>' ] )
Copy

Argumente

registry_name (Optional)

Name einer kundenspezifische Registry zum Auflisten von Datenangeboten. Wenn nicht angegeben, werden Datenangebote aus der Standardkonto-Registry aufgelistet.

Rückgabewerte

Eine Tabelle, die alle Datenangebote auflistet, die Sie über dieses Konto registriert haben.

Beispiel

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.VIEW_REGISTERED_DATA_OFFERINGS();
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie eine der folgenden Prozeduren aufrufen.

So zeigen Sie Elemente in der Standard-Registry an:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW REGISTERED DATA OFFERINGS', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

So zeigen Sie Elemente in einer kundenspezifischen Registry an:

  • Sie haben Lese- und Schreibberechtigungen für jede kundenspezifische Registry, die Sie selbst erstellt haben.

  • Um auf eine von einem anderen Benutzenden erstellte kundenspezifische Registry zuzugreifen, benötigen Sie GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'REGISTRY', 'MY_REGISTRY', 'role name').


VIEW_DATA_OFFERINGS

Schema:

COLLABORATION

Listet alle Datenangebote auf, die in einer bestimmten Collaboration vorhanden sind, auf die Sie als Analyse-Runner zugreifen können oder die Sie selbst hinzugefügt haben. Um nur von Ihnen registrierte Datenangebote anzuzeigen, rufen Sie REGISTRY.VIEW_REGISTERED_DATA_OFFERINGS auf.

Sie können Datenangebote von Teilnehmer X erst sehen, nachdem X der Collaboration beigetreten ist.

Syntax

VIEW_DATA_OFFERINGS( <collaboration_name> )
Copy

Argumente

collaboration_name

Name der zu untersuchenden Collaboration.

Rückgabewerte

Informationen über alle Datenangebote in der angegebenen Collaboration. Die Tabelle enthält die folgenden Spalten:

  • FREEFORM_SQL_COLUMN_POLICIES: Ein JSON-Darstellung aller Freiform-Spaltenrichtlinien in dieser Collaboration, verschlüsselt nach Richtlinientyp.

  • FREEFORM_SQL_VIEW_NAME: Der vollqualifizierte Tabellenname, der in Freiform-SQL-Abfragen verwendet wird, wenn das Datenset Freiform-SQL-Abfragen unterstützt. Diese Zelle ist leer, wenn das Datenset keine Freiform-SQL-Abfragen bietet.

  • SHARE_WITH: Wer kann die Daten in einer Analyse verwenden. Wenn dieser Wert ``LOCAL``ist, handelt es sich um ein lokales Datenset, das für keine Teilnehmer freigegeben ist, außer für die Partei, die die Daten hostet.

  • TEMPLATE_VIEW_NAME: Der vollqualifizierte Tabellenname, der in einer Vorlage beim Aufruf von COLLABORATION.RUN verwendet wird.

Beispiel

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_DATA_OFFERINGS(
  $collaboration_name
);
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie eine der folgenden Prozeduren aufrufen:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW DATA OFFERINGS', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Prozeduren für Aktualisierungsanfragen

Diese Prozeduren werden verwendet, um Collaboration-Aktualisierungsanfragen zu verwalten, die eine Genehmigung erfordern, wie z. B. der Workflow zum Hinzufügen einer Vorlage.

VIEW_UPDATE_REQUESTS

Schema:

COLLABORATION

Zeigt alle Aktualisierungsanfragen an, die Sie in der angegebenen Collaboration erstellt haben oder die Sie genehmigen oder ablehnen können. Es kann einige Sekunden dauern, bis eine Aktualisierungsanfrage registriert wird, sodass Sie möglicherweise eine Anfrage noch nicht sehen, die Sie gerade erst gesendet haben.

Siehe Workflow zum Hinzufügen einer Vorlage

Syntax

VIEW_UPDATE_REQUESTS( <collaboration_name> )
Copy

Argumente

collaboration_name

Name der Collaboration.

Rückgabewerte

Eine Tabelle der in dieser Collaboration gesendeten Aktualisierungsanfragen. Zu diesen Informationen gehören:

  • ID: ID der Anfrage. Verwenden Sie diese, um eine Anfrage zu genehmigen oder abzulehnen.

  • TYPE: Typ der Anfrage. Die folgenden Werte werden unterstützt:

    • ‚Add Template‘ (Vorlage hinzufügen)

  • STATUS: Aktueller Status der Anfrage. Die folgenden Status können gemeldet werden:

    • REJECTED: Personen in der Collaboration haben diese Anfrage abgelehnt.

    • PENDING: Der Antrag wartet auf Ihre Genehmigung oder Ablehnung.

    • AWAITING_PARTNER_APPROVAL: Sie haben die Anfrage genehmigt, aber die Anfrage muss noch von einem oder mehreren anderen Teilnehmern genehmigt werden.

    • APPROVED: Alle erforderlichen Genehmiger haben die Anfrage genehmigt, und die Änderung wurde auf die Collaboration angewendet.

  • APPROVAL_LOG: Protokoll aller Genehmigungen und Ablehnungen der Anfrage. Wenn der Antrag abgelehnt wurde, wird hier auch der Grund angegeben, den die ablehnende Seite angegeben hat.

  • DETAILS: Details, die für den Anfragetyp spezifisch sind, wie z. B. der Name der Vorlage, die Beschreibung und die Personen, für die sie bei einer Anfrage vom Typ „Vorlage hinzufügen“ freigegeben wird.

  • SPEC: Die Details der Ressource, die aktualisiert wird, wie z. B. die Spezifikation der Vorlage für eine ‚Add Template‘-Anfrage.

  • UPDATED_ON: Der Zeitstempel, wann die letzte Aktion für diese Anfrage durchgeführt wurde (z. B. eine Genehmigung oder Ablehnung).

Beispiel

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_UPDATE_REQUESTS(
  $collaboration_name
);
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie eine der folgenden Prozeduren aufrufen:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


APPROVE_UPDATE_REQUEST

Schema:

COLLABORATION

Genehmigt eine Collaboration-Aktualisierungsanfrage. Zeigen Sie Ihre Liste der ausstehenden Anfragen an, indem Sie VIEW_UPDATE_REQUESTS aufrufen. Sobald Sie eine Anfrage genehmigt haben, können Sie diese später nicht mehr ablehnen.

Alle betroffenen Teilnehmer müssen einer Anfrage zustimmen, bevor die Änderung tatsächlich auf die Collaboration angewendet wird.

Siehe Workflow zum Hinzufügen einer Vorlage

Syntax

APPROVE_UPDATE_REQUEST( <collaboration_name>, <request_id> )
Copy

Argumente

collaboration_name

Name der Collaboration.

request_id

ID der Anfrage.

Rückgabewerte

String-Erfolgsmeldung.

Beispiel

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.APPROVE_UPDATE_REQUEST(
  $collaboration_name,
  $request_id
);
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie eine der folgenden Prozeduren aufrufen:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE UPDATE REQUEST', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


REJECT_UPDATE_REQUEST

Schema:

COLLABORATION

Lehnt eine Aktualisierungsanfrage für die Collaboration ab. Eine einzelne Ablehnung verhindert, dass die Änderung auf die Collaboration angewendet wird. Sie können eine Anfrage nicht genehmigen, nachdem Sie sie abgelehnt haben.

Syntax

REJECT_UPDATE_REQUEST( <collaboration_name>, <request_id>, <reason> )
Copy

Argumente

collaboration_name

Name der Collaboration.

request_id

ID der Anfrage.

reason

Eine von Menschen lesbare Beschreibung, warum die Anfrage abgelehnt wurde. Das Argument ist erforderlich, aber Sie können eine leere Zeichenfolge übermitteln.

Rückgabewerte

String-Erfolgsmeldung.

Beispiel

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.REJECT_UPDATE_REQUEST(
  $collaboration_name,
  'request_1324f934457',
  'Needs more cowbell'
);
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie eine der folgenden Prozeduren aufrufen:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('MANAGE UPDATE REQUEST', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('UPDATE', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Prozeduren für das Collaboration-Management

INITIALIZE

Schema:

COLLABORATION

Der Eigentümer ruft dies auf, um eine Collaboration zu erstellen und optional der Collaboration beizutreten.

Einreichen einer Definition für die Collaboration mit demselben Wert für name, da eine bestehende Collaboration einen Fehler auslöst.

Es nimmt einige Zeit in Anspruch, eine Collaboration zu erstellen und ihr beizutreten, also müssen Sie GET_STATUS aufrufen, um zu erfahren, ob die Collaboration erstellt wurde.

Nachdem die Collaboration erstellt wurde, können alle aufgelisteten Teilnehmer diese bei Aufruf von VIEW_COLLABORATIONS sehen und können sie überprüfen und ihr beitreten.

Syntax

INITIALIZE( <collaboration_spec> [, '<auto_join_warehouse>'] )
Copy

Argumente

collaboration_spec

Definition der Collaboration im YAML-Format als Zeichenfolge.

auto_join_warehouse (Optional)

Zeichenfolge, die einen Warehouse-Namen als gültigen Snowflake-Bezeichner angibt. Falls angegeben, erfolgt das Erstellen der Collaboration sowie der Beitritt zu ihr mit diesem Warehouse. Wenn nicht angegeben, wird das aktuelle Warehouse für die Erstellung der Collaboration verwendet, und Sie müssen JOIN aufrufen, um der Collaboration beizutreten. Es wird ein Warehouse der Größe XS empfohlen.

Rückgabewerte

Eine Tabelle mit den folgenden Spalten:

  • COLLABORATION_NAME: Der Name der Collaboration. Verwenden Sie dies in allen Prozeduren, in denen Sie eine Collaboration angeben müssen.

  • MESSAGE: Informationen zur Initialisierungsanforderung.

Beispiele

Im folgenden Beispiel wird eine Collaboration erstellt, bei der Alice die Eigentümerin ist und eine Analyse mit den von Bob bereitgestellten Daten durchführen kann.

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.INITIALIZE(
  $$
  api_version: 2.0.0
  spec_type: collaboration
  name: basic_collaboration
  owner: alice
  collaborator_identifier_aliases:
    alice: corp_id.account_id
    bob: corp2_id.account2_id
  analysis_runners:
    alice:
      data_providers:
        bob:
          data_offerings:
          - id: bob_data_v1
      templates:
      - id: alice_test_template_2026_01_12_V1
  $$,
  'APP_WH'
);
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie die folgende Prozedur aufrufen:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

    Bei Bereitstellung des``auto-join-warehouse``-Parameters und Verwendung einer anderen Rolle als SAMOOHA_APP_ROLE, muss der Rolle auch die EXECUTE TASK-Berechtigung auf Kontoebene gewährt werden.

Siehe GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE für zusätzliche erforderliche Rollenberechtigungen.


TEARDOWN

Schema:

COLLABORATION

Wird vom Eigentümer aufgerufen, um eine Collaboration für alle Parteien zu löschen.

Sie müssen diese Prozedur zweimal aufrufen. Rufen Sie sie einmal auf, und rufen Sie dann GET_STATUS auf, bis LOCAL_DROP_PENDING zurückgegeben wird. Dann rufen Sie diese Prozedur erneut auf.

Bemerkung

Diese Prozedur kann nur für eine Collaboration aufgerufen werden, die Sie erstellt haben und der Sie beigetreten sind. Wenn Sie die Collaboration erstellt haben, aber noch nicht beigetreten sind, müssen Sie ihr beitreten, bevor Sie sie verwerfen können.

Syntax

TEARDOWN( <collaboration_name> )
Copy

Argumente

collaboration_name

Name der zu löschenden Collaboration.

Rückgabewerte

String-Erfolgsmeldung.

Beispiel

-- Start the process.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.TEARDOWN($collaboration_name);

-- Call until it returns LOCAL_DROP_PENDING.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_STATUS($collaboration_name);

-- Final call.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.TEARDOWN($collaboration_name);
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie eine der folgenden Prozeduren aufrufen:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Siehe GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE für zusätzliche erforderliche Rollenberechtigungen.


GET_STATUS

Schema:

COLLABORATION

Zeigt Informationen über alle Teilnehmer einer bestimmten Collaboration an.

Wenn Sie eine asynchrone Operation ausführen, wie z. B. das Erstellen oder Beitreten zu einer Collaboration, müssen Sie den Status überprüfen, um zu wissen, wann die letzte Operation abgeschlossen wurde, bevor Sie weitere Aktionen für diese Collaboration durchführen können, wie z. B. das Ausführen von Analysen. Diese Prozedur kann von jedem Teilnehmer aufgerufen werden, der zu einer Collaboration eingeladen wird.

Collaboration-Eigentümer sehen den folgenden Statuspfad:

  • CREATING » CREATED » INSTALLING » IN_REVIEW (oder INSTALLATION_FAILED) » JOINING » JOINED (oder JOIN_FAILED)

Nicht-Eigentümer sehen den folgenden Statuspfad:

  • INSTALLING » IN_REVIEW (oder INSTALLATION_FAILED) » JOINING » JOINED (oder JOIN_FAILED)

Syntax

GET_STATUS( <collaboration_name> )
Copy

Argumente

collaboration_name

Name der Collaboration, deren Status angezeigt werden soll. Sie können eine Liste Ihrer Kooperationen einsehen, indem Sie COLLABORATION.VIEW_COLLABORATIONS aufrufen. Sie müssen erst zu einer Collaboration eingeladen werden oder ihr beigetreten sein, bevor Sie GET_STATUS für sie aufrufen können.

Rückgabewerte

Eine Tabelle, die die Details zum letzten Verknüpfungsversuch für alle Teilnehmer der angegebenen Collaboration enthält. Die Tabelle enthält die folgenden Spalten:

  • UPDATED_ON: Zeitstempel, wann der Status vom System gemeldet wurde.

  • COLLABORATOR_ACCOUNT: Datenfreigabe-Konto-ID dieses Teilnehmers.

  • COLLABORATOR_NAME: Der Alias des Teilnehmers, wie in der Collaboration-Spezifikation deklariert.

  • COLLABORATOR_ROLES: Die tatsächlichen und potenziellen Rollen für diesen Teilnehmer. Die Werte umfassen: owner, data_provider, analysis_runner.

  • STATUS: Status zum aktualisierten Zeitpunkt. Die folgenden Werte werden unterstützt und zeigen den Status des benannten Teilnehmers in der angegebenen Collaboration.

    • CREATING: Die Erstellung einer Collaboration hat begonnen.

    • CREATE_FAILED: Erstellung der Collaboration fehlgeschlagen.

    • CREATED: Die Collaboration wurde erstellt und ist zur Verarbeitung bereit.

    • INSTALLING: Installieren des Anwendungspakets und Vorbereiten der Collaboration-Details zur Überprüfung.

    • IN_REVIEW: Die Collaboration wird überprüft.

    • INSTALLATION_FAILED: Installation fehlgeschlagen; Anwendungspaket wurde nicht installiert und kann nicht überprüft werden.

    • INVITED: Der Teilnehmer wurde eingeladen.

    • REVIEWING: Collaboration wird derzeit überprüft.

    • JOINING: Der Beitretungsprozess hat begonnen.

    • JOIN_FAILED: Beitretungsprozess fehlgeschlagen.

    • JOINED: Der Collaboration erfolgreich beigetreten. Sie können beginnen, die Collaboration zu nutzen.

    • INVITE_STARTED: Einladungsprozess gestartet.

    • INVITE_ACCEPTED: Die Einladung wurde angenommen.

    • LEAVING: Austrittsprozess hat begonnen.

    • LEAVE_FAILED: Austrittsprozess fehlgeschlagen.

    • LEFT: Collaboration erfolgreich verlassen.

    • LOCAL_DROP_PENDING: Sie haben erfolgreich eine Anfrage zum Abbrechen oder Verlassen der Collaboration gestellt. Schließen Sie den Vorgang ab, indem Sie TEARDOWN oder LEAVE erneut aufrufen.

    • DROPPING: Der Löschvorgang hat begonnen.

    • DROPPED: Erfolgreich gelöscht.

    • DROP_FAILED: Löschvorgang fehlgeschlagen.

Beispiel

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_STATUS(
  $collaboration_name
);
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie eine der folgenden Prozeduren aufrufen:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


ENABLE_EXTERNAL_TABLE_ANALYSIS_FOR_COLLABORATION

Schema:

ADMIN

Aktiviert externe und Apache Iceberg™-Tabellen, die für eine Analyse in Ihrem Konto verwendet werden sollen. Ein Analyse-Runner muss dies aufrufen, bevor er eine Analyse ausführt, die externe oder Iceberg-Tabellen verwendet. Diese Prozedur wird einmal pro Collaboration aufgerufen, nicht einmal pro Analyse.

Syntax

ENABLE_EXTERNAL_TABLE_ANALYSIS_FOR_COLLABORATION( <collaboration_name> )
Copy

Argumente

collaboration_name

Name der Collaboration.

Rückgabewerte

String-Erfolgsmeldung.

Beispiel

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.ENABLE_EXTERNAL_TABLE_ANALYSIS_FOR_COLLABORATION(
  $collaboration_name
);
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden müssen Sie eine Rolle verwenden, der die Berechtigung MANAGE FIREWALL CONFIGURATION zugewiesen wurde, um diese Prozedur aufzurufen.


VIEW_COLLABORATIONS

Schema:

COLLABORATION

Anzeigen von Informationen zu Collaborations, die Sie erstellt haben, die Sie prüfen können oder denen Sie beigetreten sind.

Syntax

VIEW_COLLABORATIONS()
Copy

Argumente

None

Rückgabewerte

Eine Tabelle, die Details zu allen Collaborations auflistet, auf die Sie zugreifen können. Die Tabelle enthält die folgenden Spalten:

  • SOURCE_NAME: Der Name der Collaboration, wie durch den name-Wert in der Collaboration-Spezifikation angegeben.

  • COLLABORATION_NAME: Der Name der installierten Collaboration. Dieser ist NULL, bis die Collaboration durch den Aufruf von JOIN (Eigentümer) oder REVIEW (Nicht-Eigentümer) installiert wird.

  • OWNER_ACCOUNT: Datenfreigabe-ID des Kontos, das die Collaboration erstellt hat.

  • UPDATED_ON: Zeitpunkt der letzten Aktualisierung der Collaboration.

  • COLLABORATION_SPEC: Die Spezifikation für diese Collaboration im YAML-Format. Dies zeigt die neueste Version der Collaboration, einschließlich aller Ressourcen, die nach dem Erstellen der Collaboration hinzugefügt oder entfernt wurden. Es kann jedoch Aktualisierungsanfragen geben, die gerade ausgeführt werden und demnächst hinzugefügt werden, wie z. B. neue oder entfernte Vorlagen oder Datenangebote.

Beispiele

Zeigen Sie alle Collaborations an:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_COLLABORATIONS();
Copy

Zeigen Sie die Spezifikation für eine bestimmte Collaboration nach Namen an:

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

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie eine der folgenden Prozeduren aufrufen:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('READ', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('RUN', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('VIEW COLLABORATIONS', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


REVIEW

Schema:

COLLABORATION

Enthält Details zu einer Collaboration, zu der Sie eingeladen wurden. Rufen Sie COLLABORATION.VIEW_COLLABORATIONS auf, um zu sehen, zu welchen Collaborations Sie eingeladen wurden und noch nicht beigetreten sind. Alle Teilnehmer außer dem Eigentümer müssen diese Prozedur aufrufen, bevor sie JOIN aufrufen. Sie können diese Prozedur nicht für eine Collaboration aufrufen, der Sie beigetreten sind. Sie müssen dieselbe Rolle zum Aufrufen von REVIEW und JOIN verwenden. Wenn sich Ihr Konto in einer anderen Cloudhosting-Region befindet als der Eigentümer, müssen Sie diese Prozedur möglicherweise mehrmals aufrufen, bis eine erfolgreiche Antwort zurückgegeben wird.

Diese Prozedur installiert die zugrunde liegende Anwendung in Ihrem Konto.

Wichtige Hinweise:

  • Eigentümer können nicht REVIEW für ihre eigene Collaboration aufrufen.

  • Alle außer dem Eigentümer müssen REVIEW vor JOIN aufrufen.

  • Nachdem Sie einer Collaboration beigetreten sind, können Sie REVIEW nicht mehr aufrufen.

Syntax

REVIEW( <source_name>, <owner_account> )
Copy

Argumente

source_name

Name der Collaboration, zu der Sie eingeladen wurden. Sie können eine Liste Ihrer Kooperationen einsehen, indem Sie COLLABORATION.VIEW_COLLABORATIONS aufrufen.

owner_account

Datenfreigabe-Kontobezeichner des Eigentümers. Diesen finden Sie in der Antwort auf COLLABORATION.VIEW_COLLABORATIONS.

Rückgabewerte

Tabelle mit Informationen über die Collaboration, einschließlich der Collaboration-ID, Eigentümer und die Collaboration-Spezifikation.

Wenn sich Ihr Konto in einer anderen Cloudhosting-Region als die des Eigentümers der Collaboration befindet, kann REVIEW eine Meldung zurückgeben, die besagt, dass noch zusätzliche Einrichtungsschritte ausgeführt werden. Wenn Sie diese Meldung erhalten, rufen Sie REVIEW weiter auf, bis die Informationstabelle über die Collaboration zurückgegeben wird.

Beispiel

-- View the collaboration for your own usage.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.REVIEW(
  $collaboration_name,
  'org1.account1234'
);
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie eine der folgenden Prozeduren aufrufen:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Siehe GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE für zusätzliche erforderliche Rollenberechtigungen.


JOIN

Schema:

COLLABORATION

Asynchrone Methode, um einer bestimmten Collaboration beizutreten. Beachten Sie, dass Sie zum Zeitpunkt Ihres Beitritts nur auf die Ressourcen zugreifen können, die in der Collaboration aufgeführt sind. Diese Prozedur nimmt einige Zeit in Anspruch.

Sie benötigen die Kontoberechtigung REGISTER DATA OFFERING, um einer Collaboration beizutreten, in der Sie Daten aktivieren können (d. h. Sie sind ein Analyse-Runner und die Spezifikation der Collaboration enthält ein activation_destinations-Feld). Siehe Zugriffsverwaltung API-Referenzhandbuch.

Sie können keine aktive Sekundärrolle haben, wenn Sie diese Prozedur ausführen. Führen Sie folgenden SQL-Code zum Deaktivieren von Sekundärrollen aus:

USE SECONDARY ROLES NONE;
Copy

Alle außer dem Ersteller der Collaboration müssen COLLABORATION.REVIEW aufrufen, bevor sie diese Prozedur aufrufen.

Diese Prozedur ist asynchron. Rufen Sie GET_STATUS auf, um festzustellen, ob Sie der Collaboration erfolgreich beigetreten sind.

Jeder, der eine Ressource bei der Collaboration einreicht oder eine Vorlage in der Collaboration ausführen möchte, muss der Collaboration zuerst beitreten. Der Beitritt des Erstellers der Collaboration erfolgt automatisch, wenn INITIALIZE aufgerufen wird (es sei denn, auto_join_warehouse wird bereitgestellt).

Syntax

JOIN( <collaboration_name> )
Copy

Argumente

collaboration_name

Name der Collaboration, der beigetreten werden soll. Sie können eine Liste Ihrer Kooperationen einsehen, indem Sie COLLABORATION.VIEW_COLLABORATIONS aufrufen. Wenn Sie eingeladen wurden, mehreren Collaborations mit demselben Namen beizutreten, ist dies standardmäßig die zuletzt von Ihnen aufgerufene COLLABORATION.REVIEW.

Rückgabewerte

String-Erfolgsmeldung. Wenn Sie eine Fehlermeldung über eine fehlende Berechtigung zur Verwendung von Referenzen erhalten, sehen Sie unter Anleitung zur Problembehandlung nach.

Beispiel

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.JOIN(
  $collaboration_name
);
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie eine der folgenden Prozeduren aufrufen:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Siehe GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE für zusätzliche erforderliche Rollenberechtigungen.


LEAVE

Schema:

COLLABORATION

Verlassen einer Collaboration, der Sie beigetreten sind. Sie können einer Collaboration nicht wieder beitreten, nachdem Sie sie verlassen haben.

Sie müssen diese Prozedur zweimal aufrufen. Rufen Sie sie einmal auf, und rufen Sie dann GET_STATUS auf, bis LOCAL_DROP_PENDING zurückgegeben wird. Dann rufen Sie diese Prozedur erneut auf.

Syntax

LEAVE( <collaboration_name> )
Copy

Argumente

collaboration_name

Name der zu verlassenden Collaboration.

Rückgabewerte

String-Erfolgsmeldung.

Beispiel

-- Start the process.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.LEAVE($collaboration_name);

-- Call until it returns LOCAL_DROP_PENDING.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_STATUS($collaboration_name);

-- Final call.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.LEAVE($collaboration_name);
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie eine der folgenden Prozeduren aufrufen:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Siehe GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE für zusätzliche erforderliche Rollenberechtigungen.

Ausführen von Analysen und Aktivierungen

RUN

Schema:

COLLABORATION

Führt eine Analyse im Datenreinraum aus. Sie können die Ausführungsdetails entweder als einzelne Parameter oder durch Übergabe einer YAML -Spezifikationszeichenfolge zur Analyse übergeben.

Lesen Sie die Referenz consumer.run_analysis für Hintergrundinformationen zur Ausführung einer Vorlage in einem Datenreinraum.

Es gibt zwei Versionen dieser Prozedur: eine, die die Ausführungsargumente als eine einzige YAML-formatierte Zeichenfolge betrachtet und eine, die die Argumente als einzelne Parameter erwartet.

YAML-Argument-Syntax

RUN( <collaboration_name>, <analysis_spec> )
Copy
Argumente
collaboration_name

Name der Collaboration, in der diese Analyse ausgeführt werden soll.

analysis_spec

Analysedefinition im YAML-Format als Zeichenfolge, welche die Vorlage, die Tabellen und die Vorlagenwerte beschreibt, die in dieser Analyse verwendet werden sollen.

Explizite Parametersyntax

RUN( <collaboration_name>, <template_id>, <template_view_names>, <local_template_view_names>, <arguments> )
Copy
Argumente
collaboration_name

Name der Collaboration, in der diese Analyse ausgeführt werden soll.

template_id

ID der auszuführenden Vorlage.

template_view_names

Array von Zeichenfolgennamen der Quelltabellen, die in der Analyse verwendet werden sollen. Verwenden Sie von VIEW_DATA_OFFERINGS zurückgegebene Tabellennamen in der Spalte TEMPLATE_VIEW_NAME. Das Format für jeden Eintrag ist user_alias.data_offering_id.dataset_alias

local_template_view_names

Array aus Zeichenfolgen-IDs Ihrer eigenen Tabellen, die Sie für die Analyse verwenden möchten. Sie müssen diese Tabellen zuerst verknüpfen, indem Sie LINK_LOCAL_DATA_OFFERING aufrufen.

arguments

JSON-Objekt, das benannte Argumente enthält, die von der Vorlage verwendet werden, wobei jeder Schlüssel ein Name des Vorlagenarguments ist und der Wert der Wert dieses Arguments ist.

Rückgabewerte

Analyseergebnisse im Tabellenformat.

Beispiele

Beispiel für Übergabe von Parametern:

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.RUN(
  $collaboration_name,
  $template_name,
  ['Provider.data_offering_1_2026_01_12_v0.test_dataset'], -- Tables to pass to source_tables variable.
  [],
  {} -- Template takes no parameters.
);
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie eine der folgenden Prozeduren aufrufen:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('RUN', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


VIEW_ACTIVATIONS

Schema:

COLLABORATION

Zeigt den Aktivierungsstatus aller Analyseläufe an, die entweder von Ihnen ausgelöst wurden, um sie an einen Teilnehmer zu senden, oder Aktivierungen, die ein Teilnehmer ausgelöst hat, um sie an Sie zu senden. Aktivierungsanfragen zum Senden von Daten an sich selbst sind nicht aufgeführt.

Weitere Informationen zur Aktivierung finden Sie unter Abfrageergebnisse aktivieren.

Syntax

VIEW_ACTIVATIONS( <collaboration_name> )
Copy

Argumente

collaboration_name

Name der Collaboration.

Rückgabewerte

Eine Tabelle mit Details zu jeder Aktivierung. Die Tabelle enthält die folgenden Spalten:

  • UPDATED_ON: Zeitpunkt, zu dem der Status zuletzt aktualisiert wurde.

  • SEGMENT_NAME: Eine beliebige Zeichenfolge, die vom Analyse-Runner zugewiesen wird, um diese Aktivierung zu identifizieren. Weitere Informationen dazu finden Sie unter Aktivieren von Abfrageergebnissen.

  • ACTIVATION_ID: ID dieser Aktivierungsanforderung. Weitere Informationen dazu finden Sie unter Ergebnisse der Anbieter- und Verbraucheraktivierung anzeigen.

  • TEMPLATE_ID: Vorlage, die zur Erstellung dieser Aktivierungsdaten verwendet wurde.

  • SHARED_BY: Teilnehmer, der die Analyse ausgeführt hat.

  • SHARED_WITH: Teilnehmer, der die Analysedaten erhalten soll.

  • STATUS: Status der Aktivierung. Die folgenden Werte werden unterstützt:

    • PENDING: Die Aktivierung wurde angefordert, wartet aber auf die Verarbeitung.

    • SHARED: Die Aktivierungsdaten können verarbeitet werden. Rufen Sie PROCESS_ACTIVATION auf, um die Ergebnisse an Ihr Konto zu senden.

    • FAILED: Aktivierungsverarbeitung fehlgeschlagen. Weitere Informationen dazu finden Sie in der Spalte DETAILS.

    • PROCESSED: Die Ergebnisse der Aktivierung wurden an das in der Aktivierungsanfrage angegebene Konto gesendet.

  • DETAILS: Fehlerdetails, falls die Aktivierung fehlgeschlagen ist.

Beispiel

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_ACTIVATIONS(
  $collaboration_name
);
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie eine der folgenden Prozeduren aufrufen:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('VIEW ACTIVATIONS', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('RUN', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')


PROCESS_ACTIVATION

Schema:

COLLABORATION

Wenn der Analyse-Runner Daten an das Konto eines anderen Teilnehmers sendet, sollte dieser Teilnehmer PROCESS_ACTIVATION aufrufen, um die Aktivierungsdaten in sein Konto zu importieren. Der Teilnehmer sollte VIEW_ACTIVATIONS aufrufen und vor dem Aufrufen von PROCESS_ACTIVATION warten, bis die Ausgabe anzeigt, dass der Aktivierungsstatus für ein bestimmtes Segment SHARED ist.

Syntax

PROCESS_ACTIVATION( <collaboration_name>, <segment_name> )
Copy

Argumente

collaboration_name

Name der Collaboration.

segment_name

Eine beliebige Zeichenfolge, die zugewiesen wurde, um diese Aktivierung in der Ergebnistabelle zu identifizieren. Der Segmentname wird in der Analyseabfrage mit template_configuration.arguments.segment_name zugewiesen. Weitere Informationen dazu finden Sie unter Aktivieren von Abfrageergebnissen.

Rückgabewerte

Der Name der Tabelle, in welcher der Benutzer die Ergebnisse abrufen kann, und der für die Ergebnisse angegebene Segmentname. Unter Abfrageergebnisse aktivieren erfahren Sie, wie die Ergebnisse gelesen werden.

Beispiel

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.PROCESS_ACTIVATION(
  $collaboration_name,
  'q1_2025_segment'
);
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie eine der folgenden Prozeduren aufrufen:

  • GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE('PROCESS ACTIVATION', 'COLLABORATION', 'collaboration name', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE COLLABORATION', 'role name')

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('JOIN COLLABORATION', 'role name')

Prozeduren für das Management von Registrys

CREATE_REGISTRY

Schema:

REGISTRY

Erstellt eine kundenspezifische Registry zum Organisieren von Ressourcen wie Vorlagen und Datenangeboten. Eine kundenspezifische Registrierung kann Ressourcen eines einzigen Typs speichern, der bei der Erstellung der Registrierung festgelegt wird.

Verwenden Sie benutzerdefinierte Registrys, um zusammengehörige Ressourcen getrennt von der lokalen Standardregistrierung zu gruppieren. Fügen Sie dieser Registrierung mit dem optionalen Parameter „registry name“ Ressourcen hinzu.

Syntax

CREATE_REGISTRY( '<registry_name>', <registry_type> )
Copy

Argumente

registry_name

Name der zu erstellenden Registry. Der Name muss unter allen Registrys des Kontos eindeutig sein.

registry_type

Der Typ der Ressourcen, die diese Registry enthalten wird. Unterstützte Werte: TEMPLATE, DATA OFFERING.

Rückgabewerte

String-Erfolgsmeldung.

Beispiel

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.CREATE_REGISTRY(
  'my_custom_registry',
  'TEMPLATE'
);
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie die folgende Prozedur aufrufen:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE REGISTRY', 'role name')


DROP_REGISTRY

Schema:

REGISTRY

Löscht eine kundenspezifische Registry und hebt die Registrierung aller darin enthaltenen Objekte auf. Sie können nur Registrys löschen, die Sie selbst erstellt haben.

Syntax

DROP_REGISTRY( '<registry_name>' )
Copy

Argumente

registry_name

Name der zu löschenden Registry.

Rückgabewerte

String-Erfolgsmeldung.

Beispiel

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.DROP_REGISTRY(
  'my_custom_registry'
);
Copy

Zugriffsanforderungen

Wenn Sie nicht die Rolle SAMOOHA_APP_ROLE verwenden, müssen Sie eine Rolle verwenden, der Berechtigungen erteilt wurden, indem Sie die folgende Prozedur aufrufen:

  • GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE('CREATE REGISTRY', 'role name')

Prozeduren für die Zugriffsverwaltung

Die SAMOOHA_APP_ROLE-Rolle gewährt Zugriff auf alle DCR Collaboration-API-Prozeduren. Wenn ein Administrator jedoch bestimmten Rollen detailliertere Berechtigungen erteilen möchte, können Sie mithilfe der in diesem Abschnitt beschriebenen Verfahren eine Rolle erstellen und dieser Rolle spezifische Berechtigungen erteilen.

Erfahren Sie mehr über die Zugriffsgewährung unter Verwalten des Zugriffs auf die DCR Collaboration-API.

Die folgenden Verfahren dienen der Verwaltung des fein abgestuften Zugriffs auf die Snowflake Data Clean Room Collaboration-API:

GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE

Schema:

ADMIN

Gewährt einer bestimmten Rolle die Berechtigung, bestimmte Prozeduren für ein bestimmtes Objekt aufzurufen. Der Typ des Objekts wird mit dem OBJECT_TYPE-Argument definiert.

Sie können diese Prozedur mehrmals aufrufen, um derselben Rolle mehrere Berechtigungen zu erteilen. Führen Sie diese Prozedur mit der Rolle aus, die Eigentümer des Objekts ist.

Syntax

GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE(
  <privilege>,
  <object_type>,
  <object_name>,
  <account_role_name> )
Copy

Argumente

privilege

Welche Berechtigung dieser Rolle erteilt werden soll. In der folgenden Tabelle können Sie erfahren, welche Berechtigungen für welche Objekte verfügbar sind.

object_type

Der Typ des Objekts, für das dieser Rolle Berechtigungen erteilt werden. Unterstützte Werte:

  • COLLABORATION

  • REGISTRY

object_name

Die ID des Objekts, wie in der Spezifikation des Objekts angegeben.

account_role_name

Die zugewiesene Rolle.

Die folgenden Kombinationen von Berechtigungen und Objekttypen werden unterstützt:

Berechtigung

Objekttyp

Aktivierte Prozeduren

READ

COLLABORATION

VIEW_COLLABORATIONS, GET_STATUS, VIEW_DATA_OFFERINGS, VIEW_UPDATE_REQUESTS, VIEW_TEMPLATES

RUN

COLLABORATION

RUN, VIEW_ACTIVATIONS, VIEW_COLLABORATIONS

UPDATE

COLLABORATION

LINK_DATA_OFFERING, UNLINK_DATA_OFFERING, LINK_LOCAL_DATA_OFFERING, UNLINK_LOCAL_DATA_OFFERING, ADD_TEMPLATE_REQUEST, REMOVE_TEMPLATE, APPROVE_UPDATE_REQUEST, REJECT_UPDATE_REQUEST, ENABLE_TEMPLATE_AUTO_APPROVAL, DISABLE_TEMPLATE_AUTO_APPROVAL, VIEW_UPDATE_REQUESTS

READ

REGISTRY

Anzeigen von Ressourcen, die in einer kundenspezifischen Registry registriert sind.

REGISTER

REGISTRY

Registrieren von Ressourcen wie Vorlagen und Datenangebote in einer kundenspezifischen Registry.

Rückgabewerte

String-Erfolgsmeldung.

Beispiel

Dieses Beispiel erstellt eine Rolle, mit der Analysten ihre Analysen in einer Collaboration namens my_collaboration durchführen können, und weist sie einem Benutzer zu.

USE ROLE role_that_created_this_collaboration;

CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE(
  'RUN',
  'COLLABORATION',
  $collaboration_name,
  'collaborator_analyst_role'
);
GRANT ROLE collaborator_analyst_role to USER alexander_hamilton;
Copy

Zugriffsanforderungen

Sie müssen dieselbe Rolle verwenden, die das aufzurufende Objekt GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE für dieses Objekt erstellt hat.


GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE

Schema:

ADMIN

Erteilt einer Rolle Berechtigungen auf Kontoebene. Mit dieser Prozedur kann jeder, der diese Rolle verwendet, die für diese Berechtigung aufgeführten Prozeduren aufrufen.

Syntax

GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE( <privilege>, <account_role_name> )
Copy

Argumente

privilege

Die Berechtigung, die dieser Rolle zugewiesen wird. Die folgenden Zeichenfolgenwerte werden unterstützt:

  • JOIN COLLABORATION: Erteilt die Berechtigung zur Ausführung von COLLABORATION.JOIN sowie der folgenden Verfahren für die beigetretene Collaboration:

    • ADMIN.GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE

    • COLLABORATION.ADD_TEMPLATE_REQUEST

    • COLLABORATION.APPROVE_UPDATE_REQUEST

    • COLLABORATION.ENABLE_TEMPLATE_AUTO_APPROVAL

    • COLLABORATION.DISABLE_TEMPLATE_AUTO_APPROVAL

    • COLLABORATION.REMOVE_TEMPLATE

    • COLLABORATION.GET_STATUS

    • COLLABORATION.LEAVE

    • COLLABORATION.LINK_DATA_OFFERING

    • COLLABORATION.LINK_LOCAL_DATA_OFFERING

    • COLLABORATION.PROCESS_ACTIVATION

    • COLLABORATION.REJECT_UPDATE_REQUEST

    • COLLABORATION.REVIEW

    • COLLABORATION.RUN

    • COLLABORATION.TEARDOWN

    • COLLABORATION.UNLINK_DATA_OFFERING

    • COLLABORATION.UNLINK_LOCAL_DATA_OFFERING

    • COLLABORATION.VIEW_ACTIVATIONS

    • COLLABORATION.VIEW_COLLABORATIONS

    • COLLABORATION.VIEW_DATA_OFFERINGS

    • COLLABORATION.VIEW_TEMPLATES

    • COLLABORATION.VIEW_UPDATE_REQUESTS

    • REGISTRY.VIEW_REGISTERED_DATA_OFFERINGS

    • REGISTRY.VIEW_REGISTERED_TEMPLATES

    Für diese Berechtigung müssen der Rolle die folgenden Berechtigungen auf Kontoebene manuell erteilt werden:

    • APPLY ROW ACCESS POLICY

    • CREATE APPLICATION

    • CREATE DATABASE

    • CREATE-LISTING

    • CREATE SHARE

    • IMPORT SHARE

    • MANAGE SHARE TARGET

  • CREATE COLLABORATION: Erteilt die Berechtigung zur Ausführung von COLLABORATION.INITIALIZE sowie aller durch JOIN COLLABORATION erlaubten Prozeduren für die beigetretene Collaboration. Erfordert, dass die folgenden Berechtigungen auf Kontoebene der Rolle manuell gewährt werden:

    • APPLY ROW ACCESS POLICY

    • CREATE APPLICATION

    • CREATE DATABASE

    • CREATE-LISTING

    • CREATE SHARE

    • IMPORT SHARE

    • MANAGE SHARE TARGET

    • EXECUTE TASK (bei Verwendung des automatischen Beitritts in der Prozedur INITIALIZE)

  • VIEW COLLABORATIONS: Erteilt die Berechtigung zur Ausführung von COLLABORATION.VIEW_COLLABORATIONS. Die folgenden Berechtigungen müssen der Rolle manuell gewährt werden:

    • IMPORT SHARE

  • REGISTER DATA OFFERING: Erteilt die Berechtigung zur Ausführung von REGISTRY.REGISTER_DATA_OFFERING. Diese Berechtigung ist für jeden Analyse-Runner erforderlich, um einer Collaboration beizutreten, die die Aktivierung implementiert.

  • VIEW REGISTERED DATA OFFERINGS: Erteilt die Berechtigung zur Ausführung von REGISTRY.VIEW_REGISTERED_DATA_OFFERINGS.

  • VIEW REGISTERED TEMPLATES: Erteilt die Berechtigung zur Ausführung von REGISTRY.VIEW_REGISTERED_TEMPLATES.

  • REGISTER TEMPLATE: Erteilt die Berechtigung zur Ausführung von REGISTRY.REGISTER_TEMPLATE.

  • CREATE REGISTRY: Erteilt die Berechtigung zur Ausführung von REGISTRY.CREATE_REGISTRY und ``REGISTRY.DROP_REGISTRY``sowie die Fähigkeit, aus kundenspezifischen Registrys zu lesen.

  • MANAGE LISTING AUTO FULFILLMENT: Erteilt einem Teilnehmer die Berechtigung, einer Collaboration in einer anderen Cloudhosting-Region beizutreten. Weitere Informationen dazu finden Sie unter Cloud-übergreifende automatische Ausführung aktivieren.

account_role_name

Der Name einer Rolle auf Kontoebene.

Rückgabewerte

String-Erfolgsmeldung.

Beispiel

USE ROLE ACCOUNTADMIN;
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.GRANT_PRIVILEGE_ON_ACCOUNT_TO_ROLE(
  'REGISTER DATA OFFERING',
  'COLLABORATOR_ANALYST_ROLE'
);
Copy

Zugriffsanforderungen

Sie benötigen die ACCOUNTADMIN-Rolle, um diese Prozedur auszuführen.