Berechtigungstrace ST01 für die Erstellung und Ermittlung von Berechtigungen

Zur Überprüfung von notwendigen Berechtigungen hinter einer Transaktion oder eines Vorganges kann ein Berechtigungstrace (Berechtigungsaufzeichnung) verwendet werden. Der Berechtigungstrace wird über die Transaktion ST01 aufgerufen. Berechtigungen sollten im Idealfall nurnoch mit Hilfe der Trace Funktion ermittelt und vergeben werden. Man führt mit einem Benutzer der weitreichende Berechtigungen hat die Arbeitsschritte durch die berechtigt werden sollen und zeichnet diese im Trace auf. Später teilt man diese dann einer neuen Rolle zu. Mit Hilfe dieser Verfahrensweise können Berechtigungen erstellt werden, die dem Prinzip der Mindestinformation gerecht werden. Zunächst muss der Trace sowie die aufzuzeichnenden Komponenten aktiviert werden.

Im Hintergrund wird auf dem Applikationsserver eine Tracedatei auf dem Pfad „NSP/DVEBMGS00/LOG“ angelegt

In diesem Beispiel soll mit Hilfe des Excelobjekts „SAP.Functions“ eine RFC fähiger Funktionsbaustein „RFC_READ_TABLE“ aufgerufen werden. Mit der Funktion „RFC_READ_TABLE“ können beliebige Tabelleninhalte aus SAP nach Excel ausgelesen werden. Das Ziel bei der Ausführung des Funktionsbausteins ist es, zu ermitteln, welche Berechtigungsobjekte, Berechtigungsfelder sowie Berechtigungsfeldwerte der Benutzer benötigt um den Funktionsaufruf, ausführen zu können. Der Benutzer „Testuser“ hat hierbei noch keine Rolle zugewiesen bekommen und besitzt somit über keine Berechtigungen im SAP System.

Nachdem das Programm ausgeführt wird erscheint erwartungsgemäß eine Fehlermeldung, da der User über keine Berechtigung für das Aufrufen der SAP Funktion „RFC_READ_TABLE“ verfügt.

Im nächsten Schritt kann nun der im SAP System aufgezeichnete Trace aufgerufen werden. Hierzu kann die Selektion nach Benutzernamen, Mandant sowie eine mögliche Zeiteingrenzung die Ergebnisse bewusst auf ein Minimum reduzieren.

In diesem Fall schauen wir uns nur die Ergebnisse des Benutzers „Testuser“ und die Traceinformation der Berechtigungsprüfung an.

Der Report zeigt das keine Berechtigung für das Berechtigungsobjekt „S_TABU_DIS“ mit dem Berechtigungsfeld ACTVT mit dem Feldwert 03 vorhanden gewesen ist, sodass kein Zugriff möglich gewesen ist. Normalerweise wird auch das Berechtigungsobjekt „S_RFC“ geprüft während RFC Aufrufe durchgeführt werden, jedoch ist in diesem Beispiel der Profilparameter Auth/rfc_authority_check auf „0“ gesetzt worden. Der Wert sollte in einem Produktivmandanten auf „1“ gesetzt werden, da sonst der User nicht auf seine RFC Erlaubnis geprüft wird. Dies könnte dazu missbräuchlich verwendet werden, ohne eine Berechtigung auf die Transaktion SE16 (Berechtigungsobjekt S_TCODE, Berechtigungsfeld TCD, Berechtigungsfeldwert SE16) zu besitzen, sensible Unternehmensinformationen wie z.B. Kundendaten, Zahlungsdaten wie Bankverbindungen der Kunden, einzusehen indem die Tabelleninhalte über die SAP Funktion aufgerufen werden.

Mit Hilfe der gewonnen Informationen kann nun eine neue Rolle über die Transaktion PFCG mit genau dieser Berechtigung für die Tabellenpflege (Berechtigungsobjekt „S_TABU_DIS“) generiert werden, die mit Hilfe des Berechtigungstrace zuvor ermittelt wurde.

Nachdem die Berechtigungsdaten erfolgreich generiert wurden, muss die Zuordnung zum User „Testuser“ vorgenommen werden. Um die erfolgreiche Vergabe der Berechtigung zu prüfen, muss der oben durchgeführte Schritt zur Excelprogrammausführung wiederholt werden.

Die Tabelleninformationen konnten nun mit Hilfe des VBA Programmes erfolgreich abgerufen werden. Eine erneute Überprüfung des Berechtigungstrace zeigt das die Berechtigungsprüfung nun positiv gewesen ist.