Show TOC

HintergrundBerechtigungsprüfungen Dieses Dokument in der Navigationsstruktur finden

 

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 SAP-Transaktionen (Berechtigungsobjekt S_TCODE)

  • 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)

  • Tabellenpflege mit generischen Werkzeugen (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 dem 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 SAP-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 gelingen. 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-Runtime 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.

1. Rollen anpassen

Ihre Benutzer brauchen für jede Web-Dynpro-ABAP-Anwendung und für bestimmte Anwendungskonfigurationen eine geeignete Berechtigung zum 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 dürfen, braucht der Administrator eine Berechtigung zum 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 in SAP-Hinweis 1511363.

  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 die 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 wird eine gewisse Zeit beanspruchen. 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 bei den Anwendungstypen R3TR WDYA und R3TR WDCA das Kennzeichen.

  3. Sichern Sie Ihre Eingaben.

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

Start von Reportklassen

Sie können weitere Berechtigungsprüfungen durch Zuweisung von Reports zu Berechtigungsklassen (über Report RSCSAUTH) durchführen. Sie können z.B. alle PA*-Reports einer zu PA gehörigen Berechtigungsklasse (wie PAxxx) zuordnen. Will ein Benutzer einen PA-Report ausführen, benötigt er die entsprechende Berechtigung, um Reports in dieser Klasse auszuführen.

Wir liefern keine vordefinierten Reportklassen aus. Sie müssen selbst bestimmten, welche Reports Sie auf diese Weise schützen. Sie können die Berechtigungsklassen für Reports auch mit den Pflegefunktionen für Berichtsbäume eingeben. Diese Methode bietet einen hierarchischen Ansatz für die Zuweisung von Berechtigungen für Reports. Sie können z.B. eine Berechtigungsklasse einem Berichtsknoten zuweisen, wodurch alle Reports an diesem Knoten automatisch zu dieser Klasse gehören. Sie haben damit eine transparentere Übersicht darüber, welche Berechtigungsklassen den verschiedenen Reports zugeordnet sind.

Sie müssen Folgendes beachten:

  • Nachdem Sie Reports zu Berechtigungsklassen zugewiesen oder die Zuweisungen geändert haben, müssen Sie u.U. Objekte in Ihrem Berechtigungskonzept anpassen (z.B. Rollen, Profile oder Benutzerstammsätze).

  • Es gibt bestimmte Systemreports, die Sie keiner Berechtigungsklasse zuordnen können. Dazu zählen:

    • RSRZLLG0

    • STARTMEN (ab Release 4.0)

    • Reports, die bei der Anmeldung über SUBMIT in einem Customer-Exit aufgerufen werden (z.B. SUSR0001, ZXUSRU01).

  • Berechtigungszuweisungen für Reports werden bei einem Upgrade überschrieben. Nach einem Upgrade müssen Sie daher Ihre kundenspezifischen Reportberechtigungen wiederherstellen.

Aufruf von RFC-Funktionsbausteinen

Beim Aufruf von RFC-Funktionsbausteinen von einem RFC-Client-Programm oder einem anderen System aus, wird im gerufenen System eine Berechtigungsprüfung gegen das Berechtigungsobjekt S_RFC ausgeführt. Dabei wird gegen den Namen der Funktionsgruppe, zu der der Funktionsbaustein gehört, geprüft. Diese Prüfung kann über den Parameter auth/rfc_authority_check deaktiviert werden.

Prüfung über Zuweisung von Berechtigungsgruppen zu Tabellen

Sie können Berechtigungsgruppen auch zu Tabellen zuweisen, um zu verhindern, dass Benutzer über allgemeine Zugriffswerkzeuge (z.B. Transaktion SE16) auf Tabellen zugreifen. Ein Benutzer benötigt nicht nur die Berechtigung, um das Werkzeug auszuführen, sondern er muss auch die Berechtigung haben, mit den entsprechenden Gruppenzuweisungen auf die Tabellen zugreifen zu dürfen. Für diesen Fall liefern wir Tabellen mit vordefinierten Zuweisungen von Berechtigungsgruppen aus. Die Zuweisungen sind in der Tabelle TDDAT definiert; das geprüfte Berechtigungsobjekt ist S_TABU_DIS.

Beispiel Beispiel

Sie können einer Tabelle die Berechtigungsgruppe Z000 zuweisen. (Verwenden Sie für Tabelle TDDAT Transaktion SM30.) Ein Benutzer, der auf diese Tabelle zugreifen will, muss in seinem Profil das Berechtigungsobjekt S_TABU_DIS mit dem Wert Z000 in Feld DICBERCLS (Berechtigungsgruppe für ABAP-Dictionary-Objekte) haben.

Ende des Beispiels.

Um auch Tabellen zu schützen, die keiner Berechtigungsgruppe zugeordnet sind, können Sie zusätzlich das Berechtigungsobjekt S_TABU_NAM verwenden. Es ist in die Berechtigungsprüfung des zentralen Funktionsbausteins VIEW_AUTHORITY_CHECK integriert. Dann prüft das System zunächst S_TABU_DIS. Nur falls diese Berechtigung nicht erfolgreich ist, prüft das System zusätzlich S_TABU_NAM.

Weitere Informationen über S_TABU_NAM finden Sie in SAP-Hinweis 1481950.

Weitere Informationen