- 5. April 2013

Berechtigungsanalyse im SAP mit der Transaktion SQVI

sap-berechtigungstools

Die SAP liefert mit der Transaktion SUIM schon ein mächtiges Werkzeug, wenn es um die Suche nach Benutzerinformationen geht. Leider werden gerade im Berechtigungsumfeld die Informationen nicht immer in einer Darstellung angeboten, in der alle Details auf einen Blick zu finden sind. In einem solchen Fall haben Sie zwei Optionen:

Einerseits hilft zum Beispiel das Schreiben eines Reports, der die passenden Tabellen ausliest und in einem ALV darstellt. Dieser Lösungsansatz ist jedoch nur umsetzbar, wenn man über die nötigen Programmierkenntnisse verfügt und außerdem die nötigen SAP Berechtigungen für die ABAP Workbench hat.

Um diese Herausforderung trotzdem lösen zu können, benötigt man in vielen Fällen aber nur den Zugriff auf die Transaktion SQVI (QuickViewer). Wie Sie die gewünschten Informationen im SAP-System finden können, um diesen zweiten Lösungsansatz zu verfolgen, möchte ich Ihnen nachfolgend Schritt für Schritt erläutern.

Möglichkeiten der Transaktion SQVI

Mit Hilfe der SQVI können Abfragen erstellt und abgesetzt werden. Über einen grafischen Editor werden die gewünschten Tabellen eingefügt und über einen JOIN miteinander verknüpft. Danach kann man die Tabellenfelder festlegen, die in der Ergebnismenge angezeigt werden sollen. Zusätzlich dazu können Tabellenfelder bestimmt werden, mit denen ein Selektionsbild generiert wird, um die Ergebnisse zu filtern.

Sie wünschen sich Unterstützung bei der Umsetzung? Hier noch einige Tipps von mir.
Fachbereichsleiter Tobias Harmes

Bei Fragen stehe ich Ihnen gerne persönlich zur Verfügung. Testen Sie unsere 30-minütige Erstberatung!

Kontaktieren Sie mich: Telefon 0211.9462 8572-25 oder per E-Mail harmes@rz10.de. In einem unverbindlichen Gespräch kann ich mit Ihnen über Ihre Ausgangslage sprechen und Ihnen Möglichkeiten aufzeigen. Selbstverständlich können wir danach auch ein unverbindliches Angebot unterbreiten.

Weitere Lösungsansätze aus dem Berechtigungsumfeld finden Sie in unseren Ebooks. Den Link zum Download finden Sie unter diesem Blogbeitrag.

Bitte beachten Sie, dass Sie für den nachfolgenden Anwendungsfall in der Regel auch über die Transaktion SUIM zu einem Ergebnis kommen. Die Arbeit mit den Ergebnismengen aus verschiedenen Abfragen der SUIM kann allerdings eine Konsolidierung, Filterung und Auswertung schwierig machen. Ich stelle Ihnen hier einige Anwendungsfälle für die Transaktion SQVI vor.

Fragestellung: Welche Rollen sind einem Benutzer zugewiesen und wie sind die enthaltenen Berechtigungsobjekte ausgeprägt?

In diesem konkreten Fall geht es um eine Abfrage für das Berechtigungswesen: Zu Beginn eines Berechtigungsprojekts wird in aller Regel eine Aufnahme des Ist-Zustands im System durchgeführt. In Folge dessen ist die Information von Bedeutung, welcher Benutzer, welche Rolle besitzt und wie diese Rolle ausgeprägt ist. Sprich welche Berechtigungsobjekte sind enthalten und welche Werte sind diesen zugewiesen.

Umsetzung in der Transaktion SQVI

Nun aber zur Abfrage. Nachdem Sie die Transaktion SQVI gestartet haben legen Sie sich einfach eine neue Query an. Achten Sie beim Anlegen darauf, dass als Datenquelle der Tabellen-Join ausgewählt ist.

SAP SQVI Tabellen-join
Anschließend müssen Sie folgende Tabellen AGR_1016B, UST04, UST10S, USR12, UST12 und TOBJT einfügen. Aus diesen erhalten wir unsere Ergebnismenge.

Berechtigungsquery in SAP Transaktion SQVI
Im Basismodus können sie dann die Tabellenfelder für die Ausgabe bzw. die Selektionsmaske festlegen und die Reihenfolge nach belieben ändern.
In unserem Fall finden Sie die Einstellungen in den folgenden beiden Abbildungen.

Berechtigungsquery in SAP Transaktion SQVI: Feldauswahl
Berechtigungsquery in SAP Transaktion SQVI: Selektionsfelder
Wenn Sie nach dem Speichern die Abfrage ausführen erhalten Sie die nun gezeigte Eingabemaske, über die Sie die Ergebnismenge einschränken können.

Berechtigungsquery in SAP Transaktion SQVI: Selektionsbildschirm
In diesem Beispiel habe ich nur nach einem Benutzer gesucht. Das Ergebnis sehen sie auszugsweise hier.

Berechtigungsquery in SAP Transaktion SQVI: Ergebnis als Liste
Wie Sie erkennen können haben sie sämtliche Informationen über Benutzer und Rollen auf einen Blick und können über die ALV-üblichen Operationen mit der Liste arbeiten, sie filtern, für weitere Arbeitsschritte nach Excel exportieren usw.

Ihre Erfahrungen mit der Transaktion SQVI

Haben Sie schon ähnliche Abfragen über die Transaktion SQVI erstellt oder haben Sie andere Anregungen und Ideen für weitere Queries? Dann zögern Sie nicht und ergänzen Sie den Artikel mit Ihren Beiträgen.

Kostenloses E-Book zum Thema SAP Berechtigungstools als Download:

Kostenloses E-Book zum Thema SAP Berechtigungskonzept als Download:

Jetzt das kostenlose E-Book zum Thema SAP Berechtigungen downloaden:




12 Kommentare zu "Berechtigungsanalyse im SAP mit der Transaktion SQVI"

Martin Schreiber - 16. September 2013 | 10:50

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

Antworten
Oliver Gehring - 17. September 2013 | 08:27

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 http://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.

Antworten
Markus Völker - 20. Januar 2014 | 15:54

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?

Antworten
Oliver Gehring - 13. Februar 2014 | 23:15

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

Antworten
Philipp Otte - 17. April 2014 | 12:36

Hallo Oliver,

super Anleitung! Läßt sich schnell und effizient nachbauen und sofort sinnvoll einsetzen.

Besten Dank,
Philipp

Antworten
Ralph Grunge - 1. Juni 2014 | 14:29

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

Antworten
Oliver Gehring - 27. Juni 2014 | 01:35

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

Antworten
Ralph Grunge - 10. Oktober 2014 | 10:40

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 😉

Antworten
Oliver Gehring - 19. Februar 2015 | 11:41

Hallo Herr Grunge,

vielen Dank für Ihren interessanten Ansatz und das Teilen Ihrer Erfahrungen.

Mit freundlichen Grüßen,
Oliver Gehring

Antworten
Dominik Pathe - 27. November 2014 | 10:30

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

Antworten
Oliver Gehring - 19. Februar 2015 | 11:48

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

Antworten
Nick - 16. August 2016 | 14:09

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

Antworten

Schreiben Sie einen Kommentar

Bitte füllen Sie alle mit * gekennzeichneten Felder aus. Ihre E-Mail Adresse wird nicht veröffentlicht.