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.
Using the manifest file, you define application roles, and assign them to content in the app. When the consumer installs the app, they can share the content with their organization members by assigning the application roles to their account roles and users. Consumers can also create hierarchies of application roles by assigning application roles to other application roles.
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.
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.
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¶
In the manifest file, in the top-level roles field, define the available application roles, for example,
sales,marketing, andoperations.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."
CopyWeisen 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
CopyUm eine Tabelle hinzuzufügen, fügen Sie die Rolle sowohl zu
<named table>.rolesals auch zu<named schema>.rolesdort hinzu, wo sich die Tabelle befindet.schemas: - sales_table: roles: [sales] tables: - sales_table: roles: [sales]
CopyUm eine Ansicht hinzuzufügen, fügen Sie die Rolle sowohl zu
<named view>.rolesals auch zu<named schema>.rolesdort hinzu, wo sich die Ansicht befindet.schemas: - sales_view: roles: [sales] views: - sales_view: roles: [sales]
CopyWenn 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.
Um ein Notebook einzubinden, fügen Sie die Rolle zu
<named notebook>.rolesund 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
CopyWenn 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.
To give an object no app roles, either leave the field empty (
[]) or omit it. These objects are only accessible by the app owner and roles with granted IMPORTED PRIVILEGES.
- my_schema: roles: [] # Accessible to app owners onlyCopy
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
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;
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;
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.
For more information about how consumers share roles, see Zugriff auf die App freigeben.