Berechtigungsprüfungen
Um zu gewährleisten, dass ein Benutzer über die entsprechenden Berechtigungen verfügt, wenn er eine Aktion ausführt, unterliegen Benutzer Berechtigungsprüfungen.
Folgende Aktionen unterliegen Berechtigungsprüfungen, die noch vor dem Start eines Programms oder der Tabellenpflege stattfinden und von SAP-Anwendungen nicht umgangen werden können:
Start von Transaktionen (Berechtigungsobjekt S_TCODE
)
Start von Web-Dynpro-Anwendungen (Berechtigungsobjekt S_START
)
Start von Reports (Berechtigungsobjekt S_PROGRAM
)
Achtung
Die Berechtigungsprüfung findet nur statt, wenn das Programm einer Berechtigungsgruppe zugeordnet ist.
Aufruf von RFC-Funktionsbausteinen (Berechtigungsobjekt S_RFC
)
Generischer Tabellenzugriff (S_TABU_DIS
)
Mit der im Quelltext des Programms eingefügten ABAP-Anweisung AUTHORITY-CHECK
prüfen die Anwendungen, ob der Benutzer die entsprechenden Berechtigungen besitzt und ob diese Berechtigungen geeignet ausgeprägt sind, d.h., ob der Benutzeradministrator die vom Programmierer geforderten Werte für die Felder vergeben hat. Auf diese Weise können Sie auch Transaktionen schützen, die indirekt von anderen Programmen aufgerufen werden.
AUTHORITY-CHECK
sucht in den im Benutzerstammsatz angegebenen Profilen nach Berechtigungen für das im AUTHORITY-CHECK
angegebene Berechtigungsobjekt. Wenn eine der gefundenen Berechtigungen mit den vorgegebenen Werten übereinstimmt, ist die Prüfung erfolgreich.
Wenn ein Benutzer eine Transaktion startet, führt das System folgende Prüfungen durch:
In Tabelle TSTC
wird geprüft, ob der Transaktionscode gültig ist und ob der Systemadministrator die Transaktion gesperrt hat.
Es wird geprüft, ob der Benutzer die Berechtigung hat, die Transaktion zu starten.
Das SAP-System führt die Berechtigungsprüfungen beim Start jeder über das Menü oder die Befehlszeile aufgerufenen Transaktion durch. Indirekt aufgerufene Transaktionen sind in dieser Berechtigungsprüfung nicht enthalten. Für komplexere Transaktionen, die weitere Transaktionen aufrufen, gibt es zusätzliche Berechtigungsprüfungen.
Das Berechtigungsobjekt S_TCODE
(Transaktionsstart) enthält das Feld TCD
(Transaktionscode). Der Benutzer muss eine Berechtigung haben, die einen Wert für den ausgewählten Transaktionscode enthält.
Ist über Transaktion SE93 durch ein Berechtigungsobjekt eine zusätzliche Berechtigung für die zu startende Transaktion eingetragen, benötigt der Benutzer auch dieses entsprechend ausgeprägte Berechtigungsobjekt (TSTA
, Tabelle TSTCA
).
Wenn Sie in Transaktion SE93
eine Transaktion erstellen, haben Sie die Möglichkeit, dieser Transaktion eine zusätzliche Berechtigung zuzuweisen. Dies ist von Nutzen, wenn Sie eine Transaktion mit einer einzigen Berechtigung schützen können. Ist dies nicht der Fall, sollten Sie andere Methoden zum Schutz der Transaktion erwägen (beispielsweise AUTHORITY-CHECK
auf Programmebene).
Es wird geprüft, ob dem Transaktionscode ein Berechtigungsobjekt zugeordnet ist. Ist dies der Fall, wird geprüft, ob der Benutzer eine Berechtigung für dieses Berechtigungsobjekt besitzt.
In folgenden Fällen findet diese Prüfung nicht statt:
Sie haben (mit Transaktion SU24
) die Prüfung der Berechtigungsobjekte zur Transaktion über Prüfkennzeichen ausgeschaltet, d.h. Sie haben so ein über Transaktion SE93
eingetragenes Berechtigungsobjekt wieder aufgehoben. Bei Objekten der Bereiche SAP NetWeaver und HR können Sie die Prüfung nicht ausschalten.
Dies kann sinnvoll sein, da beim Ausführen von Transaktionen häufig eine größere Zahl von Berechtigungsobjekten geprüft wird, da im Hintergrund andere Arbeitsgebiete aufgerufen werden. Für eine erfolgreiche Prüfung müssen entsprechende Berechtigungen vorhanden sein. Dadurch erhält mancher Anwender mehr Berechtigungen als unmittelbar nötig. Außerdem bedeutet dies einen erhöhten Pflegeaufwand. Daher können Sie solche Berechtigungsprüfungen über Transaktion SU24
gezielt ausschalten.
Sie haben mit Transaktion SU24
oder Transaktion SU25
die Prüfungen der Berechtigungsobjekte global für alle Transaktionen ausgeschaltet.
Damit die mit den Transaktionen SU24
und SU25
vorgenommenen Einträge wirksam werden, müssen Sie den Profilparameter AUTH/NO_CHECK_IN_SOME_CASES
(über Transaktion RZ10
) auf Y setzen.
Damit der Benutzer die Transaktion starten kann, müssen alle obigen Prüfungen erfolgreich abgeschlossen sein. Andernfalls wird die Transaktion nicht gestartet und das System zeigt eine entsprechende Meldung an.
Diese Startberechtigungsprüfung wird inaktiv ausgeliefert. Um sie zu verwenden, müssen Sie sie aktivieren. Nach der Aktivierung können Sie über Berechtigungen gezielt steuern, welche Web-Dynpro-ABAP-Anwendungen Benutzer ausführen dürfen.
Bei der Startberechtigungsprüfung von Web-Dynpro-ABAP-Anwendungen nutzt das System das Berechtigungsobjekt S_START
analog dem Berechtigungsobjekt S_TCODE
(für Transaktionen). Das Objekt hat die Felder AUTHPGMID
, AUTHOBJTYP
und AUTHOBJNAM
, die den Schlüsselfeldern PGMID
, OBJECT
und OBJ_NAME
des Objektkatalogs (Tabelle TADIR
) entsprechen. Bei der Startberechtigungsprüfung prüft die Web-Dynpro-ABAP-Laufzeit also den Schlüssel des Objektkatalogeintrags der Web-Dynpro-ABAP-Anwendung.
Achtung
Sie müssen erst Ihre Rollen anpassen und danach die Startberechtigungsprüfung aktivieren. Andernfalls können Ihre Benutzer keine Web-Dynpro-ABAP-Anwendungen mehr ausführen, da Ihnen die entsprechenden Berechtigungen fehlen.
Weitere Informationen finden Sie in den SAP-Hinweisen 1413011
und 1413012
.
Ihre Benutzer brauchen für jede Web-Dynpro-ABAP-Anwendung und für bestimmte Anwendungskonfigurationen eine geeignete Berechtigung für das Berechtigungsobjekt S_START
, um die Anwendung zu starten. Daher müssen Sie allen Profilgeneratorrollen, deren zugeordnete Benutzer Web-Dynpro-ABAP-Anwendungen ausführen dürfen, entsprechende S_START-Berechtigungen zuweisen.
Hinweis
Fügen Sie nie Startberechtigungen manuell in Rollen ein, da hierbei eventuell vorausgesetzte Startberechtigungen nicht mit hinzugefügt werden. Automatisch werden diese Berechtigungen nur hinzugefügt, wenn Sie die Anwendung in das Menü der Rolle übernehmen.
Um Web-Dynpro-ABAP-Anwendungen und -Anwendungskonfigurationen zuordnen zu können, braucht der Administrator eine Berechtigung für das Berechtigungsobjekt S_USER_STA
mit den Feldwerten AUTHPGMID = R3TR
und AUTHOBJTYP = WDYA
für Web-Dynpro-ABAP-Anwendungen oder AUTHPGMID = R3TR
und AUTHOBJTYP = WDCA
für Web-Dynpro-ABAP-Anwendungskonfigurationen. Im Feld AUTHOBJNAM
müssen die Namen der Anwendungen oder Anwendungskonfigurationen, die der Administrator zuordnen darf, oder die Gesamtberechtigung Asterisk (*) für alle Anwendungen stehen.
Ermitteln Sie Rollen, deren Menü bereits vor den Basis-Releases 7.03 und 7.30 Web-Dynpro-ABAP-Anwendungen enthielt, mit Report RSAUTH_START_ROLES
.
Weitere Informationen finden Sie im SAP-Hinweis 1511363
.
Legen Sie von allen Rollen, die Sie bearbeiten wollen, eine Sicherheitskopie an.
Nehmen Sie die Web-Dynpro-ABAP-Anwendungen und -Anwendungskonfigurationen in das Rollenmenü auf.
Wählen Sie im Profilgenerator (Transaktion PFCG
) die zu bearbeitende Rolle aus, und wählen Sie Ändern
.
Wählen Sie auf der Registerkarte Menü
in der Dropdown-Box Knoten einfügen
den Knotentyp Web-Dynpro-Anwendung
aus.
Wählen Sie im Dialogfenster Web-Dynpro-Anwendung
die Web-Dynpro-ABAP-Anwendungen und -Anwendungskonfigurationen aus.
Tragen Sie den Namen der Anwendung in das Feld Web-Dynpro-Anwendung
ein. Sie können den Beschreibungstext verwenden, den das System automatisch einfügt, oder einen eigenen. Wenn die Anwendung verschiedene Anwendungskonfigurationen hat, können Sie eine davon im Feld Anwendungskonfiguration
auswählen.
Sichern Sie Ihre Eingaben.
Starten Sie auf der Registerkarte Berechtigungen
die Berechtigungspflege.
Der Profilgenerator hat automatisch die notwendigen S_START-Berechtigungen für alle Web-Dynpro-ABAP-Anwendungen und -Anwendungskonfigurationen mit in die Rollenberechtigungen aufgenommen.
Bearbeiten Sie noch offene Berechtigungsfelder.
Hinweis
Die Anpassung aller Rollen beansprucht eine gewisse Zeit. Damit Ihre Benutzer während der Übergangszeit weiterarbeiten können, haben Sie folgende Möglichkeiten:
Sie schalten die Startberechtigungsprüfung erst ein, wenn Sie alle Rollen angepasst haben.
Wenn Sie die Startberechtigungsprüfung schon vorab einschalten möchten (z.B. zu Testzwecken), können Sie eine Kopie der Rolle SAP_BC_WEBDYNPRO_ALL
anlegen und für die Übergangszeit allen Benutzern zuweisen, die Web-Dynpro-ABAP-Anwendungen benutzen sollen. Die Rolle enthält je eine Gesamtberechtigung für Web-Dynpro-ABAP-Anwendungen und -Anwendungskonfigurationen.
Um die Tabelle zu bearbeiten, brauchen Sie, neben den für Transaktion SM30
üblichen Berechtigungen, eine Berechtigung zum Berechtigungsobjekt S_USER_ADM
mit dem Wert PRGN_CUST
im Feld S_ADM_AREA
.
Starten Sie die Tabellenpflege (Transaktion SM30
), und tragen Sie in das Feld Tabelle/Sicht
den Tabellennamen USOBAUTHINACTIVE
ein. Wählen Sie Pflegen
.
Entfernen Sie in der Spalte Inaktiv
das Kennzeichen der Anwendungstypen R3TR WDYA
und R3TR WDCA
.
Sichern Sie Ihre Eingaben.
Sie haben die Startberechtigungsprüfung systemweit in allen Mandanten aktiviert.
Wird ein Report mit der ABAP-Anweisung SUBMIT REPORT gestartet, prüft das System das Berechtigungsobjekt S_PROGRAM
, vorausgesetzt das Programm wurde einer Programmberechtigungsgruppe in Transaktion SE38
zugeordnet.
Wenn diese Zuordnung nicht ausreichend für Ihre Systemumgebung ist, können Sie Ihre eigene Gruppenzuordnung mit dem Report RSCSAUTH
definieren. Sie müssen diese Zuordnung nach der Installation von Support Packages oder Upgrades prüfen und eine Neuzuordnung der Reports vornehmen, falls erforderlich.
Achtung
Sie können nicht alle Programme mit Programmberechtigungsgruppen schützen. Ausgewählte Systemprogramme wie RSRZLLG0
und STARTMEN
, sowie Programme, die während des Anmeldens oder mit einem SUBMIT in einem Customer-Exit, z.B. SUSR0001
und ZXUSRU01
, aufgerufen werden, können nicht mit einer Berechtigungsgruppe geschützt werden.
Hinweis
Wenn ein Report ohne eine Berechtigungsgruppe aus der Entwicklungsumgebung (z.B. über SE38
, SE80
) aufgerufen wird, prüft das System auch das Berechtigungsobjekt S_DEVELOP
mit der Aktivität 16.
Wenn RFC-Funktionsbausteine beispielsweise über RFC-Verbindungen von einem RFC-Client-Programm oder einem anderen System aus aufgerufen werden, wird im aufgerufenen System eine Berechtigungsprüfung auf das Berechtigungsobjekt S_RFC ausgeführt.
Bei dieser Prüfung wird der Name der Funktionsgruppe, zu der der Funktionsbaustein gehört, geprüft. Schlägt diese Prüfung fehl, prüft das System auch die Berechtigungen für den Namen des Funktionsbausteins.
Konfigurieren Sie diese Prüfung mit dem Parameter auth/rfc_authority_check
.
Das System kontrolliert den direkten Zugriff auf die Inhalte der Tabellen, beispielsweise mit den Transaktionen SE16
, SM30
, oder SE16N
, mit Berechtigungsprüfungen auf einer Tabellenberechtigungsgruppe, Objekt S_TABU_DIS
. Wenn keine entsprechenden Berechtigungen für die Tabellenberechtigungsgruppe existieren, prüft das System den Namen der Tabelle oder der Sicht, Objekt S_TABU_NAM
. Bei der Durchführung einer Änderung in mandantenunabhängigen Tabellen prüft das System auch die Berechtigungen für das Objekt S_TABU_CLI
.
Wenn Sie zeilenbasierte Berechtigungsprüfungen in Customizing konfiguriert haben, prüft das System auch das Berechtigungsobjekt S_TABU_LIN
.
Sie weisen Tabellen oder Sichten einer Tabellenberechtigungsgruppe mit Transaktion SE11
oder SE54
zu. Sie definieren Tabellenberechtigungsgruppen ebenfalls mit Transaktion SE54
.
Wenn Ihre Kundenentwicklung einen direkten Zugriff auf eine Tabelle implementiert, verwenden Sie den Funktionsbaustein VIEW_AUTHORITY_CHECK
für die Durchführung der Berechtigungsprüfung.
Weitere Informationen über den generischen Zugriff auf Tabellen finden Sie im SAP-Hinweis 1434284
und der Online-Dokumentation für die oben genannten Berechtigungsobjekte.