SAP_ALL in 5 Minuten nur mit DEBUG/REPLACE
Autor: Tobias Harmes | 28. Oktober 2023
Ich bekomme oft Fragen dazu, wieso die Berechtigung S_DEVELOP mit DEBUG/REPLACE denn so schlimm sei. Das erkläre ich dann oft mit Hinweisen auf die Pflicht zur ordnungsgemäßen Buchführung. Aber der Aha-Effekt stellt sich leider oft erst ein, wenn ich es zeige. Daher als Video und Beitrag zum Teilen an alle, die diese kritische Berechtigung immer noch im SAP-System haben: Wie kann ich mir allein mit der Berechtigung DEBUG/REPLACE ein SAP_ALL verschaffen.
Eins vorweg: diese Anleitung bringt auf den Punkt, was ich (und andere) oft umständlich erklären müssen: Kein Anwender darf DEBUG/REPLACE-Berechtigungen im Produktions-SAP System haben. Das ist eine Entwicklerberechtigung. Wie man diese Berechtigung schnell los wird, steht in dem Beitrag Mit PFCGMASSVAL Berechtigung DEBUG/REPLACE aus SAP Rollen entfernen.
Als Video
YOUTUBE-CHANNEL abonnieren: https://www.youtube.com/c/Rz10De_ms
SAP_ALL nur durch DEBUG/REPLACE – als Schritt für Schritt Anleitung
Mit meinem Testuser habe ich lediglich die Berechtigung S_DEVELOP mit Objekttyp DEBUG und die Aktivität 02 (Änderungsaktivität) und 03. Wenn ich damit die Transaktion SU01 öffnen will, wird mir angezeigt, dass ich keine Berechtigung dafür habe.
Um das zu ändern, gehe ich den DEBUG-Modus. Den kann ich mit der Eingabe von „/hs“ (DEBUG mit Systemaufruf) in das OK-Code-Feld aufrufen und aktivieren.
Wenn ich dann die SU01 öffne, komme ich automatisch in die Debugger-Ansicht. Dort könnte ich alles Schritt-für-Schritt durchgehen, ich möchte aber eine bequemere Variante: Ich möchte das SAP anweisen, das Programm ablaufen zu lassen und an der Stelle zu stoppen, an der eine Berechtigungsprüfung stattfindet. Schlüsselwort ist hier der ABAP-Befehl AUTHORITY-CHECK. Daher setze ich entsprechende Breakpoints über das „Stop“-Icon.
Zusätzlich brauche ich den Funktionsbaustein AUTH_CHECK_TCODE (Reiter-Funktion). Den benötige ich, da ich momentan weder die Berechtigung auf die Transaktion, noch darauf, dass ich in der Transaktion etwas machen kann.
Der Debugger läuft dann durch und stoppt bei der ersten Berechtigungsprüfung. Ich gehe zum Ende der aktuellen Funktion und mache einen Rechtsklick auf „Springe zur Anweisung“ und die gesamte Prüfung wird übersprungen. Diese Funktion „Springe zur Anweisung“ steht mir nur zur Verfügung, weil ich eben S_DEVELOP mit DEBUG und Aktivität 02 habe.
Schon bin ich – nur mit der Berechtigung DEBUG/REPLACE – in der Transaktion SU01. Zum Ziel, den SAP_ALL zu bekommen, sind nur noch wenige weitere Schritte nötig.
Überprüfen Sie Ihr System auf kritische Berechtigungen
Sollten Sie zu den Unternehmen gehören, die sich nicht sicher sind, welche Berechtigungen kritisch für Sie sind, dann melden Sie sich gerne bei mir.
In der Benutzerpflege trage ich meinen User ein und klicke auf „Ändern“. Wieder öffnet sich der Debugger, ich scrolle an AUTHORITY-CHECKs vorbei und erneut am Ende der Funktion auf „Springe zur Anweisung“ und anschließend auf „Weiter“.
Daraufhin öffnet sich der User. Unter „Profile“ bekomme ich erneut eine Ausgabe, die ich mit „Springe zur Anweisung“ und „Weiter“ übergehe. Im Benutzer-Profile kann ich mir dann SAP-ALL zuordnen:
Bei der darauffolgenden Prüfung klicke ich erneut auf „Springe zur Anweisung“ + „Weiter“ und speichere alles ab.
Fazit
Mit der Berechtigung DEBUG/REPLACE kann man also in wenigen Minuten an SAP_ALL kommen. Wenn ihr mal argumentieren müsst, wieso diese Berechtigung also unbedingt im Produktivsystem zu vermeiden ist, könnt ihr diesen Beitrag gerne teilen.
2 Kommentare zu "SAP_ALL in 5 Minuten nur mit DEBUG/REPLACE"
Zur Aussage “Eins vorweg: …….: kein Anwender darf DEBUG/REPLACE-Berechtigungen im SAP haben. “:
Hier sollte noch ” in SAP-Produktivsystemen” ergänzt werden, denn ein Entwickler (=Anwender) muss in Entwicklungssystemen diese Berechtigung haben.
Unter FAZIT hat man dies korrekt beschrieben.
Dem stimme ich zu, ich habe das ergänzt. Danke für den Hinweis!
Viele Grüße
Tobias Harmes