Willkommen im SAP Forum
Berechtigungsanalyse im SAP mit der Transaktion SQVI - Link zum Blogartikel
vor 11 Jahren
Martin Schreiber
# 1 - vor 11 Jahren
Erst mal vielen Dank für diesen Artikel. Bin erst seit 1,5 Jahren im "SAP Business" und bin für so was wirklich dankbar, da wir(ich) jetzt in die Situation kommen, wo wir die "Überberechtigungen" zurückfahren müssen , und nicht jedes mal ein try and error mit unseren Usern veranstalten können...
Nochmal vielen Dank, am Besten wären natürlich weitere Artikel in diese Qualität :-)
Oliver Gehring
# 2 - vor 11 Jahren
Vielen Dank für die Blumen. rz10.de ist ein sehr großer Wissensspeicher, den wir stetig ausbauen. Es lohnt sich also regelmäßig bei uns vorbeizuschauen ;-).
Ihre Situation kann ich übrigens sehr gut nachempfinden. Vor allem beim Rückbau von Berechtigungen steht man zuerst einmal vor der Herausforderung herauszufinden, welche Berechtigungen zu viel vergeben wurden. Hierfür möchte ich Ihnen eine weiteren Ansatz an die Hand geben.
Über eine Workloadanalyse können Sie die Transaktionen herausfinden, die die Key User regelmäßig ausführen. Damit haben Sie schon mal mind. 80% aller benötigten Transaktionen identifiziert. An dieser Stelle kann es natürlich passieren, dass Tätigkeiten, die nur einmal alle sechs Monate durchgeführt werden, durch das Raster fallen. Wie Sie die Workloadanalyse durchführen, können Sie in dem Beitrag https://rz10.de/2012/02/genutzte-transaktionen-aus-dem-sap-workload-monitor-st03n-exportieren/ meines Kollegen Tobias Harmes nachlesen.
Für die Ausprägung einzelner Berechtigungsobjekte können Sie den Berechtigungstrace (Transaktion ST01) zur Hilfe nehmen. Schränken Sie den Trace über die Filterkriterien auf den Key User ein und lassen Sie ihn die Tätigkeiten am System durchführen, die für Sie relevant sind. In der Auswertung können Sie dann genau die Werte sehen, die bei der Bearbeitung abgeprüft wurden und somit Berechtigungen nach dem Minimalprinzip vergeben.
Das "A und O" ist jedoch eine rege Kommunikation mit dem jeweiligen Fachbereich bzw. dem Business und den Modul-/Applikationsverantwortlichen. Diese Damen und Herren haben das nötige Wissen um die Prozesse und können Ihnen in aller Regel genau sagen, welche Transaktionen aus dem Workload benötigt werden, welche zu ergänzen sind und wie ggf. einzelne Berechtigungsobjekte ausgeprägt sein sollten. Aber auch hier ein wachsames Auge haben, damit es nicht in ein Wunschkonzert ausartet :-).
Ich hoffe, dass ich Ihnen etwas weiterhelfen konnte. Für weitere Fragen und Anregungen stehe ich selbstverständlich zur Verfügung.
Markus Völker
# 3 - vor 10 Jahren
Hallo,
Danke für den Tip.
Eine Anmerkung, eine Frage:
- die Tabelle muss AGR_1016B heißen (im Text falsch, im Screenshot richtig)
Ich erhalte die Meldung USR12 müsste die rechte Tabelle im Join sein. Wie fange ich das ab?
Oliver Gehring
# 4 - vor 10 Jahren
Hallo Herr Völker,
erst einmal vielen Dank für den Hinweis. Da hat sich wohl der Fehlerteufel eingeschlichen. Sie haben recht, die Tabelle heißt AGR_1016B. Ich habe das im Text nachgebessert.
Die Fehlermeldung erscheint, wenn in der grafischen Ansicht des Joins die Tabelle USR12 vor einer Tabelle angeordnet wird, z.B. der AGR_1016B, und damit diese Join Bedingung verletzt wird.
Die Lösung ist zugegebener Maßen nicht intuitiv, aber einfach. Ordnen Sie die Tabellen einfach per Drag'n Drop nebeneinander an (in der Reihenfolge, wie die Tabellen auch im Text aufgezählt werden). Dadurch fangen Sie diesen Fehler ab.
Mit freundlichen Grüßen,
Oliver Gehring
Philipp Otte
# 5 - vor 10 Jahren
Hallo Oliver,
super Anleitung! Läßt sich schnell und effizient nachbauen und sofort sinnvoll einsetzen.
Besten Dank,
Philipp
Ralph Grunge
# 6 - vor 10 Jahren
Hallo Herr Gehring,
ihr Ansatz ist aus meiner Sicht leider falsch, da Sie die geschachtelten Sammelprofile so nicht einfangen!!?? Da diese mehrstufig sein können (Sammelprofil in Sammelprofil in Sammelprofil...) können Sie das mit einem einfachen Join nicht auflösen und kommen in diesem Fall zu einem unvollständigen Ergebnis. Sie können das mal mit einem Benutzer mit einem SAP_ALL Profil ausprobieren. LG Ralph Grunge
Oliver Gehring
# 7 - vor 10 Jahren
Hallo Herr Grunge,
erst einmal vielen Dank für Ihr Feedback. In der Tat werden Rollen, die mehr als ein Profil besitzen nicht komplett ausgewertet. Ihr Beispiel mit dem Profil SAP_ALL ist dafür sehr gut geeignet. Wenn man eine Rolle erstellt, die aus diesem Profil generiert wird, enthält die Rolle mehr als ein Profil.
Im Regelfall ist jedoch die Anzahl an Berechtigungen, die in einer Rolle enthalten sind so gering, dass bei der Generierung des Rollenprofils nur ein Profil erstellt wird. Damit werden über die beschriebene SQVI in 99% der Fälle auch alle Berechtigungen eingefangen.
Für Ihren Sonderfall habe ich allerdings auch eine Lösung. Die Wahrheit befindet sich in den AGR Tabellen und damit auch alle Berechtigungen für eine Z_SAP_ALL Rolle.
Definieren Sie einfach zwei SQVI Abfragen. Eine Abfrage mit den Tabellen AGR_USERS und AGR_1251, die Ihnen die Berechtigungswerte zu den Rollen eines Benutzers liefert und eine Abfrage mit der AGR_1252 anstatt der AGR_1251. Diese liefert Ihnen noch die Werte zu den Orgebenen.
Mit welchem Ansatz werden Sie Herr der Lage?
Mit besten Grüßen,
Oliver Gehring
Ralph Grunge
# 8 - vor 10 Jahren
Hallo Herr Gehring,
vielen Dank für Ihre Antwort, aus meiner Sicht steht die Wahrheit in der UST12 und dem Bezug zur UST04 (über die Einzel- und Sammelprofile), bei der alle Berechtigungen enthalten sind, egal ob diese aus einer Rolle oder einem Profil kommen. Ich selbst führe diese Tabellen in einer SQL Datenbank ausserhalb von SAP zusammen, um dort die Sammelprofile auflösen zu können (diese Auflösen ist , soweit ich es beurteilen, kann leider nicht in der SQVI möglich). Über die Tabellen AGR_1251 und AGR_1252 gehen Ihnen genau die Informationen aus den Profilen verloren ;-)
Dominik Pathe
# 9 - vor 9 Jahren
ich hätte mal eine Frage zum exportieren in Excel.
Wenn ich in der letzten Abbildung auf Exportieren klicke und sich daraufhin Excel öffnet kommt immer folgende Fehlermeldung: Das Dateiformat und die Dateierweiterung von ´*.xls´passen nicht zueinander. Möglicherweise ist die Datei beschädigt oder nicht sicher...."
Wenn ich die Datei dann trotzdem öffne sind immer leere Spalten und Zeilen drin. Ein bearbeiten ist da nicht wirklich möglich weil Excel da immer wieder abstürzt. Hätten Sie vielleicht einen Rat wie der Fehler zu beheben ist?
mit freundlichen Grüßen, Dominik Pathe
Oliver Gehring
# 10 - vor 9 Jahren
Hallo Herr Grunge,
vielen Dank für Ihren interessanten Ansatz und das Teilen Ihrer Erfahrungen.
Mit freundlichen Grüßen,
Oliver Gehring
Oliver Gehring
# 11 - vor 9 Jahren
Hallo Herr Pathe,
ich habe versucht den Fehler nachzustellen. "Leider" funktioniert bei mir der Export fehlerfrei bzw. wenn ich die Meldung trotz der Warnung bestätige, wird die Excel korrekt dargestellt und stürzt nicht ab. Ich habe auch keine Informationen über diesen Fehler im SCN gefunden. Mit welcher Version der SAP GUI arbeiten Sie denn?
Ich vermute, dass der Fehler dort zu finden ist.
Mit freundlichen Grüßen,
Oliver Gehring
Nick
# 12 - vor 8 Jahren
Hallo,
ich habe den bisherige Diskussion interessiert verfolgt.
Bezüglich der Frage, wie ich die Unterprofile der Sammelprofile auflöse, würde ich gerne nachfolgenden Vorschlag zur Diskussion mit Ihnen stellen. Dieser lässt sich allerdings nicht mit SQVI lösen sondern müsste ggf. in einer externen Datenbank abgebildet werden:
Im Grunde muss man doch die Brücke zwischen den Benutzern und deren zugeordneten Berechtigungen über die nachfolgenden Tabellen schlagen:
1. UST04 (Berechtigungsprofile Benutzer) --> 2. UST10c (Sammelprofile) --> 3. UST10s (Profile mit Berechtigungen) --> 4. UST12 (Einzelberechtigungen mit Feldausprägungen)
Problem hierbei ist, dass bei einem einfachen Join der Tabellen, die Profil Hierarchie-Beziehungen, die in der Tabelle 2. UST10c (Sammelprofile) ggf. vorhanden sind verloren gehen. Daher muss man diese Tabelle UST10c mit Ihrer Zuordnung von Sammelprofil zu Unterprofil so lange (iterativ oder rekursiv) durchlaufen und prüfen, ob das jeweilige Unterprofil ggf. wieder ein Sammelprofil ist und ggf. die Tabelle erneut durchlaufen bis Verschachtelung der Sammelprofile endet (d.h. zum jeweiligen Profil kein weiteres Unterprofil mehr in der UST10c vorhanden ist). Hiermit löst man gewissermaßen die Hierachiebeziehung in den Sammelprofilen auf (vgl. User|Profilhierarchiestruktur bei Report RSUSR002). Am Ende hat man z.B. die nachfolgende exemplarische Profilhierarchie-Pfad-Relation aus der UST10c generiert:
Sammelprofil A -> Unter(-sammel)profil A' -> Unterprofil A''
...
usw.
...
Sammelprofil A -> Unter(-sammel)profil B' -> Unterprofil B''
Das Profil am unteren Ende der Hierarchie (Unterprofil A'' oder auch Unterprofil B'') befindet sich in der Tabelle UST10s mit Hilfe derer durch die darin enthaltenen Berechtigungen auf die Tabelle UST12 rübergejoint werden kann, wo letztenendes die Berechtigungen mit Ihren Feldausprägungen stehen.
Beste Grüße
Nick
Stephan Panzer
# 13 - vor 7 Jahren
Wenn ich den Quickkview so nachbaue, wie im Screenshot mit den sechs verknüpften Tabellen abgebildet, bekomme ich folgende Fehlermeldung: "Tabelle AGR_1016B muß rechte Tabelle in einem Join sein". Erst wenn ich das Feld PROFILE aus der AGR_1016B mit dem Feld PROFN aus der UST10S veknüpfe, ist alles in Ordnung. Sehen Sie dies anders oder wo liegt mein Fehler?
Beste Grüße Stephan
# 14 - vor 7 Jahren
Hallo Stephan.
Das sieht richtig aus, auch wenn ich es gerade nicht nachgestellt habe. Wichtig ist auf jeden Fall: immer über die SUIM/Benutzerinformationssystem noch mal mit bekannten Ergebnissen verifizieren. Das Join-Verhalten ist nicht besonders transparent. Und sollte die SUIM mal falsch liegen und die Queries richtig - SUIM Sammelhinweise einspielen. :-)
Viele Grüße, Tobias Harmes
# 15 - vor 5 Jahren
Hallo,
die View funktioniert so prima. Ich hätte gern die Objektklasse ebenfalls ausgewertet. Aber egal mit welchen Tabellen ich das versuche, ich bekomme anschließend gar nichts mehr gelistet. Geht das überhaupt?
Viele Grüße
Romy
# 16 - vor 5 Jahren
Hallo Romy,
wenn nichts mehr zurückgegeben wird, bildet der join oft eine Art "unmöglicher" Verknüpfung. Für die Objektklassen können die Tabellen TOBJ und TOBC ausgewertet werden. Versuch doch vielleicht einen kleineren Join nur mit AGR_1251, TOBJ und TOBC zu machen. Dann hast du zwar nur Berechtigungsdaten aus Rollen und keine Profile (SAP_ALL und Co), aber vielleicht hilft das schon mal.
Viele Grüße
Tobias
Kommentar verfassen