Freigeben über


Rollen

gilt für: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Rollen in tabellarischen Modellen definieren Memberberechtigungen für ein Modell. Mitglieder der Rolle können Aktionen für das Modell ausführen, wie durch die Rollenberechtigung definiert. Rollen, die mit Leseberechtigungen definiert sind, können auch mithilfe von Filtern auf Zeilenebene mehr Sicherheit auf Zeilenebene bieten.

Für Azure Analysis Services- und Power BI-Semantikmodelle müssen sich Benutzer in Ihrer Microsoft Entra-ID befindet. Benutzernamen und Gruppen werden durch die E-Mail-Adresse oder den Benutzerprinzipalnamen (User Principal Name, UPN) der Organisation angegeben. Für SQL Server Analysis Services enthalten Rollen Benutzermitglieder, die durch Windows-Benutzername oder windows-Gruppe angegeben sind, sowie Berechtigungen (Lesen, Prozess, Administrator).

Wichtig

Wenn Sie Visual Studio zum Erstellen von Rollen und Hinzufügen von Benutzern zu einem tabellarischen Modellprojekt verwenden, das in Azure Analysis Services oder Power BI bereitgestellt wird, verwenden Sie integrierten Arbeitsbereich.

Wichtig

Damit Benutzer mithilfe einer Berichterstellungsclientanwendung eine Verbindung mit einem bereitgestellten Modell herstellen können, müssen Sie mindestens eine Rolle erstellen, die mindestens Lesen-Berechtigung hat. Fügen Sie der Rolle Benutzer der Berichtsclient-App als Mitglieder hinzu.

Informationen in diesem Artikel sind für Tabellarische Modellautoren gedacht, die Rollen mithilfe des Dialogfelds "Rollen-Manager" in SSDT definieren. Während der Modellerstellung definierte Rollen gelten für die Modellarbeitsbereichsdatenbank. Nachdem eine Modelldatenbank bereitgestellt wurde, können Modelldatenbankadministratoren Rollenmitglieder mithilfe von SSMS verwalten (hinzufügen, bearbeiten, löschen).

Grundlegendes zu Rollen

Rollen werden in Analysis Services zum Verwalten des Modelldatenzugriffs verwendet. Es gibt zwei Arten von Rollen:

  • Die Serverrolle ist eine feste Rolle, die Administratorzugriff auf eine Analysis Services-Serverinstanz ermöglicht. Serverrollen gelten nicht für Power BI. Stattdessen verwendet Power BI Arbeitsbereichsrollen.

  • Datenbankrollen werden von Modellautoren und Administratoren definiert, um den Zugriff auf eine Modelldatenbank und Daten für Benutzer zu steuern.

Rollen, die für ein tabellarisches Modell definiert sind, sind Datenbankrollen. Diese Rollen enthalten Benutzer oder Gruppen, die bestimmte Berechtigungen besitzen, mit denen die Aktion definiert wird, die mitglieder für die Modelldatenbank ausführen können. Eine Rolle wird als separates Objekt in der Datenbank erstellt und gilt nur für die Datenbank, in der die Rolle erstellt wird. Der Modellautor fügt der Rolle Benutzer und Gruppen hinzu. Standardmäßig verfügt der Modellautor über Administratorberechtigungen auf dem Arbeitsbereichsdatenbankserver; für ein bereitgestelltes Modell werden Rollenmitglieder von einem Administrator hinzugefügt.

Rollen in tabellarischen Modellen können mit Zeilenfiltern weiter definiert werden, auch als Zeilenebenensicherheitbezeichnet. Zeilenfilter verwenden DAX-Ausdrücke, um die Zeilen in einer Tabelle und alle verwandten Zeilen in der n-Richtung zu definieren, die ein Benutzer abfragen kann. Zeilenfilter mit DAX-Ausdrücken können nur für die Berechtigungen Read und Read and Process definiert werden. In Power BI werden Modellrollen in Power BI Desktop definiert und gelten nur für die Sicherheit auf Zeilenebene. Weitere Informationen finden Sie unter Zeilenfilter weiter unten in diesem Artikel.

Wenn Sie ein neues tabellarisches Modellprojekt erstellen, hat das Projekt standardmäßig keine Rollen definiert. Rollen werden mithilfe des Dialogfelds "Rollen-Manager" in SSDT definiert. Wenn Rollen während der Modellerstellung definiert werden, werden sie auf die Modellarbeitsbereichsdatenbank angewendet. Wenn das Modell bereitgestellt wird, werden dieselben Rollen auf das bereitgestellte Modell angewendet. Nachdem ein Modell bereitgestellt wurde, können Mitglieder der Serverrolle (Analysis Services Administrator) und Datenbankadministratoren die Rollen verwalten, die dem Modell zugeordnet sind, und die Mitglieder, die den einzelnen Rollen zugeordnet sind, mithilfe von SSMS.

Erlaubnisse

Rollenberechtigungen, die in diesem Abschnitt beschrieben werden, gelten nur für Azure Analysis Services und SQL Server Analysis Services. In Power BI werden Berechtigungen für das semantische Modell definiert. Weitere Informationen finden Sie unter Verwalten des Semantikmodellzugriffs.

Jede Rolle verfügt über eine einzelne definierte Datenbankberechtigung (mit Ausnahme der kombinierten Lese- und Prozessberechtigung). Standardmäßig verfügt eine neue Rolle über die Berechtigung "Keine". Wenn Mitglieder einer Rolle hinzugefügt werden, die über die Berechtigung "Keine" verfügt, können sie die Datenbank nicht ändern, einen Prozessvorgang ausführen, Daten abfragen oder die Datenbank anzeigen, es sei denn, eine andere Berechtigung wurde erteilt.

Eine Gruppe oder ein Benutzer kann Mitglied einer beliebigen Anzahl von Rollen sein, wobei jede Rolle über eine andere Berechtigung verfügt. Wenn ein Benutzer Mitglied mehrerer Rollen ist, sind die für jede Rolle definierten Berechtigungen kumulativ. Wenn ein Benutzer beispielsweise Mitglied einer Rolle mit der Lesen-Berechtigung und auch ein Mitglied einer Rolle mit "Keine"-Berechtigung ist, verfügt dieser Benutzer über Leseberechtigungen.

Jede Rolle kann über eine der folgenden Berechtigungen verfügen:

Erlaubnisse Beschreibung Zeilenfilter mit DAX
Nichts Mitglieder können keine Änderungen am Modelldatenbankschema vornehmen und keine Daten abfragen. Zeilenfilter gelten nicht. Für Benutzer in dieser Rolle sind keine Daten sichtbar.
Lesen Member dürfen Daten abfragen (basierend auf Zeilenfiltern), aber die Modelldatenbank in SSMS nicht sehen, keine Änderungen am Modelldatenbankschema vornehmen, und der Benutzer kann das Modell nicht verarbeiten. Zeilenfilter können angewendet werden. Nur daten, die in der DAX-Formel des Zeilenfilters angegeben sind, sind für Benutzer sichtbar.
Lesen und Verarbeiten Member dürfen Daten abfragen (basierend auf Filtern auf Zeilenebene) und Prozessvorgänge ausführen, indem ein Skript oder Paket ausgeführt wird, das einen Prozessbefehl enthält, aber keine Änderungen an der Datenbank vornehmen können. Benutzer mit Berechtigung können die Modelldatenbank in SSMS nicht anzeigen. Zeilenfilter können angewendet werden. Es können nur Daten abgefragt werden, die in der DAX-Formel des Zeilenfilters angegeben sind.
Prozess Mitglieder können Prozessvorgänge ausführen, indem sie ein Skript oder Paket ausführen, das einen Prozessbefehl enthält. Mitglieder können das Modelldatenbankschema nicht ändern, keine Daten abfragen und die Modelldatenbank in SSMS nicht abfragen. Zeilenfilter gelten nicht. In dieser Rolle können keine Daten abgefragt werden.
Administrator Mitglieder können Änderungen am Modellschema vornehmen und alle Daten im Modell-Designer, berichtsclient und SSMS abfragen. Zeilenfilter gelten nicht. Alle Daten können in dieser Rolle abgefragt werden.

Anmerkung

Mitglieder mit Lese- und Lese- und Prozessberechtigungen können Daten basierend auf Zeilenfiltern abfragen, aber die Modelldatenbank in SSMS nicht sehen. Mitglieder können keine Änderungen am Modelldatenbankschema vornehmen und das Modell nicht verarbeiten. In SQL Server Analysis Services 2019 und früheren Versionen können Member jedoch DMVs- verwenden, um Measuredefinitionen zu bestimmen. SQL Server Analysis Services 2022 und höher blockieren den Zugriff auf DMVs für verbesserte Sicherheit.

Zeilenfilter

Zeilenfilter, allgemein als Sicherheit auf Zeilenebene in Power BIbezeichnet, definieren, welche Zeilen in einer Tabelle von Mitgliedern einer bestimmten Rolle abgefragt werden können. Zeilenfilter werden für jede Tabelle in einem Modell mithilfe von DAX-Formeln definiert.

Zeilenfilter können nur für Rollen mit Lese- und Lese- und Prozessberechtigungen definiert werden. Wenn für eine bestimmte Tabelle kein Zeilenfilter definiert ist, können Elemente einer Rolle, die über die Berechtigung "Lesen" oder "Lesen" und "Prozess" verfügt, alle Zeilen in der Tabelle abfragen, es sei denn, die Kreuzfilterung gilt aus einer anderen Tabelle.

Nachdem ein Zeilenfilter für eine bestimmte Tabelle definiert wurde, definiert eine DAX-Formel, die als WAHR/FALSCH-Wert ausgewertet wird, die Zeilen, die von Mitgliedern dieser bestimmten Rolle abgefragt werden können. Zeilen, die nicht in der DAX-Formel enthalten sind, können nicht abgefragt werden. Wenn z. B. für Mitglieder der Rolle "Vertrieb" der Ausdruck "Kunden" den Folgenden Zeilenfilterausdruck hat, =Customers [Country] = "USA", werden die Mitglieder der Rolle "Vertrieb" nur Kunden in den USA sehen.

Zeilenfilter gelten sowohl für die angegebenen Zeilen als auch für verwandte Zeilen. Wenn eine Tabelle über mehrere Beziehungen verfügt, wenden Filter die Sicherheit für die aktive Beziehung an. Zeilenfilter werden mit anderen Zeilendateiern überschnitten, die für verwandte Tabellen definiert sind, z. B.:

Tisch DAX-Ausdruck
Region =Region[Land]="USA"
ProductCategory =ProductCategory[Name]="Fahrräder"
Transaktionen =Transaktionen[Jahr]=2020

Der Nettoeffekt dieser Berechtigungen auf die Tabelle "Transaktionen" besteht darin, dass Mitglieder Zeilen von Daten abfragen können, in denen sich der Kunde in den USA befindet, und die Produktkategorie Fahrräder ist und das Jahr 2020 ist. Benutzer können keine Transaktionen außerhalb der USA oder Transaktionen abfragen, die keine Fahrräder sind, oder Transaktionen, die nicht im Jahr 2020 sind, es sei denn, sie sind Mitglied einer anderen Rolle, die diese Berechtigungen gewährt.

Sie können den Filter =FALSE()verwenden, um den Zugriff auf alle Zeilen für eine gesamte Tabelle zu verweigern.

Weitere Informationen zu Modellrollen in Power BI finden Sie unter Sicherheit auf Zeilenebene in Power BI.

Dynamische Sicherheit

Mit dynamischer Sicherheit können Sie die Sicherheit auf Zeilenebene basierend auf dem Benutzernamen des aktuell angemeldeten Benutzers oder der customData-Eigenschaft definieren, die von einer Verbindungszeichenfolge zurückgegeben wird. Um dynamische Sicherheit zu implementieren, müssen Sie eine Tabelle mit Anmeldewerten (Windows-Benutzernamen) für Benutzer sowie ein Feld einschließen, das zum Definieren einer bestimmten Berechtigung in Ihrem Modell verwendet werden kann. Fügen Sie beispielsweise eine dimEmployees-Tabelle mit einer Anmelde-ID (Domäne\Benutzername) sowie einen Abteilungswert für jeden Mitarbeiter im Modell hinzu.

Um dynamische Sicherheit zu implementieren, können Sie die folgenden Funktionen als Teil einer DAX-Formel verwenden, um den Benutzernamen des aktuell angemeldeten Benutzers oder die CustomData-Eigenschaft in einer Verbindungszeichenfolge zurückzugeben:

Funktion Beschreibung
USERNAME-Funktion (DAX) Gibt die Domäne\Benutzername des aktuell angemeldeten Benutzers zurück.
CUSTOMDATA-Funktion (DAX)- Gibt die CustomData-Eigenschaft in einer Verbindungszeichenfolge zurück.

Sie können die LOOKUPVALUE-Funktion verwenden, um Werte für eine Spalte zurückzugeben, in der der Windows-Benutzername mit dem benutzernamen identisch ist, der von der FUNKTION BENUTZERNAME oder einer von der CustomData-Funktion zurückgegebenen Zeichenfolge zurückgegeben wird. Abfragen können eingeschränkt werden, wenn die von LOOKUPVALUE zurückgegebenen Werte mit Werten in derselben oder verknüpften Tabelle übereinstimmen.

Verwenden Sie z. B. diese Formel:

='dimDepartment'[DepartmentId]=LOOKUPVALUE('dimEmployees'[DepartmentId], 'dimEmployees'[LoginId], USERNAME(), 'dimEmployees'[LoginId], 'dimDepartment'[DepartmentId])

Die LOOKUPVALUE-Funktion gibt Werte für die Spalte "dimEmployees[DepartmentId]" zurück, in der die dimEmployees[LoginId] mit der LoginID des aktuell angemeldeten Benutzers identisch ist, der von BENUTZERNAME zurückgegeben wird, und werte für dimEmployees[DepartmentId] entsprechen den Werten für dimDepartment[DepartmentId]. Die von LOOKUPVALUE zurückgegebenen Werte in "DepartmentId" werden dann verwendet, um die in der Tabelle "dimDepartment" abgefragten Zeilen und alle Tabellen einzuschränken, die sich auf "DepartmentId" beziehen. Nur Zeilen, in denen "DepartmentId" auch in den Werten für die "DepartmentId", die von DER LOOKUPVALUE-Funktion zurückgegeben werden, zurückgegeben werden.

dimEmployees

Nachname Vorname LoginId Abteilungsname DepartmentId
Braun Kevin Adventure-works\kevin0 Marketing 7
Bradley David Adventure-works\david0 Marketing 7
Dobney JoLynn Adventure-works\JoLynn0 Produktion 4
Baretto DeMattos Paula Adventure-works\Paula0 Personalabteilung 2

dimDepartment-

DepartmentId Abteilungsname
1 Körperschaftlich
2 Exekutive und Verwaltung
3 Bestandsverwaltung
4 Herstellung
5 Qualitätssicherung
6 Forschung und Entwicklung
7 Vertrieb und Marketing

Testen von Rollen

Beim Erstellen eines Modellprojekts in Visual Studio können Sie das Feature "In Excel analysieren" verwenden, um die Wirksamkeit der definierten Rollen zu testen. Wählen Sie im Menü Modell im Modell-Designer "In Excel-analysieren" aus. Bevor Excel geöffnet wird, wird das Dialogfeld Anmeldeinformationen und Perspektive auswählen angezeigt. In diesem Dialogfeld können Sie den aktuellen Benutzernamen, einen anderen Benutzernamen, eine Rolle und eine Perspektive angeben, die Sie zum Herstellen einer Verbindung mit dem Arbeitsbereichsmodell als Datenquelle verwenden. Weitere Informationen finden Sie unter Analysieren in Excel.

Skriptrollen

Rollen für bereitgestellte Modelle und semantische Modelle können mithilfe Tabular Model Scripting Language (TMSL) skripting Language (Tabular Model Scripting Language) skripteded werden, um das Roles-Objektzu erstellen oder zu ändern. TMSL-Skripts können in SSMS oder mit dem Invoke-ASCmd PowerShell-Cmdlet ausgeführt werden.

Siehe auch

Erstellen und Verwalten von Rollen
Perspektiven
Analysieren in Excel
USERNAME-Funktion (DAX)
LOOKUPVALUE-Funktion (DAX)
CUSTOMDATA-Funktion (DAX)-