{"id":48570,"date":"2023-08-18T09:30:58","date_gmt":"2023-08-18T07:30:58","guid":{"rendered":"http:\/\/54.194.80.134.nip.io\/?p=48570"},"modified":"2023-09-04T18:14:38","modified_gmt":"2023-09-04T16:14:38","slug":"berechtigungen-in-power-bi-im-zusammenspiel-mit-sap-bw","status":"publish","type":"post","link":"https:\/\/www.cubeserv.com\/de\/berechtigungen-in-power-bi-im-zusammenspiel-mit-sap-bw\/","title":{"rendered":"Berechtigungen in Power BI \u2013 im Zusammenspiel mit SAP BW"},"content":{"rendered":"\t\t
Steigende Zinsen, neue regulatorische Anforderungen, Probleme in den Lieferketten \u2013 mehr denn je stehen Unternehmen vor der Herausforderung die Auswirkungen neuer Situationen rasch einsch\u00e4tzen und bei Bedarf entsprechende Ma\u00dfnahmen einleiten zu k\u00f6nnen. Vor diesem Hintergrund wird die IT-Infrastruktur vielerorts neu gedacht bzw. werden die Anforderungen neu definiert. Mehr Flexibilit\u00e4t, schnellere Zugriffszeiten, geringere Abstimmungsaufw\u00e4nde und Abh\u00e4ngigkeiten stehen dabei im Vordergrund. Neben konzeptionellen \u00dcberlegungen (siehe dazu auch den Blog-Eintrag zum Thema \u201eData Mesh<\/a>\u201c) werden dabei auch neue Datenmodellierungs- und Reporting-Werkzeuge, wie bspw. Microsofts Data Factory, Analysis Services und Power BI evaluiert.<\/p> Bei der Auswahl neuer Werkzeuge stellt sich schnell die Frage, ob und inwieweit bestehende Datenmodelle und Berechtigungslogiken integriert werden k\u00f6nnen. In der Regel wurden darin bereits viel Geld, Zeit und Nerven investiert. Einen kompletten Neuaufbau m\u00f6chte man deshalb vermeiden.\u00a0<\/p> Der heutige Blog-Eintrag widmet sich dem Thema \u201eBerechtigungen in Power BI \u2013 im Zusammenspiel mit SAP BW\u201c. Zun\u00e4chst werden dabei die wichtigsten Elemente des Power BI Berechtigungskonzepts skizziert. Anschlie\u00dfend wird eine M\u00f6glichkeit aufgezeigt, existierende BW-Analyse-Berechtigungen dynamisch in Power BI zu \u00fcbertragen \u2013 um eine Zeit- und Kostenaufw\u00e4ndige Redefinition zu vermeiden.\u00a0\u00a0<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t In Power BI l\u00e4sst sich, \u00e4hnlich zu SAP BW, zwischen Funktions- und Datenberechtigungen unterscheiden. Funktionsberechtigungen legen dabei die Objekte (Queries, Datent\u00f6pfe, etc.) fest, auf die ein Anwender berechtigt ist. Datenberechtigungen schr\u00e4nken hingegen (entsprechend der betrieblichen Funktion eines Anwenders) die darzustellende Wertemenge ein. <\/p>\n In Power BI werden die zu berechtigenden Objekte \u201eArtefakte\u201c genannt. Die wichtigsten sind: Datasets, Berichte, Arbeitsbereiche (Workspaces), Dashboards und Apps. F\u00fcr jedes Element k\u00f6nnen die berechtigten User und der Funktionsumfang (bspw. im Hinblick auf Lesen\/Bearbeiten) individuell festgelegt werden. Die Festlegung kann allerdings auch auf globaler Ebene erfolgen, bspw. \u00fcber Arbeitsbereiche. Die Berechtigungen werden dann auf die darunterliegenden Objekte vererbt. <\/p>\n Die Zuordnung der Funktionsberechtigungen setzt somit zum einen eine genaue Kenntnis \u00fcber das Beziehungsgef\u00fcge zwischen einzelnen Artefakten voraus. Zum anderen sind mit jedem Artefakt unterschiedliche Funktionen & berechtigungsbezogene Einstellungsm\u00f6glichkeiten verbunden. Die folgende Tabelle stellte diese Sachverhalte in einer \u00dcbersicht dar. <\/p>\n Arbeitsbereiche<\/span><\/p> \u00a0<\/span><\/p> \u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Container f\u00fcr die Zusammenfassung logisch zusammengeh\u00f6riger Elemente, beginnend bei den Datenquellen (Datasets) bis hin zu den Berichten, Dashboards und Apps. B\u00fcndeln die anderen Artefakten in einem gemeinsamen Bereich. Grob Vergleichbar mit einer Infoarea in SAP BW.<\/p> \u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t Auf dieser Ebene kann den Azure Active Directory-Usern (oder User-Gruppen) eine Arbeitsbereichsrolle zugeordnet werden. Diese sind bereits vordefiniert und umfassen: Administratoren, Mitglieder, Mitwirkende und Leser. Die Rollenzuordnung wirkt sich unmittelbar auf die Erstellungs-, Freigabe und \u00c4nderungsberechtigung von Datasets, Berichten, Dashboards und Apps aus.\u00a0<\/p> \u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t Datasets<\/p> \u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Container f\u00fcr ein oder mehrere Datenquellen. Die Daten k\u00f6nnen dabei sowohl physisch als auch virtuell vorliegen – je nach Zugriffsart (Import oder Live-Connection). Stellen die Basis f\u00fcr Berichte dar.\u00a0<\/p> \u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t \u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Die Berechtigungen f\u00fcr Datasets k\u00f6nnen auf zwei Wegen vergeben werden: \u00fcber die Zuweisung einer Arbeitsbereichsrolle (auf Arbeitsbereichsebene) oder auf Ebene des jeweiligen Datasets. Die Berechtigungen beziehen sich dabei auf die \u00c4nderung, die Freigabe und die Inhaltserstellung auf Basis des Datasets. Im Fall der Rollenzuweisung ergeben sich die konkreten Berechtigungen implizit aus der Rolle (rollenspezifische Abstufungen). Bei der Direktzuweisung eines Users, kann der Berechtigungsumfang dagegen individuell festgelegt werden.\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t Berichte<\/p> \u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Tabellarische und\/oder grafische Darstellung der Inhalte eines Datasets. K\u00f6nnen sowohl \u00fcber Power BI Desktop, als auch \u00fcber Power BI Service (Web) angelegt und modifiziert werden. Erm\u00f6glicht Endanwendern Self-Service-Funktionalit\u00e4t.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t \u00c4hnlich wie bei Datasets lassen sich die Berechtigungen zum Aufruf und Erstellung von Berichten auf 2 Wegen vergeben. \u00dcber die Zuordnung einer Arbeitsbereichsrolle oder der Direktzuordnung eines Users zu einem Bericht. Die Berechtigungen k\u00f6nnen dabei zum einen die Freigabe des Berichts umfassen (Erteilung Leseberechtigung f\u00fcr andere User), zum anderen die Berechtigung f\u00fcr die Inhaltserstellung (Build-Option). Dies berechtigt andere User eigene Berichte auf Basis des zugrunde liegenden Datasets zu bauen.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t Dashboards<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Zusammenfassung der Inhalte aus unterschiedlichen Berichten und Datasets. Die Einstiegsseite kann beliebig viele Kacheln & Widgets beinhalten, \u00fcber die eine Detailnavigation erfolgen kann.\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t Im Kontrast zu den anderen Artefakten (Datasets, Berichte und Dashboards), sind Apps mit einem zus. Berechtigungslayer ausgestattet. Berechtigungen k\u00f6nnen zun\u00e4chst wie bei den anderen Artefakten \u00fcber die Arbeitsbereichsrolle geerbt oder direkt zugewiesen werden. Die Direktzuweisung bietet allerdings zus. Funktionen. So lassen sich an dieser Stelle individuelle Benutzergruppen definieren. Hierin kann der Zugriff die zugrunde liegenden Berichte & Dashboards Benutzergruppen-spezifisch eingestellt werden. Aufgrund dieser Eigenschaft ist zu empfehlen Dashboards und Berichte immer \u00fcber Apps zu verteilen.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t Apps<\/p> \u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Zusammenfassung der Inhalte aus unterschiedlichen Berichten und Datasets. Die Einstiegsseite kann beliebig viele Kacheln & Widgets beinhalten, \u00fcber die eine Detailnavigation erfolgen kann.\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t Im Kontrast zu den anderen Artefakten (Datasets, Berichte und Dashboards), sind Apps mit einem zus. Berechtigungslayer ausgestattet. Berechtigungen k\u00f6nnen zun\u00e4chst wie bei den anderen Artefakten \u00fcber die Arbeitsbereichsrolle geerbt oder direkt zugewiesen werden. Die Direktzuweisung bietet allerdings zus. Funktionen. So lassen sich an dieser Stelle individuelle Benutzergruppen definieren. Hierin kann der Zugriff die zugrunde liegenden Berichte & Dashboards Benutzergruppen-spezifisch eingestellt werden. Aufgrund dieser Eigenschaft ist zu empfehlen Dashboards und Berichte immer \u00fcber Apps zu verteilen.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Nachdem nun ein \u00dcberblick \u00fcber die funktionalen Berechtigungen verschafft worden ist, werden wir uns im folgenden Abschnitt den Datenberechtigungen widmen. Ferner wird die dynamische Integration von SAP Analyse-Berechtigungen in Power-BI beleuchtet.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t In Power BI werden Datenberechtigungen \u00fcber den sog. \u201eRow-Level-Security\u201c Ansatz abgebildet. Er erm\u00f6glicht die Definition individueller Datenrollen, in denen \u00fcber DAX-Anweisungen die berechtigten Datenmenge eingeschr\u00e4nkt werden kann. Die Einschr\u00e4nkungen k\u00f6nnen sich dabei auf s\u00e4mtliche Merkmals-Felder der zugrunde liegenden Datenquellen beziehen. Auch berechnete Tabellen, die eine View auf eine andere Tabelle darstellen, k\u00f6nnen als Berechtigungsgrundlage verwendet werden \u2013 dies ist insb. f\u00fcr das sog. dynamisches RLS interessant (dazu sp\u00e4ter mehr). Das Berichtsmodell besteht in diesem Fall lediglich aus einer Datenquelle (Personalbestand). \u00dcber einen Dax-Filter werden die Merkmale \u201eGesch\u00e4ftseinheit\u201c und \u201eLand\u201c auf die zu berechtigenden Auspr\u00e4gungen eingeschr\u00e4nkt.\u00a0<\/p> W\u00e4hrend die Definition der Rollen innerhalb von \u201ePower BI Desktop\u201c erfolgt, wird die Benutzer- oder Benutzergruppenzuordnung in \u201ePower BI Service\u201c vorgenommen. Das ver\u00f6ffentlichte Dataset verf\u00fcgt dazu \u00fcber die Option \u201eSicherheit auf Zeilenebene\u201c. Hier k\u00f6nnen die entsprechenden User zugeordnet werden:\u00a0\u00a0<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Ohne eine entsprechende Zuordnung wird den Usern mit Leseberechtigung eine Fehlermeldung angezeigt.\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Achtung: Die Sicherheit auf Zeilenebene greift nicht, wenn den Benutzern eine der o.g. Arbeitsbereichsrollen (Administrator, Mitglied oder Mitwirkender) zugeordnet ist. Die Vergabe dieser Rollen sollte deshalb mit viel Bedacht und nur f\u00fcr Power-User durchgef\u00fchrt werden.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t In dem eingangs gezeigten Beispiel wurde RLS nach dem statischen Verfahren abgebildet. Dies sollte in der Praxis aus folgenden Gr\u00fcnden vermieden werden:<\/p> Aufgrund dieser Einschr\u00e4nkungen empfiehlt es sich Berechtigungen \u00fcber den dynamischen RLS-Ansatz abzubilden. Die Berechtigungstabelle wird dabei \u00fcber \u201eBeziehungen\u201c in eine Verbindung zur Datentabelle (hier \u201ePersonalbestand\u201c) gesetzt. Die Filterung der Berechtigungstabelle bewirkt somit automatisch eine entsprechende Filterung der Daten. Je nach Komplexit\u00e4t des Datenmodells, ist allerdings die Anlage zus\u00e4tzliche Berechtigungstabellen notwendig. In der Regel werden je berechtigungsrelevanten Merkmal 3 weitere Tabellen ben\u00f6tigt – die allerdings relativ schnell innerhalb von Power BI Desktop oder Analysis Services angelegt werden k\u00f6nnen. Ein konkretes Beispiel wird im folgenden Abschnitt beschrieben.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Die Ausgangsbasis des Beispiels stellt ein vereinfachtes BW-Datenmodell dar. Dieses ist in der folgenden Abbildung (links) skizziert. Es besteht aus einem Composite Provider der Personalbestandsdaten beinhaltet (K\u00f6pfe, FTE, Mitarbeiter, Org.einheiten, etc.). Die Merkmale \u201eLand\u201c und \u201eGesch\u00e4ftseinheit\u201c sind dabei als berechtigungsrelevant gekennzeichnet. Die Berechtigungen werden \u00fcber Funktions- und Datenrollen verwaltet, wobei die Datenrolle einen Verweis auf die Analyseberechtigungen enth\u00e4lt. Hier sind die zul\u00e4ssigen Auspr\u00e4gungen der beiden Merkmale hinterlegt.<\/p> \u00a0 Auf dieser Basis kann als N\u00e4chstes in Power BI Desktop das Power BI Modell angelegt werden. Hierbei werden, je nach Verbindungsvariante (Import\/Direct Query), entweder die Metadaten oder der komplette Tabelleninhalt in das Modell geladen (f\u00fcr N\u00e4heres siehe dazu auch folgenden Blog-Eintrag<\/a>). In diesem Zusammenhang ist allerdings zu beachten, dass in Power BI nicht bei jeder Verbindungsvariante Tabellen-Beziehungen und Rollen angelegt werden k\u00f6nnen. Dazu nachfolgend ein \u00dcberblick:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t SAP BW -> Power BI Desktop (Direct Query)<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t SAP BW -> Power BI Desktop (Import)<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t SAP BW -> Microsoft SQL Database -> Power BI Desktop (Import)<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t SAP BW -> Microsoft SQL Database -> Power BI Desktop (Live)<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\tDas Berechtigungskonzept von Power BI<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\tArtefakt\n
<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\tInhaltliche Beschreibung
<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\tBeziehung zu anderen Artefakten<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
Berechtigungseinstellung
<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\tAbbildung der Datenberechtigungen \u00fcber Row-Level-Security (RLS)<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
Die Folgende Abbildung zeigt ein einfaches Beispiel f\u00fcr eine Rollendefinition zur Einschr\u00e4nkung der Datenmenge:<\/span>
<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\tStatisches vs. Dynamisches Row Level Security<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
Dynamisches RLS zeichnet sich dadurch aus, dass die berechtigten Werte je Benutzer in einer eigenen Tabelle vorgehalten werden. \u00dcber die DAX-Funktion \u201eUSERPRINCIPALNAME\u201c wird bei Aufruf eines Berichts der User bestimmt und die Daten entsprechend der Berechtigungstabelle gefiltert. Dies bietet den gro\u00dfen Vorteil, dass sich der Pflegeaufwand innerhalb der Datenrollen auf wenige Anweisungen reduziert:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\tBeispielhafte Umsetzung der Integration von SAP-BW-Analyseberechtigungen in Power BI \u00fcber dynamisches RLS<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
Zur Umsetzung des dynamischen RLS-Ansatzes in Power BI bedarf es an dieser Stelle noch einer Tabelle, die f\u00fcr jeden Benutzer und berechtigungsrelevantes Merkmal die berechtigten Werte enth\u00e4lt. Diese Auflistung l\u00e4sst sich \u00fcber ein entsprechendes ABAP-Programm generieren.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\tVariante\n
<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\tDynamisches RLS unterst\u00fctzt<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t