Dynamische Ermittlung von Mitgliedern einer AD-Gruppe per SQL

Die Ver­ga­be von Benut­zer­rech­ten in einer OLAP-Daten­bank auf einem Micro­soft Ana­ly­sis Ser­ver (SSAS) kann auf unter­schied­li­che Wei­se gelöst wer­den. Es kön­nen Lese- oder Schreib­be­rech­ti­gun­gen auf die gan­ze Daten­bank, auf einen oder meh­re­re Wür­fel und Mea­su­res­groups ver­ge­ben, oder ein­zel­ne Ele­men­te einer Dimen­si­on oder Mea­su­res für den Zugriff gesperrt wer­den. Die­se Berech­ti­gun­gen wer-den für Rol­len defi­niert. In Rol­len wer­den Benut­zer mit glei­chen Benut­zer­rech­ten zusam­men­ge­fasst. Somit muss nicht für jeden ein­zel­nen Anwen­der die Berech­ti­gung sepa­rat gesetzt wer­den. Bei weni­ger kom­ple­xen Berech­ti­gungs­sze­na­ri­en kön­nen so mit eini­gen Maus­klicks die Berech­ti­gun­gen erstellt und gepflegt wer­den. Sieht das Berech­ti­gungs­sze­na­rio jedoch vor, dass jeder Anwen­der sepa­rat berech­tigt wer­den muss, weil jeder von ihnen z. B. nur sei­ne Regi­on oder sei­ne Kos­ten­stel­le sehen darf, muss für jeden Anwen­der eine eige­ne Rol­le mit den ent­spre­chen­den Berech­ti­gun­gen erstellt wer­den. Wird beim Reporting der SQL-Durch­griff zur Ana­ly­se von Beleg­da­ten genutzt, müs­sen die­se Berech­ti­gun­gen auch auf der rela­tio­na­len Daten­bank Berück­sich­ti­gung fin­den. Um sich dabei dop­pel­ten Pfle­ge­auf­wand bei der Ver­ga­be der Berech­ti­gun­gen zu erspa­ren, emp­fiehlt es sich die Berech­ti­gung gleich auf der rela­tio­na­len Schicht zu pfle­gen und die­se anschlie­ßend auto­ma­tisch an einen Berech­ti­gungs­wür­fel auf der OLAP-Daten­bank zu über­ge­ben (sie­he Bei­trag Rech­te­ver­wal­tung in SSAS – Teil 2). Oft wird die Ver­ant­wor­tung für die Berech­ti­gungs­pfle­ge an die Fach­ab­tei­lung dele­giert. Die IT-Abtei­lung stellt eine spe­zi­ell benann­te Benut­zer­grup­pe im Active-Direc­to­ry (AD) zur Ver­fü­gung, der alle Benut­zer mit Zugriff auf die BI-Anwen­dung zuge­ord­net wur­den. Die Ver­ga­be der Berech­ti­gun­gen der ein­zel­nen Benut­zer inner­halb die­ser AD-Grup­pe muss anschlie­ßend von der Fach­ab­tei­lung vor­ge­nom­men wer­den. Hier­für wer­den oft Pfle­ge­an­wen­dun­gen in Delta­Master genutzt, in denen man jedem ein­zel­nen Benut­zer z. B. sei­ne berech­tig­te Kos­ten­stel­le zuwei­sen kann. Damit die Berech­ti­gun­gen wir­ken, muss der kor­rek­te Name der Kos­ten­stel­le und der kor­rek­te Benut­zer­na­me ange­ge­ben wer­den. Dies stellt aber oft ein Pro­blem dar, da nicht immer bekannt ist, wie der genaue Benut­zer­na­me im Active-Direc­to­ry lau­tet. Um dem Pfle­gen­den bei die­ser Arbeit zu unter­stüt­zen, wäre es hilf­reich, wenn alle in der AD-Grup­pe befind­li­chen Benut­zer in einer Pfle­ge­an­wen­dung ange­zeigt wür­den und anschlie­ßend nur noch“ die berech­tig­ten Kos­ten­stel­len zuge­ord­net wer­den müss­ten. Wie eine sol­che Lis­te mit­tels einer SQL-Abfra­ge ermit­telt wer­den kann, soll die­ser Bei­trag ver­deut­li­chen.

Den gesam­ten Arti­kel kön­nen Sie hier abru­fen.

Schreibe einen Kommentar