Ermittlung aller Transaktionen mehrerer SAP Rollen
Autor: Sebastian Schmidt | 30. Dezember 2016
Bei der Überarbeitung eines SAP Berechtigungskonzepts, der Pflege von bestehenden Rollenportfolios oder schlicht bei der Suche einer passenden Rolle für eine bestimmte Berechtigungsanforderung ist es oftmals erforderlich, alle ausführbaren Transaktionen mehrerer SAP Rollen zu ermitteln.
Für die Ermittlung aller Transaktionen mehrerer Rollen gibt es verschiedene Möglichkeiten mit unterschiedlicher Ergebnisgüte. Im folgenden Beitrag werden drei Varianten vorgestellt. In den ersten beiden Abschnitten wird zunächst beschrieben, wie das Problem mittels SUIM angegangen werden kann und welche Probleme dabei potentiell auftreten. Anschließend wird erläutert, wie die Aufgabe durch die Nutzung der Transaktion SE16N gelöst werden kann. Bei beiden Varianten werden stets die Transaktionen MM01, MM02, MM03 sowie MM04 betrachtet, welche auf unterschiedlichen Wegen verschiedenen Rollen zugeordnet wurden.
Ermittlung aller Transaktionen mehrerer Rollen mittels SUIM
Diese Variante bietet sich an, wenn das zu überprüfende Rollenportfolio lediglich aus einer Rolle besteht. Die Ermittlung aller Transaktionen mehrerer Rollen erfolgt hier mittels der Transaktion SUIM.
Zunächst muss hierfür in der Transaktion SUIM die Variante “ausführbar für Rolle” ausgeführt werden. Nähreres dazu finden Sie hier.
Anschließend wird lediglich die Rolle eingetragen, dessen zugeordnete Transaktionen angezeigt werden sollen. Im Beispiel ist dies die Rolle Test_Schmidt1. Bei dieser Rolle wurden die Transaktionen MM01 und MM02 im Menü der Rolle eingepflegt.
Nach dem Ausführen der Anfrage werden nun alle Transaktionen, die sich mit der Rolle Test_Schmidt1 ausführen lassen, angezeigt.
Wird die o.g. Variante jedoch mit der Rolle Test_Schmidt2 ausgeführt, bei der die Transaktion MM03 im Menü der Rolle, die Transaktion MM04 jedoch lediglich im Berechtigungsobjekt S_TCODE der Rolle gepflegt wurde, wird folgendes Ergebnis angezeigt.
Es wird lediglich die Transaktion angezeigt, welche im Menü der Rolle gepflegt wurde. Dies liegt daran, dass die genannten Varianten in der SUIM Anfragen auf die Tabelle AGR_TCODES durchführen. Diese enthält pro Rolle ausschließlich die Transaktionen, welche im Menü der entsprechenden Rolle gepflegt wurden.
Ermittlung aller Transaktionen mehrerer Rollen mittels Rollenzuordnung und SUIM.
Möglich ist bei der Nutzung der SUIM zur Ermittlung aller Transaktionen mehrerer Rollen auch die Vorgehensweise, ausschließlich alle zu betrachtenden Rollen (hier also Test_Schmidt1 und Test_Schmidt2) zunächst einem Test-Nutzer zuzuordnen und anschließend die SUIM-Variante „ausführbar für Benutzer“ auszuführen.
Nun muss der entsprechende Test-Nutzer, dem zuvor ausschließlich alle zu betrachtenden Rollen zugeordnet wurden, in das Eingabefeld eingetragen werden.
Nach dem Ausführen der Anfrage werden nun alle Transaktionen, die der entsprechende Nutzer mit den ihm zugeordneten Rollen ausführen kann, angezeigt.
Auch hier zeigt sich jedoch, dass lediglich die Transaktionen angezeigt werden, welche im Menü der entsprechenden Rollen gepflegt wurden. Diese Variante bietet sich somit dann an, wenn das zu untersuchenden Rollenportfolio mehrere Rollen enthält, wobei alle Transaktionen im Menü der Rollen gepflegt wurden. Sollte dies nicht der Fall sein, empfiehlt sich die Nutzung der SE16N zur Ermittlung aller Transaktionen in mehreren Rollen.
Ermittlung aller Transaktionen mehrerer Rollen mittels SE16N
Diese Variante bietet sich an, wenn das zu überprüfende Rollenportfolio aus mehreren Rollen besteht, bei denen zusätzlich nicht alle enthaltenen Transaktionen im Menü der Rollen gepflegt wurden. Die Ermittlung der Transaktionen mehrerer Rollen erfolgt hier mittels der Transaktion SE16N über die Tabelle AGR_1251. Achtung: Mittels der Transaktion SE16N lassen sich Daten des SAP Systems auf Tabellenebene auslesen und über Umwege sogar bearbeiten. Deshalb sollten Berechtigungen für diese Transaktion lediglich an die SAP Basis Administratoren vergeben werden.
In der Transaktion wird zunächst die entsprechende Tabelle AGR_1251 eingetragen. Außerdem lässt sich die Begrenzung der maximalen Trefferzahl aufheben.
Anschließend werden sämtliche Rollen des zu untersuchenden Rollenportfolios eingefügt. Zusätzlich wird nach dem Berechtigungsobjekt S-TCODE gefiltert und die Ausgabe auf die Rollen sowie Objektwerte (das sind in diesem Fall die Transaktionen) beschränkt.
Nach dem Ausführen der Anfrage werden nun alle Transaktionen angezeigt, die mit den zuvor eingegebenen Rollen ausführbar sind.
Zusätzlich ist ersichtlich, durch welche Rolle jede Transaktion ausführbar ist, was bei Nutzung der SUIM in Variante 1 nicht der Fall ist. Außerdem sind hierbei auch die Transaktionen ersichtlich, die lediglich über das Berechtigungsobjekt S_TCODE zur Rolle hinzugefügt wurden.
Fazit
Es zeigt sich, dass für verschiedene Szenarien unterschiedliche Varianten zur Ermittlung aller Transaktionen mehrerer Rollen geeignet sind. Soll lediglich eine Rolle überprüft werden, bei der sämtliche Transaktionen im Menü der Rolle gepflegt wurden, bietet sich die Variante “ausführbar für Rolle” der SUIM an. Sollen alle Transaktionen mehrerer Rollen ermittelt werden, bei denen sämtliche Transaktionen im Menü der Rollen gepflegt wurden, bietet sich die Variante “ausführbar für Benutzer” der SUIM oder die Nutzung der Transaktion SE16N an. Sollen alle Transaktionen mehrerer Rollen ermittelt werden, bei denen nicht klar ist, ob sämtliche Transaktionen im Menü der Rollen gepflegt wurden, bietet sich stets die Nutzung der Transaktion SE16N an. Diese ist zwar universell einsetzbar, birgt jedoch durch die Möglichkeit der Einsicht bzw. Bearbeitung von Daten auf Tabellenebene auch erhebliche Gefahren und sollte daher mit Bedacht vergeben werden.
Welche Erfahrungen haben Sie mit der Ermittlung aller Transaktionen mehrerer Rollen gemacht? Kennen Sie weitere Varianten zur Lösung dieses Problems? Über Ihre Erfahrungen und Fragen zu diesem Thema freue ich mich sehr.
3 Kommentare zu "Ermittlung aller Transaktionen mehrerer SAP Rollen"
Vielen Dank für diesen Artikel, der auch gleichzeitig die Antwort auf die Frage eines Kollegen gibt, über welche Tabelle mit einer SAP Query Berechtigungsanalysen erfolgen können.
Als kleine Ergänzung möchte ich noch auf die Möglichkeit hinweisen anhand des Berechtigungsobjekt S_TCODE ebenfalls Rollen zu identifizieren.
SUIM->
Rollen->
Rollen nach komplexen Selektionskriterien->
nach Berechtigungswerten
oder Transaktion S_BCE_68001423
Hier kann dann ebenfalls das Berechtigungsobjekt (BO) und ein entsprechender Wert hinterlegt werden.
Leider sind hier die BO nur per UND verknüpfbar, weswegen sowohl S_TCODE als auch P_TCODE einzeln überprüft werden müssen.
Gerade im HCM Bereich wird oftmals die Berechtigungsprüfung nicht per S_TCODE sondern über P_TCODE erfolgen.
Sofern eine Transaktion im Rollenmenü hinterlegt wird, ist eine Berechtigungsvergabe erst dann erfolgt, wenn durch Abgleich auch die entsprechenden BO gefüllt sind.
Ansonsten wünsche ich nun aber einen erfolgreichen Jahreswechsel und bedanke mich, als sonst eher stiller Leser, für einige spannende Artikel und viele Anregungen.
Viele Grüße und ein schönes Wochenende
Andreas Unkelbach
Guten Tag Herr Schmidt,
danke für Ihre sehr gute Anleitung.
Nun bin ich jedoch über folgendes gestolpert:
Ich habe eine Rolle, die über SUIM 141.000 Transaktionen ergibt.
Mache ich nun die Auswertung in der SE16N erhalte ich ‘Keine Werte gefunden’. Was ich mir nicht erklären kann.
Vielleicht sind es zu viele Einträge oder liegt es an:
Im Berechtigungsobjekt S_TCODE beginnt der Eintrag mit “/*, … > was bedeutet das?
Bin gespannt auf Ihre Antwort.
Viele Grüße,
Petra Fäßler
Hallo Frau Fäßler,
so etwas passiert, wenn das Berechtigungsobjekt S_TCODE manuell gepflegt wird, und nicht über das Menü der Rolle. Dann können dort ganze Bereiche von Transaktionen angegeben werden. /* – Z* ist ein typischer Wildcard-Ersatz für “*”, was zu Recht in Audits bemängelt wird. Den Wildcard-Ersatz findet man dann nicht per Suche nach “*”, sondern nur über weitere Analysen. Zum Beispiel einer Auswertung, welche Transaktionen tatsächlich aufgerufen werden können oder wo S_TCODE aus der AGR_1251 nicht mit dem Menü der Rolle übereinstimmt (Tabelle AGR_TCODES).
Viele Grüße
Tobias Harmes