Anwendungsrollen: Verbrauchenden Personen die Möglichkeit geben, verschiedene Ansichten derselben Daten zu teilen

Als Anbieter können Sie das Verbrauchererlebnis verbessern, indem Sie Anwendungsrollen in Ihre Declarative Native App aufnehmen. Eine Anwendungsrolle ist eine Anmeldeinformation, die im Kontext einer Declarative Native App erstellt wurde. Weitere Informationen zu Anwendungsrollen finden Sie unter Allgemeine Informationen zu Anwendungsrollen.

Anwendungsrollen isolieren die Sicherheit für die Anwendung, sodass die spezifischen Sicherheitsanmeldeinformationen der Anwendung nicht innerhalb des umfassenderen organisatorischen Sicherheitsmodells der verbrauchenden Person verwaltet werden müssen. Mithilfe von Anwendungsrollen können Anbieter den Zugriff auf Anwendungsressourcen einfach kontrollieren. Konten von Verbrauchenden können dann mithilfe einfacher SQL-Anweisungen des Typs SQL GRANT Zugriff auf die Anwendungslogik und Daten gewähren.

Wenn eine Anwendung beispielsweise eine Anwendungsrolle Operations verwendet, um auf eine Protokolltabelle zuzugreifen, muss die verbrauchende Person diese Anwendungsrolle nicht außerhalb des Anwendungskontexts der Anwendung verwalten. Sie muss lediglich wissen, dass sie die Anwendung mithilfe der Anwendungsrolle Operations für das Support-Team freigeben kann.

Mithilfe der Manifest-Datei definieren Sie Anwendungsrollen und weisen sie Inhalten in der App zu. Wenn die verbrauchende Person die App installiert, kann sie den Inhalt mit den Mitgliedern der eigenen Organisation teilen, indem sie die Anwendungsrollen den Organisationsrollen und Benutzenden zuweist. Verbrauchende Personen können auch Hierarchien von Anwendungsrollen erstellen, indem sie anderen Anwendungsrollen Anwendungsrollen zuordnen.

Anwendungsrollen ermöglichen es verbrauchenden Personen, Daten auf unterschiedliche Weise für Mitglieder ihrer Organisation freizugeben. Beispielsweise kann eine App zwei Notebooks zur Darstellung der Daten enthalten, wobei eines eine vollständige Ansicht der Daten und das andere eine gefilterte Ansicht enthält.

Komponenten einer App, die zwei Ansichten derselben Daten enthält.

Die Person mit Eigentumsrechten an der Verbraucher-App kann dann eine gefilterte Ansicht mit einem Team teilen, während sie selbst weiterhin Zugriff auf die vollständige Ansicht hat.

Personen mit Eigentumsrechten an der App weisen Teams in ihrer Organisation App-Rollen zu.

Wenn Sie Anwendungsrollen verwenden, um den Zugriff auf Datenbank zu ermöglichen, erben die untergeordneten Ressourcen die Rollen ihrer übergeordneten Ressourcen. Wenn Sie beispielsweise einem Schema eine Anwendungsrolle zuweisen, erben alle Tabellen und Ansichten in diesem Schema die Rolle. Wenn Sie einer Datenbank eine Anwendungsrolle zuweisen, erben alle Schemas, Tabellen und Ansichten in dieser Datenbank die Rolle.

Anwendungsrollen zu Inhalten in der Manifest-Datei zuweisen

  1. Definieren Sie in der Manifest-Datei die verfügbaren Rollen, beispielsweise sales, marketing und operations.

    roles:
      - sales:
          comment: "The sales role provides access to the filtered view of the sales data."
      - marketing:
          comment: "The marketing role provides access to the filtered view of the marketing data."
      - operations:
          comment: "The operations role provides access to the full view of the data, including logs."
    
    Copy
  2. Weisen Sie dem Inhalt der Manifest-Datei mithilfe einer Liste App-Rollen zu, beispielsweise: roles: [sales, support]:

    - customer_table:
      roles: [sales,marketing] # Accessible to sales and marketing, app owners
    
    Copy
  3. Um eine Tabelle hinzuzufügen, fügen Sie die Rolle sowohl zu <named table>.roles als auch zu <named schema>.roles dort hinzu, wo sich die Tabelle befindet.

    schemas:
      - sales_table:
        roles: [sales]
    tables:
      - sales_table:
        roles: [sales]
    
    Copy
  4. Um eine Ansicht hinzuzufügen, fügen Sie die Rolle sowohl zu <named view>.roles als auch zu <named schema>.roles dort hinzu, wo sich die Ansicht befindet.

    schemas:
       - sales_view:
         roles: [sales]
    views:
       - sales_view:
         roles: [sales]
    
    Copy
  5. Wenn Sie eine gefilterte Ansicht einer Tabelle hinzufügen, fügen Sie nicht die zugrunde liegende Tabelle hinzu. Dadurch wird verhindert, dass Benutzende auf die ungefilterten Daten zugreifen.

  6. Um ein Notebook einzubinden, fügen Sie die Rolle zu <named notebook>.roles und dann die im Notebook angegebenen Tabellen und Ansichten (und deren zugrunde liegende Schemas) hinzu.

    notebooks:
      - SALES_NB:
        main_file: ALL-DATA.ipynb
         roles: [sales]
         comment: Accessible to sales and app owners, references full view of the sales data
    
    Copy
  7. Wenn Sie ein Notizbuch hinzufügen, das auf eine gefilterte Ansicht einer Tabelle verweist, fügen Sie nicht die zugrunde liegende Tabelle hinzu. Dadurch wird verhindert, dass Benutzende auf die ungefilterten Daten zugreifen.

  8. Um einem Objekt keine App-Rollen zuzuweisen, lassen Sie entweder das Feld leer ([]) oder lassen Sie es weg. Auf diese Objekte können nur die Person mit Eigentumsrechten an der App und Rollen mit der Berechtigung für GRANT IMPORTED PRIVILEGES zugreifen.

- my_schema:
  roles: [] # Accessible to app owners only
Copy

Beispiel einer Manifest-Datei:

roles:
  - sales:
      comment: "The sales role provides access to the filtered view of the sales data."
  - marketing:
      comment: "The marketing role provides access to the filtered view of the marketing data."
  - operations:
      comment: "The operations role provides access to the full view of the log data."

application_content:
  notebooks:
    - SALES_NB:
        main_file: ALL-DATA.ipynb
        roles: [sales]
        comment: Accessible to sales and app owners, references full view of the sales data

    - MARKETING_NB:
        main_file: FILTERED.ipynb
        roles: [marketing] #
        comment: Accessible to marketing and app owners, references filtered view of the marketing data

shared_content:
  databases:
    - my_database:
        schemas:
          - my_schema:
              roles: [] # Accessible to app owners
              tables:
                - sales_table:
                    roles: [sales] # Accessible to sales, app owners
                - marketing_table:
                    roles: [marketing] # Accessible to marketing, app owners
                - customer_table:
                    roles: [sales,marketing] # Accessible to sales and marketing, app owners
                - logs_table:
                    roles: [operations] # Accessible to operations and app owners
              views:
                - sales_view:
                    roles: [sales]   # Accessible to sales and app owners
                - marketing_view:
                    roles: [marketing] # Accessible to marketing and app owners
                - customer_view:
                    roles: [sales,marketing] # Accessible to sales, marketing, and app owners
                - operations_view:
                    roles: [operations] # Accessible to operations and app owners
Copy

Wenn die verbrauchende Person die App später installiert, hat sie Zugriff auf beide Notebooks, die Tabellen und die Ansichten.

Um die Ansicht „Operations“ für ihr Support-Team freizugeben, weist sie der Organisationsrolle ihres Support-Teams die Anwendungsrolle Operations zu.

GRANT APPLICATION ROLE customer_app.operations TO ROLE support_team_west;
Copy

Mitglieder des Verbraucherteams mit der Rolle``support_team_west`` können die Tabelle logs sehen, jedoch nicht die Notebooks nicht auf der Registerkarte Available Notebooks in Snowsight. Sie haben auch keinen Zugriff auf die Tabellen und Ansichten sales und customers.

Um die Ansicht für ihr Vertriebsteam freizugeben, weisen sie ihrer Vertriebsorganisationsrolle die Anwendungsrolle sales zu.

GRANT APPLICATION ROLE customer_app.sales TO ROLE sales_team_east;
Copy

Mitglieder des Verbraucherteams mit der Rolle sales_team_east wird das Notebook auf der Registerkarte Available Notebooks in Snowsight angezeigt. Sie können die Tabelle logs nicht sehen, jedoch auf die Tabellen und Ansichten sales und customers zugreifen.

Weitere Informationen darüber, wie verbrauchende Personen Rollen freigeben, finden Sie unter Zugriff auf die App freigeben.