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. 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 Die Benutzer in Ihrer Microsoft Entra-ID befinden, und benutzernamen und Gruppen müssen nach Organisations-E-Mail-Adresse oder UPN angegeben sein. Für SQL Server Analysis Services enthalten Rollen Benutzermitglieder nach Windows-Benutzername oder nach Windows-Gruppe und Berechtigungen (Lesen, Prozess, Administrator). Für Azure Analysis Services- und Power BI-Semantikmodelle müssen sich Benutzer in Azure Active Directory befinden, und die angegebenen Benutzernamen und Gruppen müssen nach Organisations-E-Mail-Adresse oder UPN angegeben sein. Für SQL Server Analysis Services enthalten Rollen Benutzermitglieder nach Windows-Benutzername oder nach Windows-Gruppe und Berechtigungen (Lesen, Prozess, Administrator).

Wichtig

Wenn Sie Visual Studio zum Erstellen von Rollen und Hinzufügen von Organisationsbenutzern zu einem tabellarischen Modellprojekt verwenden, das in 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 Leseberechtigung erstellen, der diese Benutzer angehören.

Die Informationen in diesem Artikel sind für Autoren von tabellarischen Modellen 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 verwalten (hinzufügen, bearbeiten, löschen).

Grundlegendes zu Rollen

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

  • Die Serverrolle, eine feste Rolle, die Administratorzugriff auf einen Analysis Services-Server instance ermöglicht. 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 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 diese Rolle erstellt wird. Benutzer und Gruppen werden vom Modellautor in die Rolle einbezogen, die standardmäßig über Administratorberechtigungen für den Arbeitsbereichsdatenbankserver verfügt. für ein bereitgestelltes Modell von einem Administrator.

Rollen in tabellarischen Modellen können mit Zeilenfiltern, die auch als Sicherheit auf Zeilenebene bezeichnet werden, weiter definiert 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 über keine 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 dem Modell zugeordneten Rollen und die den einzelnen Rollen zugeordneten Member mithilfe von SSMS verwalten.

Berechtigungen

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 (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, wobei jede Rolle eine andere Berechtigung hat. 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 in SSMS nicht angezeigt werden. 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 in SSMS nicht abfragt werden. Zeilenfilter sind nicht gültig. Daten können mit dieser Rolle nicht abgefragt werden
Administrator Mitglieder können Änderungen am Modellschema vornehmen und alle Daten im Modell-Designer, Berichterstellungsclient und SSMS abfragen. Zeilenfilter sind nicht gültig. Sämtliche Daten können mit dieser Rolle abgefragt werden

Hinweis

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

Zeilenfilter

Zeilenfilter, die in Power BI als Sicherheit auf Zeilenebene bezeichnet werden, 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. Für Mitglieder der Rolle "Vertrieb" kann die Tabelle Kunden mit dem folgenden Zeilenfilterausdruck = Kunden [Land] = "USA", Mitgliedern der Rolle "Vertrieb", 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, wenden Filter für die aktive Beziehung Sicherheitsfunktionen an. 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 =Transaktionen[Jahr]=2020

Die Nettoauswirkung dieser Berechtigungen auf die Tabelle Transaktionen besteht darin, dass Mitglieder Datenzeilen abfragen dürfen, bei denen sich der Kunde in den USA befindet, und die Produktkategorie Fahrräder ist und das Jahr 2020 lautet. Benutzer könnten 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 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

Die dynamische Sicherheit bietet eine Möglichkeit zum Definieren der Sicherheit auf Zeilenebene basierend auf dem Benutzernamen des derzeit angemeldeten Benutzers oder der CustomData-Eigenschaft, die von einem 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, bei der die dimEmployees[LoginId] mit der LoginID des derzeit angemeldeten Benutzers identisch ist, die von USERNAME zurückgegeben werden, und werte für dimEmployees[DepartmentId] sind identisch mit den 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 Human Resources 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 das Feature In Excel analysieren verwenden, um die Wirksamkeit der definierten Rollen zu testen. Wenn Sie im Menü Modell im Modell-Designer auf In Excel analysierenklicken, 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 semantische Modelle können mithilfe von TMSL (Tabular Model Scripting Language) geskriptet werden, um das Roles-Objekt zu erstellen 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
In Excel analysieren
USERNAME-Funktion (DAX)
LOOKUPVALUE-Funktion (DAX)
CUSTOMDATA-Funktion (DAX)