Stellen Sie sich vor, Sie wollen einen Bericht mit Projekten anlegen und diesen über den Power BI-Dienst an alle Mitarbeiter weitergeben. Allerdings soll jeder Mitarbeiter nur die Projekte sehen, für welche er zuständig ist! In dieser Anleitung zeige ich, wie Sie einen dynamischen Datenzugriff mit einer Rolle in Power BI erstellen können.
Los geht’s in Power BI Desktop
Beschränkungen des Datenzugriffs legen Sie immer in Power BI Desktop an. Technisch gesehen handelt es sich dabei um Filterbedingungen, welche die Datenbasis dynamisch auf bestimmte Zeilen filtern. Diese Bedingungen, welche durch DAX-Ausdrücke definiert werden, speichern Sie in sogenannten Rollen.
Lernen Sie das Beispiel kennen
Hinterlegen Sie in Ihren Daten, welcher Mitarbeiter für welches Projekt zuständig ist. Hier verwende ich ein sehr einfaches Beispiel. In der Praxis sollten Sie die Mitarbeiter natürlich in einer eigenen Tabelle hinterlegen, die Sie über Beziehungen an die Projekt-Tabelle anbinden.
Bei den E-Mail-Adressen muss es sich natürlich um die Adressen handeln, mit denen sich die Mitarbeiter im Power BI-Dienst anmelden!
Legen Sie die Rolle an
Legen Sie auf der Registerkarte Modellierung über den Befehl Rollen verwalten folgende Rolle für die Tabelle Projekte an:
Die Funktion USERPRICIPALNAME liefert im Power BI-Dienst die Anmeldeinformation des aktuellen Nutzers, also die E-Mail-Adresse. Durch diese Filterbedingung wird die Datenbasis auf jene Projekte gefiltert, welche mit der jeweils gelieferten Adresse verknüpft sind.
Falls Sie die Funktion jedoch in Power BI Desktop aufrufen (z.B. in einem Measure), erhalten Sie ein anderes Ergebnis, was hier jedoch keine Rolle spielt.
Mehr zur Funktion USERPRINCIPALNAME und zur Abgrenzung gegenüber der Funktion USERNAME lesen Sie hier.
Testen Sie die Rolle
Wenn Sie ausprobieren möchten, ob die Rolle Ihre Datenbasis korrekt filtert, können Sie das direkt Power BI Desktop tun. Wählen Sie auf der Registerkarte Modellierung den Befehl Anzeigen als. Haken Sie die Kontrollkästchen Benutzer (das ist die Rolle) und Anderer Benutzer an. Geben Sie in das Textfeld neben Anderer Benutzer beispielsweise die E-Mail-Adresse von Anton Arbeitsam an. Bestätigen Sie anschließend mit OK.
Power BI Desktop zeigt Ihnen den Bericht nun in der Rolle von Anton Arbeitsam an:
Rollen wirken sich nur im Power BI-Dienst aus. Laden Sie Ihren Bericht daher über den Befehl Veröffentlichen auf der Registerkarte Start jetzt hoch.
Weiter geht's im Power BI-Dienst
Melden Sie sich mit Ihrem Konto im Power BI-Dienst an. Nur dort können Sie den Bericht für Ihre Mitarbeiter freigeben. Bedenken Sie jedoch, dass sowohl Sie als auch Ihre Mitarbeiter eine Power BI Pro-Lizenz oder Mitglied einer Power BI Premium-Ressource sein müssen, damit Sie die folgenden Schritte ausführen können!
Eine Preisübersicht zu den beiden Lizenzmodellen finden Sie hier.
Weisen Sie der Rolle Mitglieder zu
Wählen Sie den Arbeitsbereich, in den Sie den Bericht geladen haben und klicken auf die drei Auslassungspunkte (...) neben dem Dataset. Wählen Sie im Menü den Eintrag Sicherheit.
Weisen Sie anschließend der Rolle die beiden Mitglieder zu.
Verteilen Sie den Bericht
Jetzt können Sie den Bericht an Ihre Mitarbeiter weitergeben! Wählen Sie dazu den Bericht aus und klicken Sie in der Menüleiste auf den Eintrag Freigeben und dort auf den Befehl Bericht.
Das sehen die beiden Mitarbeiter
Wenn Anton Arbeitsam nun den Bericht im Power BI-Dienst oder der Power BI-App öffnet, sieht er nur seine Projekte:
Auch für Bertold Beflissen sind nur die ihm zugewiesenen Projekte sichtbar:
Fazit
Damit jeder Mitarbeiter nur seine Projekte sieht, legen Sie in Power BI Desktop eine Rolle an. Dort schreiben Sie mit der Funktion USERPRINCIPALNAME eine Filterbedingung, welche die Datenbasis dynamisch filtert.
Im Power BI-Dienst weisen Sie der Rolle Mitglieder zu. Anschließend können Sie den Bericht an Ihre Mitarbeiter freigeben.
Einzelnachweise
- Microsoft: Einschränken des Datenzugriffs mit Sicherheit auf Zeilenebene (RLS) für Power BI Desktop, Abgerufen am 20.12.2020
- Microsoft: USERNAME Abgerufen am 20.12.2020
- Microsoft: USERPRINCIPALNAME, Abgerufen am 20.12.2020
- Lars Schreiber: Wie Du mit dynamischer Row Level Security in Power BI den Zugriff auf Deine Daten schützt, Abgerufen am 20.12.2020
- Bhawana Rathore: Difference between USERNAME() and USERPRINCIPALNAME() in Power BI Dax, Abgerufen am 20.12.2020