Dynamische Ermittlung von Mitgliedern einer AD-Gruppe per SQL

Die Vergabe von Benutzerrechten in einer OLAP-Datenbank auf einem Microsoft Analysis Server (SSAS) kann auf unterschiedliche Weise gelöst werden. Es können Lese- oder Schreibberechtigungen auf die ganze Datenbank, auf einen oder mehrere Würfel und Measuresgroups vergeben, oder einzelne Elemente einer Dimension oder Measures für den Zugriff gesperrt werden. Diese Berechtigungen wer-den für Rollen definiert. In Rollen werden Benutzer mit gleichen Benutzerrechten zusammengefasst. Somit muss nicht für jeden einzelnen Anwender die Berechtigung separat gesetzt werden. Bei weniger komplexen Berechtigungsszenarien können so mit einigen Mausklicks die Berechtigungen erstellt und gepflegt werden. Sieht das Berechtigungsszenario jedoch vor, dass jeder Anwender separat berechtigt werden muss, weil jeder von ihnen z. B. nur seine Region oder seine Kostenstelle sehen darf, muss für jeden Anwender eine eigene Rolle mit den entsprechenden Berechtigungen erstellt werden. Wird beim Reporting der SQL-Durchgriff zur Analyse von Belegdaten genutzt, müssen diese Berechtigungen auch auf der relationalen Datenbank Berücksichtigung finden. Um sich dabei doppelten Pflegeaufwand bei der Vergabe der Berechtigungen zu ersparen, empfiehlt es sich die Berechtigung gleich auf der relationalen Schicht zu pflegen und diese anschließend automatisch an einen Berechtigungswürfel auf der OLAP-Datenbank zu übergeben (siehe Beitrag Rechteverwaltung in SSAS – Teil 2). Oft wird die Verantwortung für die Berechtigungspflege an die Fachabteilung delegiert. Die IT-Abteilung stellt eine speziell benannte Benutzergruppe im Active-Directory (AD) zur Verfügung, der alle Benutzer mit Zugriff auf die BI-Anwendung zugeordnet wurden. Die Vergabe der Berechtigungen der einzelnen Benutzer innerhalb dieser AD-Gruppe muss anschließend von der Fachabteilung vorgenommen werden. Hierfür werden oft Pflegeanwendungen in DeltaMaster genutzt, in denen man jedem einzelnen Benutzer z. B. seine berechtigte Kostenstelle zuweisen kann. Damit die Berechtigungen wirken, muss der korrekte Name der Kostenstelle und der korrekte Benutzername angegeben werden. Dies stellt aber oft ein Problem dar, da nicht immer bekannt ist, wie der genaue Benutzername im Active-Directory lautet. Um dem Pflegenden bei dieser Arbeit zu unterstützen, wäre es hilfreich, wenn alle in der AD-Gruppe befindlichen Benutzer in einer Pflegeanwendung angezeigt würden und anschließend „nur noch“ die berechtigten Kostenstellen zugeordnet werden müssten. Wie eine solche Liste mittels einer SQL-Abfrage ermittelt werden kann, soll dieser Beitrag verdeutlichen.

Den gesamten Artikel können Sie hier abrufen.

Schreibe einen Kommentar