Rollen

Gilt für: SQL Server Analysis Services Azure Analysis Services Power BI Premium

Rollen in tabellarischen Modellen definieren Memberberechtigungen für ein Modell. Rollenmitglieder können die durch die Rollenberechtigung definierten Aktionen für das Modell ausführen. Rollen, die mit Leseberechtigungen definiert wurden, können zusätzliche Sicherheit auf Zeilenebene bieten, indem Filter auf Zeilenebene verwendet werden.

Für Azure Analysis Services und Power BI Datasets müssen sich Benutzer in Ihrer Azure Active Directory und die angegebenen Benutzernamen und Gruppen müssen nach E-Mail-Adresse oder UPN der Organisation angegeben werden. Für SQL Server Analysis Services enthalten Rollen Benutzermitglieder nach Windows Benutzername oder Windows-Gruppe und Berechtigungen (Lesen, Verarbeiten, Administrator).

Wichtig

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

Wichtig

Damit Benutzer mithilfe einer Berichterstellungsclientanwendung eine Verbindung mit einem bereitgestellten Modell herstellen können, müssen Sie mindestens eine Rolle mit mindestens der Berechtigung Lesen erstellen, der diese Benutzer mitglieder sind.

Die Informationen in diesem Artikel sind für Autoren tabellarischer Modelle bestimmt, die Rollen mithilfe des Dialogfelds Rollen-Manager in SSDT definieren. Während der Modellerstellung definierte Rollen gelten für die Arbeitsbereichsdatenbank des Modells. Nachdem eine Modelldatenbank bereitgestellt wurde, können Modelldatenbankadministratoren Rollenmitglieder mithilfe von SSMS.

Grundlegendes zu Rollen

Rollen werden in der Analysis Services zum Verwalten des Modelldatenzugriffs verwendet. Die folgenden beiden Rollen stehen zur Verfügung:

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

  • Datenbankrollen. Von Modellentwicklern und Administratoren definierte Rollen, mit denen der Zugriff auf eine Modelldatenbank und Daten für Benutzer ohne Administratorrechte gesteuert wird.

Für ein tabellarisches Modell definierte Rollen sind Datenbankrollen. Das heißt, die Rollen enthalten Mitglieder, die aus Benutzern oder Gruppen bestehen, die über bestimmte Berechtigungen verfügen, die die Aktion definieren, die diese Mitglieder für die Modelldatenbank ergreifen können. Eine Rolle wird als separates Objekt in der Datenbank erstellt und gilt nur für die Datenbank, in der diese Rolle erstellt wird. Benutzer und Gruppen werden vom Modellautor in die Rolle eingeschlossen, die standardmäßig über Administratorberechtigungen für den Datenbankserver des Arbeitsbereichs verfügt. für ein bereitgestelltes Modell von einem Administrator.

Rollen in tabellarischen Modellen können mit Zeilenfiltern weiter definiert werden, die auch als Sicherheit auf Zeilenebene bezeichnet werden. Zeilenfilter verwenden DAX-Ausdrücke, um die Zeilen in einer Tabelle und die in beliebige Richtungen verknüpften Zeilen zu definieren, die vom Benutzer abgefragt werden können. Zeilenfilter, in denen DAX-Ausdrücke verwendet werden, können nur für die Leseberechtigung sowie die Lese- und Verarbeitungsberechtigung 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 weiter unten in diesem Artikel unter Zeilenfilter.

Wenn Sie ein neues tabellarisches Modellprojekt erstellen, verfügt das Projekt standardmäßig nicht über Rollen. Rollen können im Dialogfeld „Rollen-Manager“ in SSDT definiert werden. Wenn Rollen während der Modellerstellung definiert werden, werden sie auf die Arbeitsbereichsdatenbank des Modells angewendet. Bei der Bereitstellung des Modells werden die gleichen Rollen auf das bereitgestellte Modell angewendet. Nachdem ein Modell bereitgestellt wurde, können Mitglieder der Serverrolle ([Analysis Services-Administrator) und Datenbankadministratoren die rollen, die dem Modell zugeordnet sind, und die Mitglieder, die den einzelnen Rollen zugeordnet sind, mithilfe von SSMS.

Berechtigungen

Die in diesem Abschnitt beschriebenen Rollenberechtigungen gelten nur für Azure Analysis Services SQL Server Analysis Services. In Power BI werden Berechtigungen für das Dataset definiert. Weitere Informationen finden Sie unter Verwalten des Datasetzugriffs.

Jede Rolle verfügt über eine einzelne definierte Datenbankberechtigung (außer der kombinierten Lese- und Verarbeitungsberechtigung). Standardmäßig besitzt eine neue Rolle die Berechtigung "Keine". Wenn Mitglieder daher der Rolle mit der Berechtigung „Keine“ hinzugefügt werden, sind sie nicht in der Lage, Änderungen an der Datenbank vorzunehmen, einen Verarbeitungsvorgang auszuführen, Daten abzufragen oder die Datenbank anzuzeigen, sofern ihnen keine andere Berechtigung erteilt wird.

Eine Gruppe oder ein Benutzer kann Mitglied einer beliebigen Anzahl von Rollen sein, jede Rolle mit einer anderen Berechtigung. Wenn ein Benutzer Mitglied mehrerer Rollen ist, sind die für jede Rolle definierten Berechtigungen kumulativ. Wenn ein Benutzer z. B. Mitglied einer Rolle mit der Leseberechtigung und zusätzlich Mitglied einer Rolle mit der Berechtigung "Keine" ist, verfügt dieser Benutzer über Leseberechtigungen.

Für jede Rolle kann eine der folgenden Berechtigungen definiert werden:

Berechtigungen BESCHREIBUNG Zeilenfilter mit DAX
Keine Mitglieder können keine Änderungen am Modelldatenbankschema vornehmen und keine Daten abfragen. Zeilenfilter sind nicht gültig. Benutzer in dieser Rolle können keine Daten anzeigen.
Lesen Mitglieder sind berechtigt, Daten (auf der Basis von Zeilenfiltern) abzufragen, sie können die Modelldatenbank in SSMS jedoch nicht anzeigen und keine Änderungen am Modell-Datenbankschema vornehmen, und der Benutzer kann das Modell nicht verarbeiten. Zeilenfilter können angewendet werden. Nur Daten, die in der DAX-Formel des Zeilenfilters angegeben wurden, sind für Benutzer sichtbar.
Lesen und Verarbeiten Mitglieder können Daten (basierend auf Filtern auf Zeilenebene) abfragen und Verarbeitungsvorgänge mithilfe eines Skripts oder eines Pakets ausführen, das einen Verarbeitungsbefehl enthält, sie können jedoch keine Änderungen an der Datenbank vornehmen. Die Modelldatenbank kann nicht in der SSMS. Zeilenfilter können angewendet werden. Nur Daten können abgefragt werden, die in der DAX-Formel des Zeilenfilters angegeben wurden.
Prozess Mitglieder können Verarbeitungsvorgänge ausführen, indem sie ein Skript oder ein Paket ausführen, das einen Verarbeitungsbefehl enthält. Das Modelldatenbankschema kann nicht geändert werden. Daten können nicht abgefragt werden. Die Modelldatenbank kann nicht in der SSMS. Zeilenfilter sind nicht gültig. Daten können mit dieser Rolle nicht abgefragt werden
Administrator Mitglieder können Änderungen am Modellschema ausführen und alle Daten im Modell-Designer, berichtserstellungsclient und SSMS. Zeilenfilter sind nicht gültig. Sämtliche Daten können mit dieser Rolle abgefragt werden

Zeilenfilter

Zeilenfilter, in der Regel als Sicherheit auf Zeilenebene inPower BI, 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 den Berechtigungen „Lesen“ und „Lesen und Verarbeiten“ definiert werden. Wenn ein Zeilenfilter nicht für eine bestimmte Tabelle definiert ist, sind Mitglieder einer Rolle, die über die Leseberechtigung bzw. die Lese- und Verarbeitungsberechtigung verfügt, standardmäßig in der Lage, alle Zeilen in der Tabelle abzufragen, es sei denn, ein Kreuzfilter von einer anderen Tabelle ist aktiv.

Sobald ein Zeilenfilter für eine bestimmte Tabelle definiert wurde, werden die Zeilen, die von Mitgliedern dieser spezifischen Rolle abgefragt werden können, durch eine DAX-Formel definiert, die den Wert TRUE oder FALSE ergeben muss. Nicht in die DAX-Formel eingeschlossene Zeilen können nicht abgefragt werden. Beispielsweise kann die Tabelle Customers mit dem folgenden Zeilenfilterausdruck =Customers [Country] = "USA" für Mitglieder der Sales-Rolle nur Kunden in den USA sehen.

Zeilenfilter gelten für die angegebenen sowie für verknüpfte Zeilen. Wenn eine Tabelle über mehrere Beziehungen verfügt, wird die Sicherheit für die aktive Beziehung mithilfe von Filtern gewährleistet. Für Zeilenfilter und Zeilenfilter, die für verknüpfte Tabellen definiert wurden, wird eine Schnittmenge gebildet. Beispiel:

Tabelle DAX-Ausdruck
Region =Region[Country]="USA"
ProductCategory =ProductCategory[Name]="Bicycles"
Transaktionen =Transactions[Year]=2020

Der Nettoeffekt dieser Berechtigungen für die Tabelle Transaktionen ist, dass Mitglieder Datenzeilen abfragen dürfen, in denen sich der Kunde in den USA befindet und die Produktkategorie Bicycles 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 ausgeführt wurden, es sei denn, sie sind Mitglied einer anderen Rolle, die diese Berechtigungen erteilt.

Mit dem Filter =FALSE() können Sie den Zugriff auf alle Zeilen für eine gesamte Tabelle verweigern.

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

Dynamische Sicherheit

Dynamische Sicherheit bietet eine Möglichkeit, sicherheit auf Zeilenebene basierend auf dem Benutzernamen des aktuell angemeldeten Benutzers oder der CustomData-Eigenschaft zu definieren, die von einer Verbindungszeichenfolge zurückgegeben wird. Um dynamische Sicherheit zu implementieren, müssen Sie eine Tabelle mit Anmeldewerten (Windows-Benutzername) für Benutzer in das Modell einschließen. Ebenfalls erforderlich ist ein Feld, das verwendet werden kann, um eine bestimmte Berechtigung zu definieren; z. B., eine Tabelle "dimEmployees" mit einer Anmelde-ID (domäne\benutzername) sowie einem Abteilungswert für jeden Mitarbeiter.

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 "domäne\benutzernamen" des aktuell angemeldeten Benutzers zurück.
CUSTOMDATA-Funktion (DAX) Gibt die CustomData-Eigenschaft in einer Verbindungszeichenfolge zurück.

Sie können die LOOKUPVALUE-Funktion zur Rückgabe von Werten für eine Spalte verwenden, in der der Windows-Benutzername der Gleiche ist wie derjenige, der von der USERNAME-Funktion zurückgegeben wurde oder einer Zeichenfolge entspricht, die von der CustomData-Funktion zurückgegeben wurde. Abfragen können dann eingeschränkt werden, wenn die von LOOKUPVALUE zurückgegebenen Werte Werten in der gleichen oder einer verknüpften Tabelle entsprechen.

Es wird z. B. die folgende Formel verwendet:

='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, wobei dimEmployees[LoginId] mit der LoginID des aktuell angemeldeten Benutzers identisch ist, die von USERNAME zurückgegeben wird, und Werte für dimEmployees[DepartmentId] sind identisch mit Werten für dimDepartment[DepartmentId]. Die von LOOKUPVALUE in "DepartmentId" zurückgegebenen Werte werden dann verwendet, um die in der Tabelle "dimDepartment" abgefragten Zeilen und alle nach "DepartmentId" verknüpften Tabellen einzuschränken. Es werden nur Zeilen zurückgegeben, bei denen "DepartmentId" auch in den Werten für "DepartmentId" enthalten sind, die von der LOOKUPVALUE-Funktion zurückgegeben wurden.

dimEmployees

LastName FirstName Loginid DepartmentName DepartmentId
Brown Kevin Adventure-works\kevin0 Marketing 7
Bradley David Adventure-works\david0 Marketing 7
Dobney JoLynn Adventure-works\JoLynn0 Bereitstellung 4
Baretto DeMattos Paula Adventure-works\Paula0 Personalabteilung 2

dimDepartment

DepartmentId DepartmentName
1 Unternehmen
2 Geschäftsführung und Verwaltung
3 Bestandsmanagement
4 Fertigung
5 Qualitätssicherung
6 Forschung und Entwicklung
7 Vertrieb und Marketing

Testen von Rollen

Beim Erstellen eines Modellprojekts in Visual Studio können Sie die Funktion In Excel analysieren verwenden, um die Effektivität der von Ihnen definierten Rollen zu testen. Wenn Sie im Menü Modell im Modell-Designer auf In Excel analysieren klicken, 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, um darüber eine Verbindung mit dem Arbeitsbereichsmodell als Datenquelle herzustellen. Weitere Informationen finden Sie unter In Excel analysiereninstalliert sein.

Skriptrollen

Rollen für bereitgestellte Modelle und Datasets können mithilfe der Tabular Model Scripting Language (TMSL) skriptiert werden, um das Roles-Objekt zuerstellen oder zu ändern. TMSL-Skripts können in SSMS oder über das PowerShell-Cmdlet Invoke-ASCmd ausgeführt werden.

Weitere Informationen

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