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

Diesen Artikel mit anderen teilen: Diese Icons verlinken auf Bookmark Dienste bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
  • Google Bookmarks
  • Webnews
  • Y!GG
  • Oneview
  • TwitThis
  • Facebook
  • MisterWong

One Response 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

Leave a Reply