Show TOC

HintergrundBerechtigungsprü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 Achtung

    Die Berechtigungsprüfung findet nur statt, wenn das Programm einer Berechtigungsgruppe zugeordnet ist.

    Ende der Warnung.
  • Aufruf von RFC-Funktionsbausteinen (Berechtigungsobjekt S_RFC)

  • Generischer Tabellenzugriff (S_TABU_DIS)

Prüfung auf Programmebene mit AUTHORITY-CHECK

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.

Start von Transaktionen

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.

Start von Web-Dynpro-ABAP-Anwendungen

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 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.

Ende der Warnung.

Weitere Informationen finden Sie in den SAP-Hinweisen 1413011Auf SAP-Site veröffentlichte Informationen und 1413012Auf SAP-Site veröffentlichte Informationen.

1. Rollen anpassen

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 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.

Ende des Hinweises

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.

  1. 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 1511363Auf SAP-Site veröffentlichte Informationen.

  2. Legen Sie von allen Rollen, die Sie bearbeiten wollen, eine Sicherheitskopie an.

  3. Nehmen Sie die Web-Dynpro-ABAP-Anwendungen und -Anwendungskonfigurationen in das Rollenmenü auf.

  4. Wählen Sie im Profilgenerator (Transaktion PFCG) die zu bearbeitende Rolle aus, und wählen Sie Ändern.

  5. Wählen Sie auf der Registerkarte Menü in der Dropdown-Box Knoten einfügen den Knotentyp Web-Dynpro-Anwendung aus.

  6. 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.

  7. Sichern Sie Ihre Eingaben.

  8. 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.

  9. Bearbeiten Sie noch offene Berechtigungsfelder.

Hinweis 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.

Ende des Hinweises
2. Startberechtigungsprüfung für Web-Dynpro-ABAP-Anwendungen und -Anwendungskonfigurationen aktivieren

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.

  1. Starten Sie die Tabellenpflege (Transaktion SM30), und tragen Sie in das Feld Tabelle/Sicht den Tabellennamen USOBAUTHINACTIVE ein. Wählen Sie Pflegen.

  2. Entfernen Sie in der Spalte Inaktiv das Kennzeichen der Anwendungstypen R3TR WDYA und R3TR WDCA.

  3. Sichern Sie Ihre Eingaben.

    Sie haben die Startberechtigungsprüfung systemweit in allen Mandanten aktiviert.

Reports starten

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 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.

Ende der Warnung.

Hinweis 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.

Ende des Hinweises
Aufruf von RFC-Funktionsbausteinen

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.

Generischer Zugriff auf Tabellen

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 1434284Auf SAP-Site veröffentlichte Informationen und der Online-Dokumentation für die oben genannten Berechtigungsobjekte.

Weitere Informationen