Suchstrategien, wenn der PFCG zu langsam ist…

Andere Suchstrategien für Rollen

Wer kennt sie nicht, die „PFCG-Pause“ oder die „SUIM-Pause“! Man ruft eine dieser Transaktionen und es braucht gefühlte Ewigkeiten bis sich die Transaktion meldet oder die Berechtigungen anzeigt. Oft gilt ähnliches für die Transaktionen in der SUIM. Für Auswertungen in Rollen, kann man aber auch andere Suchkriterien anwenden. Ein paar von diesen, möchte ich Ihnen in lockerer Folge hier zeigen.

Wie Sie wissen, sind alle Informationen der PFCG in Tabellen abgelegt. Für die Tabellenanzeige gibt es die SE16! Warum also nicht mit dieser Transaktion Auswertungen durchführen, wenn sie doch meist schneller zum Ziel führen?

 

AGR_1251

Schauen Sie sich mit der SE16 die Tabelle AGR_1251 an, und schon kommen Sie bestimmt auch auf die Idee, eine Suchanfrage der Art „In welchen Rollen steckt das Objekt xxx mit der Ausprägung yyy, genau über diese Tabelle zu tätigen.

Ja Sie können sogar eine generische Auswahl der Rollen treffen, in denen gesucht werden soll. Noch mehr, Sie können über alle Rollen eines Benutzers suchen, wenn Sie über die Zwischenablage des Rechners alle Rollen eines Benutzers kopieren, und als Suchselektion im Feld AGR_NAME diese aus der Zwischenablage aufnehmen.

In der Tabelle AGR_1251 sind eine Vielzahl von Auswertungen machbar und geben fast die gleichen Informationen, wie wenn Sie über die Transaktionen der SUIM gehen. Vor allem sind diese Abfragen meist schneller.

Ein wichtiges Feld in der AGR_1251 ist das Feld DELETED. Hier sind alle Berechtigungsobjekte markiert, die als inaktiv also gelöscht gelten. Dies sind die rot unterlegten Objekte in der PFCG, die inaktiv gesetzt wurden. Achten Sie bei Abfragen darauf, dass Sie hier mit ungleich X im Feld DELETED abfragen.

Vergessen Sie bei alledem EXCEL nicht! Kurz ein Download auf EXCEL, hiermit die Rollen 2-er Benutzer, die Sie nach einem bestimmten Berechtigungsobjekt abgemischt haben herunter kopiert, und schon haben Sie einen Überblick über die dem einen Benutzer fehlenden Rollen!

 

AGR_USERS

In dieser Tabelle sind alle einem oder mehreren Benutzern zugeordnete Rollen zu finden. Sie können sich anschauen, wer welche Rollen besitzt, Sie können aber auch umgekehrt schauen, ob allen Benutzer einer Gruppe die richtigen Rollen zugeordnet wurden. Sie sehen auch das Datum der Gültigkeit der Rollenzuordnung.

Für obiges Beispiel mit der AGR_1251 können Sie zunächst über die AGR_USERS die Rollen für einen Benutzer suchen, sie in den Zwischenspeicher nehmen und dann in der AGR_1251 im Feld AGR_NAME aufnehmen.

 

TOBJ

Oftmals wollen Sie nur wissen, welche Berechtigungsfelder ein Berechtigungsobjekt besitzt. Ein Weg ist über die PFCG eine große Rolle aufzuschlagen – meist eine Adminrolle – dann in der Berechtigungsanzeige mit <strg>F ein Berechtigungsobjekt zu suchen.
Ein weiterer schnellerer Weg ist eine Testrolle zu nehmen, und mit dem „+ Manuell“-Button, das Berechtigungsobjekt in die Rolle zu nehmen und somit die Felder zu wissen. Der einfachste und vielleicht auch schnellste Weg geht über die Tabelle TOBJ: Sie geben als Schlüssel das B-Objekt an und harren der Anzeige!

Wenn Sie nur den Feldnamen kennen und wollen wissen, in welchen B-Objekten dieser vorkommt, können Sie auch die TOBJ nehmen. Sie trägt allerdings einen kleinen Fallstrick mit sich. Die dem Objekt zugeordneten Felder werden in FIEL1, FIEL2 … abgelegt und Sie wissen die Reihenfolge der Felder nicht zu Anfang. Da hilft nur probieren. So werden Sie das Feld BEGRU wahrscheinlich nie auf der Position 1 in der TOBJ finden, aber mit Position 2 (=FIEL 2) und 3 werden Sie bestimmt fündig werden.

Vielleicht ist es eine gar nicht so schlechte Idee sich die TOBJ in Gänze auf EXCEL oder ACCESS zu laden, da hier die Filtermöglichkeiten besser sind. Allerdings müssen Sie diese Excel-Tabelle dann aber auch aktuell halten, sprich, Sie müssen eigene Z*-Berechtigungen nachpflegen!

 

Beispiel

An einem kleinen Beispiel möchte ich Ihnen zeigen, wie schnell Sie doch solche Informationen erhalten können:
Die Frage lautet: „Wer hat die Transaktion SE37“!
Gehen Sie also in die AGR_1251 und geben Sie in das Feld OBJECT S_TCODE ein. Das Feld FIELD=TCD und in LOW=SE37. Achten Sie auf den Ausschluss der inaktiven Felder.(DELETED ≠ X) .

Die Abfrage ergibt alle Rollen, die die Transaktion direkt SE37 haben.

Diese Liste können Sie nach EXCEL exportieren. Nun brauchen wir noch diejenigen Rollen die im Feld LOW mit * bewertet sind. Dies können Sie mit einer 2. Abfrage starten, in dem Sie in LOW die Einzelfeldauswahl auf = stellen und einen * eingeben.

Jetzt haben Sie 2 Listen in EXCEL, wobei die 2. Liste Ihrer Aufmerksamkeit bedarf, denn S_TCODE=* sollte nicht vorkommen :-). Die 2 Listen haben nun ggf. doppelte Einträge. Mit dem Spezialfilter in EXCEL können Sie die doppelten Einträge löschen.
Jetzt nehmen Sie alle übriggebliebenen Rollen in den Zwischenspeicher und gehen in die AGR_USERS. Dort füllen Sie mit dem Übernahmebutton aus der Zwischenablage alle Rollen in die Selektion für AGR_NAME und führen die Selektion aus.
Sie erhalten alle Benutzer-Ids der Personen, die die SE37 in dem System ausführen dürfen.
Eigentlich sind sie jetzt fertig. Evtl. brauchen Sie aber noch die Vor und Nachnamen der Benutzer. Das liefert die Tabelle USER_ADDR!
Noch ein wenig Kosmetik im EXCEL und schon haben Sie die Aufgabe erfüllt.

Das war der 1. Teil der Suchstrategie bei Rollen! Zugegeben, wenn die Transaktionen in der SUIM bei Ihnen schnell laufen, dann könnte es sein, dass Sie mit der S_BCE_68001425 „Rollen nach komplexen Suchkriterien“ ggf. schneller sind. Doch wird sich das ändern, denn Sie sehr viele Rollen unterhalten müssen.

Weitere Suchstrategien für Rollen werde ich in lockerer Folge hier präsentieren. Wenn Sie selbst derartige Schnellabfragen haben, dann geben Sie diese doch in einem Kommentar bekannt.

Bernd Klüppelberg

Schreiben Sie bitte einen Kommentar





SAP Berechtigungen, -Konzepte, -Technik | System Beratung Bernd Klüppelberg