Wirkung offener Berechtigungsfelder in Rollen

Wie wirken sich gelbe Berechtigungsfelder in Rollen auf Berechtigungen aus

Oft trifft man auf Rollen, die zwangsweise generiert wurden. D.h. es waren vor der Generierung noch gelbe Felder in der Rolle und es wurde die Generierung erzwungen. Die Frage ist, welche Auswirkungen das auf die Berechtigung des Benutzers hat.

Lassen Sie mich das an einigen Beispielen erklären:
Sie können die Beispiele an Hand von Variationen des folgenden ABAPs nachvollziehen.

REPORT ZKLUE_TEST1.
AUTHORITY-CHECK OBJECT ‚P_ORGIN‘
ID ‚AUTHC‘ FIELD ‚R‘
ID ‚INFTY‘ FIELD ‚0002‘
ID ‚PERSA‘ FIELD ‚*‘
ID ‚PERSG‘ DUMMY
ID ‚PERSK‘ FIELD ‚*‘
ID ‚SUBTY‘ FIELD ‚*‘
ID ‚VDSK1‘ FIELD ‚*‘.
if ( sy-subrc ne 0 ).
write: ‚error‘.
endif.

Sie bauen nun eine Rolle, die folgendes P_ORGIN-Objekt beinhaltet:

Berechtigungsfelder
Quelle: SAP®

Durch die Abfrage ID ‚PERSG‘ DUMMY ist das Ergebns SY-SUBRC = 0!!

Wäre das Objekt nun aber mit ID ‚PERSG‘ FIELD ‚*‘ bewertet, ergäbe sich ein RC=04, da zwar das Feld PERSG abgefragt wurde, da das Feld in der Rolle aber nicht gefüllt ist, legt das System im Benutzerpuffer einen Wert von PERSG = ‚ ‚ ab. Der Vergleich geht schief, deshalb RC=04!

Es kommt also immer darauf an, ob beim Aufruf des AUTHORITY-CHECK ein Feld abgefragt wird oder nicht. Dabei ist es auch unerheblich, ob man nun die Felder, die man nicht prüfen will, mit DUMMY programmiert oder einfach die Zeilen wegläßt, wie folgendes Beispiel zeigt.

REPORT ZKLUE_TEST1.
AUTHORITY-CHECK OBJECT ‚P_ORGIN‘
ID ‚AUTHC‘ FIELD ‚R‘
ID ‚INFTY‘ FIELD ‚0002‘
ID ‚PERSA‘ FIELD ‚*‘
ID ‚PERSG‘ FIELD ‚*‘
“ ID ‚PERSK‘ FIELD ‚*‘
ID ‚SUBTY‘ FIELD ‚*‘
“ ID ‚VDSK1‘ FIELD ‚*‘
.
if ( sy-subrc ne 0 ).
write: ‚error‘.
endif.

Fazit

Es kann also ohne weiteres vorkommen, dass eine Rolle, obwohl sie gelbe Bewertungen hat, bei der einen Transaktion funktioniert, bei einer anderen nicht. Sie müssten dann (bspw. mit RSABAPSC) die Programme auf AUTHORITY-CHECK scannen und nachsehen, wie genau der AUTHORITY-CHECK programmiert ist. Je nach Programmierung kann es dadurch zu schlimmen Seiteneffekten kommen, so dass man eigentlich von offenen (gelben) Berechtigungen in Rollen nur abraten kann.

Bitte entschuldigen Sie meinen schlechten ABAP-Programmierstiel, es handelt sich ja nur um ein Beispiel und Testobjekt 🙂

Viel Vergnügen beim Probieren
Bernd Klüppelberg

4 Responses to “Wirkung offener Berechtigungsfelder in Rollen”

  1. Hallo Bernd,

    ich glaube das ist NICHT ganz korrekt beschrieben. Ein Berechtigungsobjekt das ein gelbes Feld hat wird NICHT in das zur Rolle zugehörige Profil generiert. So weit ich weis, werden nur vollständig ausgefüllte Berechtigungsobjekte auch im Profil gespeichert.

    Gruss Holger

  2. Hallo Holger,
    dem Beispielprogramm lag eine Rolle mit genau den angezeigten gelben B-Feldern zu Grunde. Ich habe nur mit den Dummies herumgespielt und mir die Ergebnisse angeschaut.
    Dadurch bin ich zu dem Schluss gekommen. Wir können das aber gerne nochmals anders wiederholen und uns die Profile anschauen.

    Gruß
    Bernd

  3. Hallo Herr Klüppelberg,

    vielen Dank für die Erklärungen. Was trage ich aber ein, wenn das Berechtigungstrace keinen Wert für das Feld einträgt und die SU53 für das Feld anzeigt? Ich kann es dann schlecht leer lassen, da dies zu einem gelben Feld führt.

    Gruß

    Christian

  4. Hallo Christian,
    das ist Ansichtssache! Die einen tragen ein ‚ ‚ ein, andere ein “ [2 Hochkomma!], wieder andere ein ?
    Es ist eigentlich egal, was im Feld der Rolle angegeben wird, Hauptsache für die Rolle, das Feld trägt einen Wert. Ich reserviere das Zeichen ? für Felder, die ich in der Masterrolle als variabel ansehe (z.B. BUKRS, WERK etc.) andere „Leerfelder“ bewerte ich mit “.
    Ach ja das Zeichen ! bitte nicht nehmen, denn dieses Zeichen ist „von Alters her“ der sog. Rücknahmebengel, also das Zeichen, mit dem man ein Dynproinhalt im R/2 gelöscht hat. Daher auch der Name 🙂

    Viele Grüße
    Bernd

Schreiben Sie bitte einen Kommentar





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