CiAgICA8IS0tIExpbmtlZEluIC0tPgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgIF9saW5rZWRpbl9wYXJ0bmVyX2lkID0gIjEyMzUwNzMiOwogICAgICAgIHdpbmRvdy5fbGlua2VkaW5fZGF0YV9wYXJ0bmVyX2lkcyA9IHdpbmRvdy5fbGlua2VkaW5fZGF0YV9wYXJ0bmVyX2lkcyB8fCBbXTsKICAgICAgICB3aW5kb3cuX2xpbmtlZGluX2RhdGFfcGFydG5lcl9pZHMucHVzaChfbGlua2VkaW5fcGFydG5lcl9pZCk7CiAgICA8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgKGZ1bmN0aW9uKCl7dmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07CiAgICAgICAgICAgIHZhciBiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgICAgICAgICAgIGIudHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiO2IuYXN5bmMgPSB0cnVlOwogICAgICAgICAgICBiLnNyYyA9ICJodHRwczovL3NuYXAubGljZG4uY29tL2xpLmxtcy1hbmFseXRpY3MvaW5zaWdodC5taW4uanMiOwogICAgICAgICAgICBzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGIsIHMpO30pKCk7CiAgICA8L3NjcmlwdD4KICAgIDxub3NjcmlwdD4KICAgICAgICA8aW1nIGhlaWdodD0iMSIgd2lkdGg9IjEiIHN0eWxlPSJkaXNwbGF5Om5vbmU7IiBhbHQ9IiIgc3JjPSJodHRwczovL3B4LmFkcy5saW5rZWRpbi5jb20vY29sbGVjdC8/cGlkPTEyMzUwNzMmZm10PWdpZiIgLz4KICAgIDwvbm9zY3JpcHQ+CiAgICA8IS0tIEVuZCBMaW5rZWRJbiAtLT4KICAgIA==
Generic filters
Exact matches only
Search in title
Search in excerpt
Search in content

Berechtigungen mit Untiefen

Dieser Beitrag zeigt, wie in BI-Anwendungen Berechtigungen für Anwender in unterschiedlicher Tiefe einfach abgebildet werden können, z. B. innerhalb von Vertriebsstrukturen. So kann etwa der eigene Verantwortungsbereich im Detail, andere Organisationseinheiten jedoch nur aggregiert angezeigt werden. Damit wird ein internes Benchmarking möglich, ohne Datenschutzanforderungen zu verletzen.

„Wie können Sie sicherstellen, dass unsere Mitarbeiter im Vertrieb nur die Daten ihrer eigenen Region im Detail sehen und die der anderen nur in Summe?“, so lautete jüngst die Fragestellung eines unserer Kunden. Ein Schulungsteilnehmer im Bissantz Campus formulierte es so: „Die sollen ruhig ein bisschen schwitzen, wenn sie die Zahlen ihrer Kollegen sehen!“

Aus Datenschutzgründen darf das natürlich nur aggregierte Werte betreffen und keine Details. Mit anderen Worten: Etwas internes Benchmarking ist durchaus erwünscht, doch selbstverständlich nicht mehr als erlaubt.

Widerspruch durch die Datenspeicherung

Diese Forderung steht für Data Engineers zunächst vermeintlich im Widerspruch zur bewährten Praxis der Datenspeicherung und Aggregation in dimensionalen Datenmodellen (OLAP): In der Datenbank werden die Daten stets auf der Detailebene gespeichert (z. B. beim Kunden). Die (Zwischen-)Summen auf Vertriebsgebieten und Regionen werden entlang der Dimensionshierarchien automatisch berechnet.

Beim internen Benchmarking sollen nun Anwender einzelne Zweige in der Vertriebshierarchie nicht komplett sehen dürfen, die Aggregationen hingegen schon. Den Lösungsweg dazu skizzieren wir im Folgenden am Beispiel unserer Demo-Anwendung der Chair AG.

Lösung zur Sichtbarkeit aggregierter Werte im internen Benchmarking

In unserer Beispielanwendung existieren in der Dimension Kunde die vier deutschlandweiten Vertriebsregionen Süd, Nord, Ost und West mit jeweils untergeordneten Gebieten und Postleitbereichen bis hin zu den einzelnen Kunden.

Zu Prüfzwecken berechtigen wir einen Test-User auf eine Region (Süd=1). Dies bedeutet minimalen Pflegeaufwand für den Kunden in der Praxis.

Autorisierter Test-User mit Zugang zur Region Süd (1) für Prüfzwecke, mit dem Ziel, den Pflegeaufwand für Kunden zu minimieren.Abbildung 1: Berechtigung für Test-User

Die tatsächlichen Berechtigungen werden jedoch auf der nächsthöheren Detailebene definiert (in unserer Chair-Demo: Gebiet). Die zugehörige SQL-View für die Rechte-MeasureGroup lässt sich Abbildung 2 entnehmen.

tatsächlichen Berechtigungen auf der nächsthöheren Detailebene in SQL-View für die Rechte-MeasureGroupAbbildung 2: SQL-View für die Rechte-MeasureGroup

Diese Measure wird dann in einer dynamischen Rolle in Analysis Services genutzt, wobei unter „Dimensionsdaten“ für das detaillierte Attribut (Gebiet) alle Elemente verweigert werden, für die der aktuelle Anwender nicht explizit berechtigt ist. Zudem darf die Option „Sichtbare Gesamtwerte“ NICHT aktiviert sein, damit für die höheren Ebenen (Region und Gesamt) dennoch Werte angezeigt werden (vgl. Abbildung 3).

Einstellungen der Dimensionsdaten in Analysis ServicesAbbildung 3: MSAS-Rolle

Das MDX-Statement für die „Verweigerte Elementgruppe“ in lautet wie folgt:


EXCEPT( [Kunde].[GebietID].[GebietID], 
            NonEmpty( 
                       [Kunde].[GebietID].[GebietID], 
                       (StrToMember("[User].[UserID].&[" + UserName() + "]"), 
                       [Measures].[Berechtigt] 
                       ) 
            ) 

)

So sieht das Ergebnis in DeltaMaster aus:

DeltaMaster-Ansicht der Ergebnisse: Aufschlüsselung der KundenAbbildung 4: Ergebnis in DeltaMaster

In der Filterleiste werden nur für die Region Süd die Pfeilsymbole rechts von der Elementbezeichnung angezeigt, nicht jedoch für die drei anderen Regionen weiter unten.

In Grafischen Tabellen ist die Anzeige der Plus-Symbole neben den betroffenen Regionen ohne Details weder im Editier- noch im Präsentationsmodus zu verhindern, ein Klick darauf bleibt jedoch ohne Wirkung, sodass die geforderte Sicherheit stets gewährleistet bleibt.

DeltaMaster-Ansicht: GesamtergebnisAbbildung 5: Ergebnis in DeltaMaster