Programmschutz und Tabellenschutz (Teil 1)

Es gibt mehrere Möglichkeiten den Zugriff auf Programme und Tabellen im R/3™ zu berechtigen.

Der „offizielle“ bzw. der vorgesehene Weg ist ein sehr aufwendiger, da man für alle Programme Berechtigungsgruppen definieren muss und mit diesen Berechtigungsgruppen dann die Rollen bewertet. In der Standardauslieferung sind aber Hunderttausende von Programmen nicht berechtigt worden, wie eine Auswertung der Tabelle TRDIR (= Tabelle aller ABAP-Programme) zeigt.

Es dürfte ein größeres Projekt sein, für all diese Programme eine Berechtigungsgruppe zu definieren und zu verteilen, so dass ein effektiver Schutz aufgebaut werden kann.

Letztlich geht es darum, wenn Benutzer mit der Transaktion SA38 Programme aufrufen dürfen, so wird für diese Programme das Berechtigungsobjekt BC_C / S_PROGRAM geprüft:
Dieses Objekt hat folgende Felder:

  • P_ACTION mit BTCSUBMIT (Batchstart), SUBMIT  (Programmausführen)  und VARIANT (Variantenpflege)
  • P_GROUP (Berechtigungsgruppe aus der Tabelle TPGP)

Es wird also die Programmberechtigungsgruppe anstatt der Programmname geprüft.

Eintragungen in die Tabelle TPGP können Sie mit der SE16 oder mit dem Report RSCSAUTH pflegen.  In der TPGP erfolgt gleichzeitig auch die Zuordnung zu einer Applikation FI,MM etc. (Tabelle TABLP). Welche Programme welchen Schutz (bzw. Berechtigungsgruppe haben, sehen Sie am Feld SECU in der Tabelle TRDIR!

D.h. Sie müssen, wenn Sie mit dieser Lösung eine effektive Berechtigungsvergabe verwalten wollen, alle rund 200.000 Programme in Applikationen und Berechtigungsgruppen packen. Diesen Vorgang müssen Sie bei jeder Neuauslieferung wiederholen bzw. auf Änderungen prüfen. Außerdem müssen alle Programme, die von Ihnen entwickelt wurden, mit in dieses Verfahren aufgenommen werden. Bei den über 200.000 Programmen habe ich nur die ermittelt, die keinen Standardeintrag in dem Feld SECU haben, und nur Reports bzw. Module darstellen.

Letztlich heimsen Sie sich eine ganze Menge Arbeit für diese Problemlösung ein.

Äquivalentes gibt es für die Tabellen
Der Zugriff auf Tabellen mit der SM30 bzw. SE16 wird ja über das Berechtigungsobjekt S_TABU_DIS geregelt. Auch hier ist neben der ACTVT auch eine Berechtigungsgruppe (DICBERCLS) mit Einträgen aus einer Tabelle der TBRG zu pflegen.
Welche Tabelle welcher Berechtigungsgruppe zugeordnet ist, sieht man am besten in der Tabelle TDDAT, hier erhält man die Information Tabellen Name <-> Gruppe.  Auch hier sind bei der Auslieferung nur wenige Gruppen gepflegt, so dass auch hier, ein ähnlich hoher Aufwand zu investieren ist.

Auch bei den Tabellen ergeben sich laufend Änderungen: Bei eigenen Tabellen muss dafür Sorge getragen werden, dass die Tabelle bei ihrer Definition schon richtig bewertet wird . Die Frage ist, wer kümmert sich darum, wer trägt Sorge darum, dass die Einteillungen nicht auseinander laufen.

Diese Lösung ist ein Berechtigungskonzept im Berechtigungskonzept. Eine Tunings-Maßnahme könnte sein, dass man alle Tabellen, die keinen Gruppeneintrag haben, auf „xxxx“ stellt, diese Gruppe niemandem zuweist, und bei einem Lasttest die jeweils adäquate Gruppe vergibt. Damit bleiben die ungenutzten Tabellen bzw. Programme außen vor, was ja ggf. auch einen Sinn haben kann. Jedenfalls stellt die Lösung über die Berechtigungsgruppen einen riesigen Aufwand dar !

Das soll mal für heute genügen, das nächste Mal eine sicherlich effizientere Lösung des Probelms, die auch von vielen Kunden angewendet wird. 🙂

Lieben Gruß

Bernd Klüppelberg

5 Responses to “Programmschutz und Tabellenschutz (Teil 1)”

  1. Hallo Bernd,
    und wieder bin ich bei der Suche auf Deine Seite gestoßen! Die Infos hier helfen sehr weiter. Vor allem wenn man so wie eben die Tabelle sucht wo die Zuordnung von Tabellen zu Berechtigungsgruppen hinterlegt ist. TDDAT

  2. Hallo Bernd,
    die Tabelle TRDIR findet man SAP ECC 6.0 nicht.. Zumindest nicht in meinem System;) ….wäre Dir für einen Tipp dankbar
    Herzlichen Dank & Grüsse
    M

  3. Hallo Maxim,
    die Tabelle TRDIR kannst Du mit der Transaktion SE16 aufrufen. Sie ist eine zentrale Tabelle des Systems. Falls Du eine Fehlermeldung erhälst, könnte es sein, dass Du keine Berechtigung hast, die Tabelle zu lesen.
    Du brauchst mindestens folgende Berechtigungen:
    S_TCODE TCD=SE16;
    S_TABU_DIS ACTVT=03;DICBERCLS= ;
    S_DEVELOP DEVCLASS=SABP;OBJTYPE=TABL;OBJNAME=TRDIR;P_GROUP= ;ACTVT=03;

    Wenn es immer noch nicht geht, dann sende mir bitte eine SU53-Auswertung, mit dem Berechtigugsfehler
    Gruß
    Bernd

  4. Finden bei meinen Suchen immer wieder diese Seite, die mir wirklich oft weiterhilft. Deshalb an dieser Stelle mal ein ganz herzlichen Dank.

  5. Hallo Frau Bials,
    herzlichen Dank

    Viele Grüße
    Bernd Klüppelberg

Schreiben Sie bitte einen Kommentar





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