Unsere Experten erläutern die dynamische, nutzerbasierte Rechteverwaltung im SSAS Tabular Mode mit Row-Filter. Der Tabular Mode bietet mehrere Möglichkeiten zur Rechteverwaltung, um Berechtigungen innerhalb eines Tabular Projects zu steuern.


Ausgangssituation

Der Tabular Mode bietet mehrere Möglichkeiten zur Rechteverwaltung, um Berechtigungen innerhalb eines Tabular Projects zu steuern. Einen Teil der Möglichkeiten werden wir kurz erläutern:

1. Rollenmanager

Sie können verschiedene Rollen anlegen und diesen Rollen Benutzer hinzufügen. Die möglichen Berechtigungen sind None, Read, Read and Process, Process und Administrator.

Hiermit wird gesteuert, ob jemand Zugriff auf das Modell hat oder nicht und ob das Modell mit aktuellen Daten befüllt werden kann.

Rollenmanager

 

2. Rollenmanager (erweitert)

 

Zusätzlich kann auf bestimmte Dimensionsinhalte eingeschränkt werden, z.B. sollen einzelne Benutzer nur Europa und andere Benutzer nur USA innerhalb der Geography-Dimension sehen dürfen.

 

Um dies zu realisieren, wird im Bereich Row Filters ein DAX Filter implementiert, der wie folgt aussehen kann:

Rollenmanager2

Beide Vorgehensweisen bieten nur eingeschränkte Möglichkeiten. In der Regel sind die Anforderungen an die Berechtigungssteuerung doch sehr viel komplexer.

Erweiterte Berechtigungssteuerung mit einer Dimension

Die Frage ist wie die Anforderung gelöst werden kann, wenn Benutzer innerhalb einer einzelnen Rolle nur Kennzahlen für bestimmte Dimensionsinhalte sehen dürfen.

Dazu implementieren wir mit Hilfe von Zeilenfiltern eine dynamische Sicherheit:

1. Es wird eine Hilfstabelle mit folgendem Aufbau benötigt, die per Excel gepflegt werden kann und idealerweise im nächtlichen ETL-Prozess in eine SQL-Datenbank geschrieben wird:

Rollenmanager3

Die Tabelle muss nun in das Datenmodell integriert werden.

2. Der nächste Schritt ist das Anlegen einer Rolle, die Zuweisung der Benutzer (DomäneBenutzername) aus der obigen Tabelle in den Bereich Members und die Anpassung des Row Filters bei der entsprechenden Dimension mit Hilfe eines DAX Filters:

Rolllenmanger4

Zu bedenken ist, dass die Anpassung des Row Filters nur bei Rollen mit „Read“ oder „Read and Process“ möglich ist.

3. Anschließend muss das Tabular Model bereitgestellt werden (Deploy). Nur wenn auch Daten in den Quellen aktualisiert wurden, muss das Modell zusätzlich noch verarbeitet werden (Process).

Erweiterte Berechtigungssteuerung mit 2 Dimensionen

Nun möchten wir die Anforderung lösen, dass Benutzer nur Zugriff auf bestimmte Sales Territory IDs haben und in Kombination dazu nur bestimmte Product Category IDs sehen dürfen. Dabei möchten wir ebenfalls nur eine Rolle verwenden.

1. Analog zur vorangegangenen Beschreibung benötigen wir auch hier eine Hilfstabelle, die wir um eine Spalte erweitern (Product Category ID).

Rollenmanager5

Der Benutzer mit der Employee ID 1 darf innerhalb der Sales Territory ID 2 alle Product Category IDs (1, 2, 3 und 4) sehen, innerhalb der Sales Territory 3 darf er nur die Product Category IDs 1 und 2 sehen und innerhalb der Sales Territory ID 4 darf er nur die Product Category 4 sehen.

Die Tabelle im Datenmodell muss aktualisiert werden, da die zusätzliche Spalte noch nicht vorhanden ist.

Zusätzlich wird die zur Benutzersteuerung benötigte Tabelle (Employee Security) für den Benutzer beim Zugriff über Excel versteckt (Hidden = TRUE), da diese nur administrativen Zwecken dient.

Rollenmanger6

 

2. Anschließend passen wir die im vorherigen Beispiel angelegte Rolle an und ändern die DAX Filter im Bereich Row Filters. Um die Anforderung umzusetzen, benötigen wir aus technischen Gründen die Product Category ID und die Sales Territory ID beide in der Faktentabelle. Die Sales Territory ID existiert bereits in der Faktentabelle und die Product Category ID erzeugen wir mit dem RELATED-Befehl.

 

Rollenmanager7

Das Ergebnis sehen wir im Modell:
Rollenmanger9
3. Nachdem das Modell bereitgestellt wurde können die Auswirkungen mit Excel überprüft werden. Dazu melden wir uns mit dem Benutzer mit der Employee ID 1 an:
Rollenmanager10

Der Benutzer sieht für die Kennzahlen innerhalb der Internet Sales Faktentabelle nur die Dimensionselemente, für die er berechtigt ist. Er ist z.B. auch dazu berechtigt Sales Territory ID 2 in Kombination mit Product Category ID 2 zu sehen, dafür gibt es aber keine Werte.

Weiteres