Berechtigungsprüfung
programmieren
Der Programmierer eines Flugbuchungsprogramms möchte für eine Buchungsänderung für Geschäftskunden eine Berechtigungsprüfung durchführen.
Dazu muss der Programmierer Berechtigungsfelder anlegen (ACTVT und CUSTTYPE) und pro definiertem Feld den zu prüfenden Wert (02, B) vorgeben. Berechtigungsfelder werden über Werkzeuge ® ABAP Workbench ® Entwicklung ® Weitere Werkzeuge ® Berechtigungsobjekte ® Felder (Transaktion SU20) angelegt.
Weiterhin muss er ein Berechtigungsobjekt anlegen (hier: S_TRVL_BKS). und das Berechtigungsobjekt einer Objektklasse zuordnen.
Berechtigungsobjekte werden über Werkzeuge ® ABAP Workbench ® Entwicklung ® Weitere Werkzeuge ® Berechtigungsobjekte ® Objekte (Transaktion SU21) angelegt. Berechtigungsobjekte können auch über den Object Navigator (Transaktion SE80) angelegt werden.
Mit dem ABAP-Befehl AUTHORITY-CHECK programmiert er die Berechtigungsprüfung.
AUTHORITY-CHECK OBJECT 'S_TRVL_BKS'
ID 'ACTVT'
FIELD '02'
ID 'CUSTTYPE' FIELD 'B'.
IF SY-SUBRC <> 0.
MESSAGE E...
ENDIF.
Durch den AUTHORITY-CHECK wird geprüft, ob ein Benutzer eine ausreichende Berechtigung für eine bestimmte Aktivität hat.
Dazu wird im Stammsatz des Benutzers in den dort angegebenen Profilen nach Berechtigungen für das angegebene Berechtigungsobjekt (S_TRVL_BKS) gesucht. Wenn eine der gefundenen Berechtigungen mit den vorgegebenen Werten übereinstimmt, dann war die Prüfung erfolgreich.
Der Systemverwalter hat folgende Berechtigungen zum Berechtigungsobjekt S_TRVL_BKS definiert:
· S_TRVL_CUS1 mit folgenden Werten:
* für Kundentyp (Feld CUSTTYPE) und
03 für Aktivität (Feld ACTVT).
Benutzer, die diese Berechtigung besitzen, dürfen die Buchungen aller Kunden anzeigen (Aktivität 03 = Anzeigen).
· S_TRVL_CUS2 mit folgenden Werten:
B für Kundentyp (CUSTTYPE) und
02 für Aktivität (ACTVT).
Benutzer, die diese Berechtigung besitzen, dürfen die Buchungen aller Geschäftskunden ändern (Aktivität 02 = Ändern).
Über die Zuordnung von Profilen hat der Systemverwalter verschiedenen Benutzern unterschiedliche Berechtigungen erteilt.
Benutzer Müller erhält in seinem Stammsatz ein Profil zugeordnet, das beide Berechtigungen enthält (S_TRVL_CUS1 und S_TRVL_CUS2). Damit kann Müller eine Buchungsänderung für Geschäftskunden durchführen.
Benutzer Meyer hingegen, der ein anderes Profil nur mit der Anzeigeberechtigung (S_TRVL_CUS1) enthält, kann damit keine Änderungen durchführen.