Wie viele Rollen haben Sie in Ihrem SSAS-Datenmodell angelegt, um die Zugriffsrechte der Benutzer zu steuern? Bei einem unserer Kunden sind es 89. Darüber werden die Zugriffsrechte von fast 600 Anwendern verwaltet! Und jetzt beantworten Sie mal schnell die Frage: “…in welchen Rollen ist eigentlich der Anwender 08/15 zugeordnet?”
Leider ist uns bisher noch kein Tool begegnet, mit dem sich diese Frage beantworten lässt. Aber es gibt Möglichkeiten – z.B. über PowerShell oder AMO – aber dazu muss zuerst PowerShell installiert oder ein kleines Programm mit AMO geschrieben werden. Wir möchten heute einen Weg zeigen, wie man ausschließlich mit dem Management-Studio – in drei einfachen Schritten – die aufgeworfene Frage beantworten kann.
SSAS-Definition der Datenbank speichern
Zuerst müssen wir an die XML-Definition der SSAS-Datenbank kommen. Dazu reicht ein Rechtsklick auf die SSAS-Datenbank im Management Studio. Im Kontextmenü kann man dann “Script für Datenbank als” –> “Create in” –> “Datei…” auswählen. Danach erscheint ein Speichern-Dialog. Die Datei ist unter C:\Temp\SSAS-Definition.xmla abgelegt. Dieser Pfad muss dann später auch im Skript angegeben werden.
XMLA-Datei anpassen
In der Datei müssen anschließend (leider von Hand) die ersten beiden und die letzten beiden Zeilen entfernt werden. Am Anfang des Dokuments muss dann eine neue Zeile eingefügt werden:
XMLA-Datei mit Select-Statement abfragen
Im Management Studio kann jetzt mit einer Select-Abfrage die XMLA-Datei ausgelesen und die Inhalte in tabellarischer Form ausgegeben werden. Hier das Script:
Wichtig ist, dass der Pfad in der sechsten Zeile richtig angegeben wird.
Natürlich kann das Select-Statement auch um eine WHERE-Bedingung erweitert werden. Damit können dann alle Rollen ermittelt werden, zu denen der Benutzer 08/15 zugeordnet ist.