SAPDie SAP SE mit Sitz im baden-württembergischen Walldorf ist ein… Datasphere bietet eine sehr einfache Möglichkeit, Datenberechtigungen zu managen über Data Access Controls. Damit wird gesteuert, wer welche Dateninhalte sehen kann.
In Projekten werden neben einfachen Berechtigungen auf Werte einer Dimension, häufig auch Berechtigungen auf Knoten einer Hierarchie benötigt. Bisher ist dies in SAP Datasphere nicht direkt möglich. In unserem Blogbeitrag zeigen wir eine Möglichkeit, wie Datenberechtigungen auf Hierarchieknoten zu vergeben werden können.
Ausgangsbasis: Unser einfaches Beispieldatenmodell
Das Schaubild zeigt das sehr einfach aufgebaute Datenmodell. Es gibt eine Tabelle mit Bewegungsdaten sowie eine Dimension Organisationseinheit, welche eine Hierarchie enthält. Die Dimension wird mit dem Analytical Dataset assoziiert. Schließlich wurde ein Analytic Model angelegt.
Das Analytic Model enthält Kennzahlen aus dem Personalbereich je Organisationseinheit. Personaldaten sind ein sehr sensibler Bereich, bei dem es wichtig ist, dass nicht alle Mitarbeiter alle Daten sehen dürfen. Daher haben die Datenberechtigungen eine besondere Bedeutung.
Natürlich könnte man in einem so einfachen Beispiel wie hier Berechtigungen für jede einzelne Organisationseinheit vergeben. Wenn man bspw. alle Daten des IT Departments sehen darf, müsste man das IT Department und alle untergeordneten Organisationseinheiten manuell berechtigen. Allerdings ist dies wenig praktikabel.
Zum Einen gibt es i.d.R. wesentlich größere Organisationen mit viel mehr Organisationseinheiten. Hier ist die Pflege schlicht zu aufwendig. Andererseits unterliegen Organisationen Veränderungen. Wenn bspw. neue Organisationen untergeordnet oder sogar welche entfernt werden, müsste dies manuell nachgepflegt werden. Kaum machbar.
Es wird also eine Lösung gesucht, bei der Knoten einer Hierarchie berechtigt werden können.
Lösungsarchitektur
In unserer Lösungsarchitektur nutzen wir die Standardfunktion der Data Access Controls und schränken die Berechtigungen auf Organisationseinheiten ein. Das Schaubild zeigt den Aufbau in unserem einfachen Beispiel:
Die Tabelle Authorization Values enthält die eigentlichen Berechtigungswerte. In der Tabelle pflegen wir allerdings keine einzelnen Organisationseinheiten, sondern möchten, dass automatisch alle untergeordneten Organisationseinheiten ebenfalls berechtigt werden.
Wir erreichen dies über den SQL View Authorized OrgUnits (SQL Script). Hierbei werden alle untergeordneten Organisationseinheiten ermittelt. Wir suchen also alle Kinder der Hierarchie. Ermöglicht wird dies über das folgende Coding:
return
WITH LT_HIER_DATA AS (
select *
from HIERARCHY_DESCENDANTS (
SOURCE HIERARCHY (
source (
select
“OrgUnit” as node_id,
“ParentOrgUnit” as parent_id
from “AuthDemoHierarchy”
)
)
)
)
SELECT C.”UserMailAdress”, A.NODE_ID AS “OrgUnit”
FROM LT_HIER_DATA AS A
INNER JOIN LT_HIER_DATA AS B
ON a.”START_RANK” = B.”START_RANK”
INNER JOIN “AuthValues” AS C
ON B.NODE_ID = C.”OrgUnit”
AND B.HIERARCHY_DISTANCE = ‘0’
AND C.”Valid_From” <= current_Date
AND C.”Valid_To” >= current_Date;
Das erste SQL-Statement gibt alle „Kinder“ Organisationseinheiten zurück zu einer Organisationseinheit einer Hierarchie. Über Start rank können die jeweiligen Kinder zugeordnet werden zu einem originären Vaterknoten. Es wird also eine Standard HANA Hierarchiefunktion verwendet. Mehr dazu hier.
Wenn wir nun unseren Berechtigungswert einschränken auf das IT Department (Nummer 14), werden automatisch alle Kinder zurückgegeben und die Data Access Controls werden beschränkt:
In SAP Analytics CloudDer Begriff Cloud stammt aus dem Englischen, zu deutsch “Wolke”…. sieht man nur noch die FTE für die berechtigten Organisationseinheiten.
Geht nicht – Gibt´s nicht
Mit SAP Datasphere erhalten Kunden mehr als graphische Views und SQL-Möglichkeiten. Durch die Basis der HANA Cloud lassen sich sehr viele Funktionen von SAP HANA verwenden. In unserem Beispiel zeigen wir, dass Berechtigungen auf Hierarchieknoten einfach herstellbar sein. Bei der Entwicklung sollte man also stets im Blick haben, was SAP HANA nicht schon mitbringt bevor man versucht komplett eigene Prozeduren oder SQL Scripts zu schreiben. Häufig gilt hierbei das Motto: Geht nicht – gibt’s nicht.
Haben wir Interesse geweckt?
Haben wir Ihr Interesse geweckt? Als ausgewählter SAP-Gold-Partner konnten wir bereits die SAP Datasphere (ehemalige SAP Data WarehouseEin Data Warehouse ist für die Ausführung, Überwachung und Steuerung… Cloud) in Kundenprojekten einsetzen.
Das könnte Sie auch interessieren
Hierarchien aus SAP BW in Datasphere abbilden: So geht’s
Wie können komplexe Hierarchien aus SAP BW in SAP Datasphere abgebildet werden? Seit der Einführung der Funktion „Hierarchien mit Verzeichnis“ ist dies keine Herausforderung mehr. Inhaltsverzeichnis 1.) Der Use...
How-To: So gelingt der Datentransfer zwischen SAP Datasphere und Python via hdbcli
Über das Python Paket hdbcli kann auf Daten in der SAP Datasphere zugegriffen werden, sodass komplexe Advanced-Analytics-Use Cases umgesetzt werden können. Das Paket wird direkt von SAP betreut, weshalb...
Christopher Kampmann
Senior Manager
SAP Information Management
christopher.kampmann@isr.de
+49 (0) 151 422 05 448