Berechtigungsprüfung beim Start von Transaktionen in ABAP-Programmen
In vielen selbst geschriebenen Programmen werden Transaktionen oder Batch-Input Schnittstellen mit dem CALL TRANSACTION Befehl ohne weitere Zusätze aufgerufen.
Standardmäßig erfolgt in diesem Fall nur dann eine Berechtigungsprüfung, wenn in der Systemtabelle TCDCOUPLES ein entsprechender Eintrag mit der Transaktion des aufrufenden Programms definiert wurde. Dies ist in den seltensten Fällen der Fall, da diese Tabelle in der Regel nur in Abstimmung mit der Basis-Administration zu pflegen ist.
Nach neuem Sicherheitsdenken müssen jedoch auch eigene Reports und Schnittstellen besser abgesichert werden. Hierzu gibt es drei Möglichkeiten:
- Aufruf der Transaktion mit dem Zusatz WITH AUTHORITY CHECK. Hier erfolgt eine Berechtigungsprüfung auf den Transaktionscode unabhängig der Systemtabelle TCDCOUPLES.
- Einbau des Funktionsbausteins AUTHORITY_CHECK_TCODE vor Aufruf der Transaktion. Dieser Funktionsbaustein prüft alle Berechtigungen wie beim Start einer Transaktion, also das Berechtigungsobjekt S_TCODE und alle Berechtigungs-Objekte, die per Systemtabelle definiert wurden.
- Die SAP-Empfehlung für den Aufruf einer Transaktion aus ABAP-Programmen ist der Funktionsbaustein ABAP4_CALL_TRANSACTION. Dieser kann mit allen Parametern, die für Batch-Input Schnittstellen benötigt werden, sowie für den einfachen Start einer Transaktion, aufgerufen werden. Alle Berechtigungs-Prüfungen sind dort enthalten und müssen nicht zusätzlich programmiert werden.