Massenlöschen von Rollen

Autor: Tobias Harmes | 23. Juli 2013

7 | 28 | #Berechtigungsobjekt, #PFCG

Vielleicht kennen Sie die Situation. Sie haben unzählige Rollen in Ihrem SAP System, die Sie löschen wollen, aber suchen vergeblich eine effiziente Möglichkeit alle Rollen aus dem System zu beseitigen. Vor genau dieser Herausforderung stand ich erst neulich. Wir haben über ein selbstentwickeltes Programm unzählige Systemrollen erstellen lassen und haben später gemerkt, dass wir viele wieder löschen müssen.

Begrenzte Möglichkeiten mit der Transaktion PFCG

Der SAP Standard sieht leider nur die Möglichkeit vor, jede Rolle über die Transaktion PFCG einzeln zu löschen. Das mag zwar für wenige Rollen eine annehmbare Lösung sein, aber wenn Sie sich im hohen zweistelligen oder sogar dreistelligen Bereich bewegen, ist dieses Vorgehen mehr als unpraktisch.

massenlöschen von rollen

Durch den SAP Hinweis 313587 wird Abhilfe verschafft und das Massenlöschen von Rollen eingeführt. In dem Hinweis wird das Z-Programm Z_DEL_AGR veröffentlicht, mit dem Sie generisch Systemrollen löschen können. Das Programm bietet zudem die Möglichkeit über eine F4-Hilfe die betreffenden Rollen auszuwählen. Mit ein wenig ABAP-Programmierkenntnissen lässt sich dieses Programm zudem leicht an die eigenen Bedürfnisse anpassen.

In diesem Webinar “Hysterisch gewachsene Berechtigungen loswerden” erfahren Sie, wie SAP-Systeme bezüglich ihrer Rollen und Benutzer bereinigt werden können, um Altlasten loszuwerden.  

Zu beachten ist, dass Sie für die Ausführung des Programms die entsprechenden Berechtigungen benötigen, die Sie der folgenden Tabelle entnehmen können.

S_USER_AGR ACTVT 06
ACT_GROUP *

Haben Sie das Programm schon verwendet oder sogar in Ihren Standard übernommen? Gibt es etwas, was Sie an dem Programm vermissen? Ich freue mich über einen regen Erfahrungsaustausch.

Sie benötigen Unterstützung in diesem Thema? Informieren Sie sich über unsere Leistungen im Bereich SAP- und IT-Security-Beratung oder stellen kostenlos und unverbindlich eine Anfrage.


Artikel war hilfreichArtikel empfehlen


Dieser Beitrag ist auch als Download verfügbar:
Tobias Harmes

Autor

Tobias Harmes

Experte, Speaker, Herausgeber rz10.de

Fragen? Anmerkungen?
Kontaktieren Sie mich

7 Kommentare zu "Massenlöschen von Rollen"

Ja arbeite schon lange und oft mit dem Programm, ist sehr hilfreich.

Wir haben die Folgenden Stand unseres SAP-Systems:
SAP_BASIS 750 0013 SAPK-75013INSAPBASIS SAP Basiskomponente
SAP_ABA 750 0013 SAPK-75013INSAPABA Anwendungsübergreifende Komponente
SAP_GWFND 750 0014 SAPK-75014INSAPGWFND SAP Gateway Foundation
SAP_UI 752 0005 SAPK-75205INSAPUI User Interface Technology

Ich bekommen beim Ausführen des Reports immer den Debugger.
ist passiert?
Fehler im ABAP-Anwendungsprogramm.

Das laufende ABAP-Programm “ZCL_DEL_AGR===================CP” mußte
abgebrochen werden, da es auf
eine Anweisung gestoßen ist, die leider nicht ausgeführt werden kann.

Fehleranalyse
Beim Ausführen eines Remote Function Calls trat ein Fehler auf.

“CPIC-CALL: ‘ThSAPOCMINIT’, communication rc: CM_PRODUCT_SPECIFIC_ERROR
(cmRc=20), taskhandler rc: GW_CONNECT_FAILED (thRc=236)#Fehler beim
Verbindungsaufbau zum SAP-Gateway; Ist SAP-Gateway gestartet ”

Zustand der Verbindung.. CODE=CM_PRODUCT_SPECIFIC_ERROR -1 -1 SAPCODE=236
CONV=
Interner Fehlercode….. “RFC_IO5”

Es liegt ein Fehler im Kommunikationssystem vor. Wenden Sie sich zu
Klärung und Behebung des Fehlers an Ihren System-Administrator.
Letzter, im SAP-Kernel protokollierter Fehler

Hi.
Einen RFC-Gateway-Fehler hätte ich bei diesem Programm gar nicht erwartet (eben noch mal in den Source geguckt). Was sagt das System-Log (SM21)?
Viele Grüße
Tobias Harmes

Hallo,
ich habe das selbe Problem wir haben auf 7.5 umgestellt. Vor langer Zeit vor vielen Versionen hatte ich den Report schon einmal verwendet, da funktionierte er.
Ich habe die Methode bei der er abbricht unten einmal eingefügt.

Er bricht an der Stelle:
>>>>> CALL FUNCTION ‘Z_GET_E070_DATA’ DESTINATION lc_rfc_dest
ab.

METHOD check_transport_request.

DATA lt_data TYPE TABLE OF tab512.
DATA lv_subrc TYPE sy-subrc VALUE ”.
DATA lv_msg TYPE string.
CONSTANTS: lc_rfc_dest TYPE rfcdisplay-rfcdest VALUE ‘E10CLNT010’,
lc_rfc_type TYPE rfcdisplay-rfctype VALUE ‘3’.

CONCATENATE text-021 iv_trkorr INTO lv_msg SEPARATED BY space.
zcl_gen_application_log=>info( msg = lv_msg obj = lc_log_obj sub_obj = lc_log_obj_sub ).

CALL FUNCTION ‘RFC_CHECK_DESTINATION’
EXPORTING
mydest = lc_rfc_dest
mytype = lc_rfc_type
EXCEPTIONS
empty_destination = 1
invalid_logical_destination = 2
destination_with_special_char = 3
internal_destination_id = 4
empty_rfctype = 5
OTHERS = 6.
IF sy-subrc 0.
RAISE EXCEPTION TYPE zcx_del_agr
EXPORTING
textid = zcx_del_agr=>zcx_no_transport_request.
* Implement suitable error handling here
ENDIF.

” Cross System!
CALL FUNCTION ‘Z_GET_E070_DATA’ DESTINATION lc_rfc_dest
EXPORTING
iv_trkorr = iv_trkorr ” Bspw. E10K9A1A4R
IMPORTING
ev_subrc = lv_subrc
ev_cnt_roles = ev_cnt_roles.
IF lv_subrc IS NOT INITIAL.
IF lv_subrc EQ 4.
RAISE EXCEPTION TYPE zcx_del_agr
EXPORTING
textid = zcx_del_agr=>zcx_no_transport_roles.
ELSEIF lv_subrc EQ 8.
RAISE EXCEPTION TYPE zcx_del_agr
EXPORTING
textid = zcx_del_agr=>zcx_no_transport_request.
ENDIF.
ENDIF.

ENDMETHOD.

Die SM21 sagt folgendes:
22.10.2019 09:42:09 e10-ci_E10_30 DIA 008 012 XXX @5C\QSehr hohe Priorität@ AB0 Laufzeitfehler “CALL_FUNCTION_OPEN_ERROR” aufgetreten.
22.10.2019 09:42:09 e10-ci_E10_30 DIA 008 012 XXX @SR\QInformation@ AB1 > Kurzdump “191022 094209 e10-ci_E10_30 XXX” erstellt.
22.10.2019 09:49:11 e10-ci_E10_30 RD 000 @5C\QSehr hohe Priorität@ Q0I Betriebssystem Aufruf connect gescheitert (errno 111 )
22.10.2019 09:49:11 e10-ci_E10_30 DIA 011 012 XXX @5C\QSehr hohe Priorität@ AB0 Laufzeitfehler “CALL_FUNCTION_OPEN_ERROR” aufgetreten.
22.10.2019 09:49:11 e10-ci_E10_30 DIA 011 012 XXX @SR\QInformation@ AB1 > Kurzdump “191022 094911 e10-ci_E10_30 XXX” erstellt.

Zu den Fehlern: bitte mal prüfen ob wirklich die aktuelle Version von Z_DEL_AGR im Einsatz ist, die an dem Hinweis 313587 angehängt ist.
Ich habe die gerade mal in einem 7.51 System getestet. Ich finde dort auch keine Z_GET_E070_DATA Funktion – scheint mir also eine andere Version dieses Reports zu sein.

Viele Grüße
Tobias Harmes

Hallo,
ich wollte noch eine Rückmeldung geben.
Waren mit unserem SAP in der Zwischenzeit auch auf einen anderen Server umgezogen.
Hier lag das Problem.
Wir hatten versäumt in der SM59 die neue IP-Adresse einzutragen.
Nach Korrektur der RFC-Verbindung funktionierte dann auch der Report.

Viele Grüße

Thomas

Kommentar verfassen


Unsere Top-Downloads

Kontaktieren Sie uns!
Renate Burg Kundenservice