Sicherheit auf Zeilenebene (row-level security; RLS) mit Power BI

Die Sicherheit auf Zeilenebene (row-level security; RLS) mit Power BI kann zum Einschränken des Datenzugriffs für bestimmte Benutzer verwendet werden. Filter beschränken den Datenzugriff auf Zeilenebene, und Sie können Filter in Rollen definieren. Im Power BI-Dienst haben Benutzer, die Zugriff auf einen Arbeitsbereich haben, Zugriff auf die Datensätze in diesem Arbeitsbereich. RLS schränkt den Datenzugriff nur für Benutzer mit Viewer-Berechtigungen ein. Sie gilt nicht für Administratoren, Mitglieder oder Mitwirkende.

Sie können RLS für Datenmodelle konfigurieren, die mithilfe von Power BI Desktop in Power BI importiert wurden. Sie können auch RLS für Datasets konfigurieren, die DirectQuery verwenden, z. B. SQL Server. Bei Analysis Services- oder Azure Analysis Services-Liveverbindungen konfigurieren Sie die Sicherheit auf Zeilenebene im Modell, nicht in Power BI Desktop. Die Sicherheitsoption wird nicht für Liveverbindungsdatasets angezeigt.

Definieren von Rollen und Regeln in Power BI Desktop

Sie können Rollen und Regeln in Power BI Desktop definieren. Wenn Sie etwas in Power BI veröffentlichen, werden auch die Rollendefinitionen veröffentlicht.

Definition von Sicherheits-Rollen:

  1. Importieren Sie Daten in Ihren Power BI Desktop-Bericht, oder konfigurieren Sie eine DirectQuery-Verbindung.

    Hinweis

    Sie können in Power BI Desktop keine Rollen für Analysis Services-Liveverbindungen definieren. Sie müssen sie im Analysis Services-Modell definieren.

  2. Klicken Sie auf der Registerkarte Modellierung auf die Option Rollen verwalten.

    Screenshot der Registerkarte „Modellierung” mit der hervorgehobenen Option „Rollen verwalten”.

  3. Klicken Sie im Fenster Rollen verwalten auf Erstellen.

    Screenshot des Fensters „Rollen verwalten” mit der hervorgehobenen Option „Erstellen“.

  4. Geben Sie unter Rollen der Rolle einen Namen.

    Hinweis

    Sie können eine Rolle nicht mit einem Komma definieren, z. B London,ParisRole.

  5. Wählen Sie unter Tabellen die Tabelle aus, auf die eine DAX-Regel angewendet werden soll.

  6. Geben Sie im Feld Tabellenfilter-DAX-Ausdruck DAX-Ausdrücke ein. Dieser Ausdruck gibt TRUE oder FALSE als Wert zurück. Beispiel: [Entity ID] = “Value”

    Screenshot des Fensters „Rollen verwalten” mit hervorgehobenem DAX-Beispielausdruck.

    Hinweis

    Sie können username() innerhalb dieses Ausdrucks verwenden. Beachten Sie, dass username() in Power BI Desktop das Format DOMÄNE\Benutzername aufweist. Im Power BI-Dienst und im Power BI-Berichtsserver entspricht das Format dem Benutzerprinzipalnamen des Benutzers. Alternativ können Sie userprincipalname() verwenden, wodurch der Benutzer immer im Format seines Benutzerprinzipalnamens (username@contoso.com) zurückgegeben wird.

  7. Klicken Sie nach der Erstellung des DAX-Ausdrucks auf das Häkchen über dem Ausdrucksfeld, um den Ausdruck zu überprüfen.

    Screenshot des DAX-Ausdrucksfensters „Tabellenfilter” mit hervorgehobenem Häkchen.

    Hinweis

    In diesem Ausdrucksfeld trennen Sie die Argumente der DAX-Funktionen mit Kommas, auch wenn Sie ein Gebietsschema verwenden, das normalerweise Semikolon-Trennzeichen verwendet (z.B. Französisch oder Deutsch).

  8. Wählen Sie Speichern.

In Power BI Desktop ist es nicht möglich, Benutzer einer Rolle zuzuweisen. Sie können diese Zuweisung im Power BI-Dienst vornehmen. Sie können die dynamische Sicherheit in Power BI Desktop aktivieren, indem Sie username() - oder userprincipalname() -DAX-Funktionen verwenden und die richtigen Beziehungen konfigurieren.

Standardmäßig werden beim Filtern mit Sicherheit auf Zeilenebene einzelne unidirektionale Filter verwendet, unabhängig davon, ob die Beziehungen als unidirektional oder bidirektional festgelegt wurden. Sie können die bidirektionale Kreuzfilterung mit Sicherheit auf Zeilenebene manuell aktivieren, indem Sie die Beziehung auswählen und das Kontrollkästchen Sicherheitsfilter in beide Richtungen anwenden aktivieren. Beachten Sie, dass wenn eine Tabelle Teil mehrerer bidirektionaler Beziehungen ist, diese Option nur für eine dieser Beziehungen ausgewählt werden kann. Aktivieren Sie dieses Kontrollkästchen, wenn Sie auch dynamische Sicherheit auf Zeilenebene auf der Serverebene implementiert haben, bei der die Sicherheit auf Zeilenebene auf dem Benutzernamen oder der Anmelde-ID basiert.

Weitere Informationen finden Sie unter Bidirektionale Kreuzfilterung mithilfe von DirectQuery in Power BI Desktop und im Artikel Securing the Tabular BI Semantic Model (Sichern des semantischen BI-Tabellenmodells, in englischer Sprache).

Anwenden eines Sicherheitsfilters

Definieren von Rollen und Regeln in Power BI Desktop mit dem erweiterten Sicherheits-Editor auf Zeilenebene (Vorschau)

Mit dem erweiterten Sicherheits-Editor auf Zeilenebene können Sie schnell und einfach Sicherheitsrollen und Filter in Power BI Desktop definieren. Mit diesem Editor können Sie zwischen der standardmäßigen Dropdownoberfläche und einer DAX-Oberfläche umschalten. Wenn Sie etwas in Power BI veröffentlichen, werden auch die Rollendefinitionen veröffentlicht.

So definieren Sie Sicherheitsrollen mit dem erweiterten Sicherheits-Editor auf Zeilenebene:

  1. Aktivieren Sie die Vorschau, indem Sie zu „Datei > Optionen und Einstellungen > Optionen > Vorschaufunktionen“ navigieren und „Erweiterter Sicherheits-Editor auf Zeilenebene“ aktivieren.

  2. Importieren Sie Daten in Ihren Power BI Desktop-Bericht, oder konfigurieren Sie eine DirectQuery-Verbindung.

  3. Wählen Sie im Menüband Rollen verwalten aus.

    Screenshot: Schaltfläche „Rollen verwalten“ im Desktop-Menüband.

  4. Wählen Sie im Fenster Rollen verwalten die Option Neu aus, um eine neue Rolle zu erstellen.

    Screenshot: Erstellen einer neuen Rolle im erweiterten Sicherheits-Editor auf Zeilenebene.

  5. Geben Sie unter Rollen einen Namen für die Rolle an, und drücken Sie die EINGABETASTE.

    Screenshot: Umbenennen einer Rolle im erweiterten Sicherheits-Editor auf Zeilenebene.

  6. Wählen Sie unter Tabellen auswählen die Tabelle aus, auf die Sie einen Sicherheitsfilter auf Zeilenebene anwenden möchten.

  7. Verwenden Sie unter Daten filtern den Standard-Editor, um Ihre Rollen zu definieren. Die erstellten Ausdrücke geben „true“ oder „false“ als Wert zurück.

    Screenshot: Beispiel für die Verwendung des Standard-Editors im erweiterten Sicherheits-Editor auf Zeilenebene.

    Hinweis

    Nicht alle in Power BI unterstützten Sicherheitsfilter auf Zeilenebene können mit dem Standard-Editor definiert werden. Zu den Einschränkungen zählen Ausdrücke, die derzeit nur mit DAX definiert werden können, z. B. dynamische Regeln wie username() oder userprincipalname(). Um Rollen mit diesen Filtern zu definieren, müssen Sie den DAX-Editor verwenden.

  8. Wählen Sie optional Zum DAX-Editor wechseln aus, um ihre Rolle mit dem DAX-Editor zu definieren. Sie können zurück zum Standard-Editor wechseln, indem Sie Zum Standard-Editor wechseln auswählen. Alle Änderungen, die in beiden Editoroberflächen vorgenommen werden, bleiben beim Wechsel der Oberfläche nach Möglichkeit erhalten.

    Screenshot: Beispiel für die Verwendung des DAX-Editors im erweiterten Sicherheits-Editor auf Zeilenebene.

    Wenn Sie eine Rolle mit dem DAX-Editor definieren, die nicht im Standard-Editor definiert werden kann, wird beim Versuch, zum Standard-Editor zu wechseln, eine Warnung mit dem Hinweis angezeigt, dass der Wechsel des Editors dazu führen kann, dass einige Informationen verloren gehen. Um diese Informationen beizubehalten, wählen Sie Abbrechen aus, und bearbeiten Sie nur diese Rolle im DAX-Editor.

    Screenshot: Beispiel für ein Fehlerdialogfeld beim Wechsel vom DAX- zum Standard-Editor im erweiterten Sicherheits-Editor auf Zeilenebene.

  9. Wählen Sie Speichern aus.

Überprüfen der Rollen in Power BI Desktop

Nachdem Sie Ihre Rollen erstellt haben, können Sie die Ergebnisse der Rollen in Power BI Desktop testen.

  1. Klicken Sie auf der Registerkarte Modellierung auf die Option Anzeigen als.

    Screenshot der Registerkarte „Modellierung” mit der hervorgehobenen Option „Anzeigen als”.

    Das Fenster Als Rollen anzeigen wird angezeigt, in dem Sie sich die erstellten Rollen ansehen können.

    Screenshot des Fenster „Als Rolle anzeigen“ mit Auswahl von „Keine“.

  2. Wählen Sie eine von Ihnen erstellte Rolle aus. Wählen Sie dann „OK“ aus, um diese Rolle anzuwenden.

    Die Berichte rendert dann die Daten, die für diese Rolle relevant sind.

  3. Sie können auch Anderer Benutzer auswählen und einen bestimmten Benutzer angeben.

    Screenshot des Fensters „Als Rollen anzeigen“ mit einem eingegebenen Beispielbenutzer.

    Es wird empfohlen, den Benutzerprinzipalnamen (User Principal Name; UPN) anzugeben, da der Power BI-Dienst und der Power BI-Berichtsserver genau diesen verwenden.

    In Power BI Desktop zeigt die Option Anderer Benutzer nur dann unterschiedliche Ergebnisse an, wenn Sie die dynamische Sicherheit auf Ihren DAX-Ausdrücken basierend verwenden.

  4. Wählen Sie OK aus.

    Der Bericht wird basierend auf dem gerendert, was die RLS-Filter dem Benutzer erlauben zu sehen.

    Hinweis

    Das Feature „Als Rolle anzeigen“ funktioniert nicht für DirectQuery-Modelle, für die Single Sign-On (SSO) aktiviert ist.

Nachdem Sie die Überprüfung der Rollen in Power BI Desktop abgeschlossen haben, veröffentlichen Sie Ihren Bericht im Power BI Service.

Verwalten der Sicherheitseinstellungen Ihres Modells

Öffnen Sie zum Verwalten der Sicherheit ihres Datenmodells den Arbeitsbereich, in dem Sie den Bericht im Power BI Service gespeichert haben, und führen Sie die folgenden Schritte aus:

  1. Wählen Sie im Power BI-Dienst das Menü Weitere Optionen für ein DataSet aus. Dieses Menü wird angezeigt, wenn Sie auf einen DataSet-Namen zeigen. Dies gilt im Navigationsmenü ebenso wie auf der Arbeitsbereichsseite.

    Menü „Weitere Optionen“ im Arbeitsbereich

    Menü „Weitere Optionen“ im Navigationsmenü

  2. Wählen Sie Sicherheit aus.

    Auswählen von „Sicherheit“ im Menü „Weitere Optionen“

Über „Sicherheit“ gelangen Sie zur RLS-Seite, wo Sie Mitglieder einer Rolle hinzufügen können, die Sie in Power BI Desktop erstellt haben. Mitwirkende (und höhere Arbeitsbereichsrollen) wird Sicherheit angezeigt und können Benutzer einer Rolle zuweisen.

Sie können Rollen nur in Power BI Desktop erstellen oder ändern.

Arbeiten mit Mitgliedern

Hinzufügen von Mitgliedern

Sie fügen der Rolle ein Mitglied hinzu, indem Sie die E-Mail-Adresse oder den Namen des Benutzers oder der Sicherheitsgruppe eingeben. Sie können keine in Power BI erstellten Gruppen hinzufügen. Sie können Ihrer Organisation externe Mitglieder hinzufügen.

Sie können die folgenden Gruppen zum Einrichten der Sicherheit auf Zeilenebene verwenden.

  • Verteilergruppe
  • E-Mail-aktivierte Gruppe
  • Sicherheitsgruppe

Beachten Sie jedoch, dass Microsoft 365-Gruppen nicht unterstützt werden und nicht zu Rollen hinzugefügt werden können.

Hinzufügen eines Mitglieds

Anhand der Zahl in Klammern neben dem Rollennamen oder neben „Mitglieder“ können Sie zudem sehen, wie viele Mitglieder die Rolle hat.

Mitglieder in der Rolle

Entfernen von Mitgliedern

Sie können Mitglieder entfernen, indem Sie das „X“ neben ihrem Namen auswählen.

Entfernen eines Mitglieds

Überprüfen der Rolle im Power BI-Dienst

Sie können überprüfen, ob die von Ihnen definierte Rolle im Power BI Service korrekt funktioniert, indem Sie die Rolle testen.

  1. Wählen Sie Weitere Optionen (...) neben der Rolle aus.
  2. Wählen Sie Daten als Rolle testen aus.

Als Rolle testen

Sie werden zu dem Bericht weitergeleitet, der von Power BI Desktop mit diesem Dataset veröffentlicht wurde, sofern vorhanden. Dashboards sind nicht für Tests mit der Option Als Rolle testen verfügbar.

Im Seitenkopf wird die angewandte Rolle angezeigt.

Screenshot: Jetzt als „USA, Osten“ anzeigen

Testen Sie andere Rollen oder eine Kombination von Rollen, indem Sie Anzeige als auswählen.

Testen von anderen Rollen

Sie können auch Daten als eine bestimmte Person anzeigen oder eine Kombination der verfügbaren Rollen auswählen, um deren Funktion zu überprüfen.

Um zur normalen Ansicht zurückzukehren, wählen Sie Zurück zur Sicherheit auf Zeilenebene aus.

Hinweis

Das Feature „Als Rolle testen“ funktioniert nicht für DirectQuery-Modelle, für die Single Sign-On (SSO) aktiviert ist.

Verwenden der DAX-Funktion „username()“ oder „userprincipalname()“

Sie können die DAX-Funktion username() oder userprincipalname() in Ihrem Dataset verwenden. Sie können beide Funktionen in Ausdrücken in Power BI Desktop verwenden. Wenn Sie Ihr Modell veröffentlichen, wird es im Power BI-Dienst verwendet.

In Power BI Desktop gibt username() einen Benutzer im Format DOMÄNE\Benutzer und userprincipalname() einen Benutzer im Format user@contoso.com zurück.

Im Power BI-Dienst geben sowohl username() als auch userprincipalname() den Benutzerprinzipalnamen (User Principal Name, UPN) des Benutzers zurück. Dieser ähnelt einer E-Mail-Adresse.

Verwenden von RLS mit Arbeitsbereichen in Power BI

Wenn Sie Ihren Power BI Desktop-Bericht in einem Arbeitsbereich im Power BI-Dienst veröffentlichen, werden die RLS-Rollen auf Mitglieder angewendet, denen die Viewer-Rolle im Arbeitsbereich zugewiesen ist. Auch wenn Betrachter Buildberechtigungen für das Dataset erhalten, gilt weiterhin RLS. Wenn beispielsweise Viewer mit Buildberechtigungen In Excel analysieren verwenden, wird Ihre Ansicht der Daten durch RLS eingeschränkt. Arbeitsbereichs Mitglieder, denen Administrator, Mitgliedoder Mitwirkender zugewiesen werden, verfügen über die Berechtigung Bearbeiten für das DataSet, und RLS gilt daher nicht für sie. Wenn RLS auf Personen in einem Arbeitsbereich angewendet werden soll, können Sie ihnen nur die Rolle Betrachter zuweisen. Weitere Informationen finden Sie unter Rollen in Arbeitsbereichen.

Überlegungen und Einschränkungen

Hier finden Sie aktuelle Einschränkungen für die Sicherheit auf Zeilenebene für Cloudmodelle:

  • Wenn Sie bereits Rollen und Regeln im Power BI-Dienst definiert haben, müssen Sie diese in Power BI Desktop neu erstellen.
  • Sie können Sicherheit auf Zeilenebene (Row Level Security, RLS) nur auf den mithilfe von Power BI Desktop erstellten Datasets definieren. Wenn Sie RLS für mit Excel erstellte Datasets aktivieren möchten, müssen Sie Ihre Dateien zunächst in PBIX-Dateien (Power BI Desktop) konvertieren. Weitere Informationen
  • Dienstprinzipale können keiner RLS-Rolle hinzugefügt werden. Entsprechend wird RLS nicht für Apps angewendet, die einen Dienstprinzipal als endgültige effektive Identität verwenden.
  • Es werden nur Import- und DirectQuery-Verbindungen unterstützt. Live-Verbindungen zu Analysis Services werden im lokalen Modell verarbeitet.
  • Das Feature „Als Rolle anzeigen/testen“ funktioniert nicht für DirectQuery-Modelle, für die Single Sign-On (SSO) aktiviert ist.

Häufig gestellte Fragen

Frage: Was passiert, wenn ich im Power BI-Dienst bereits Rollen und Regeln für ein Dataset erstellt habe? Werden sie weiterhin funktionieren, wenn ich sie so belasse?
Antwort: Nein. Visuelle Elemente werden nicht richtig gerendert. Sie müssen die Rollen und Regeln in Power BI Desktop neu erstellen und anschließend im Power BI-Dienst veröffentlichen.

Frage: Kann ich solche Rollen für Analysis Services-Datenquellen erstellen?
Antwort: Ja. Das ist möglich, wenn Sie die Daten in Power BI Desktop importiert haben. Wenn Sie eine Liveverbindung verwenden, können Sie die RLS nicht im Power BI-Dienst konfigurieren. Dies wird im lokalen Analysis Services-Modell definiert.

Frage: Kann ich mit RLS die Spalten oder Measures beschränken, auf die Benutzer Zugriff haben?
Antwort: Nein. Wenn ein Benutzer Zugriff auf eine bestimmte Datenzeile hat, sind alle Datenspalten dieser Zeile für ihn sichtbar.

Frage: Kann ich bei RLS Detaildaten in Visuals ausblenden und Zugriff auf in Visuals zusammengefasste Daten erteilen?
Antwort: Nein. Sie sichern einzelne Datenzeilen, für die Benutzer werden jedoch immer entweder die Details oder die zusammengefassten Daten angezeigt.

Frage: Für meine Datenquelle sind bereits Sicherheitsrollen definiert (z. B. SQL Server-Rollen oder SAP BW-Rollen). Worin besteht die Beziehung zwischen diesen und RLS?
Antwort: Die Antwort hängt davon ab, ob Sie Daten importieren oder DirectQuery verwenden. Wenn Sie Daten in das Power BI-Dataset importieren, werden die Sicherheitsrollen in der Datenquelle nicht verwendet. In diesem Fall sollten Sie RLS definieren, um Sicherheitsregeln für Benutzer zu erzwingen, die in Power BI eine Verbindung herstellen. Wenn Sie DirectQuery verwenden, werden die Sicherheitsrollen in Ihrer Datenquelle verwendet. Wenn ein Benutzer einen Bericht öffnet, sendet Power BI eine Abfrage an die zugrunde liegende Datenquelle, die Sicherheitsregeln für die Daten basierend auf den Anmeldeinformationen des Benutzers anwendet.

Nächste Schritte