Kennen Sie eine Möglichkeit, SQL Befehle auf die Tabellen in Ihrem SAP-System auszuführen? In der Vergangenheit habe ich mir dieselbe Frage gestellt, als ich vorbereitete Querys auf eine Tabelle ausführen wollte, ohne diese für eine Abfrage über die SE16N mit entsprechenden Filtern zu konvertieren. Nach meiner Recherche bin ich auf eine einfache Möglichkeit gestoßen, wie Sie Ihre SQL Statements transaktionsbasiert durch einen Editor auflösen lassen können.

Vielleicht kennen Sie die Situation, dass Sie schnell eine kurzes SQL-Statement auf Ihr SAP-System absetzen wollen, ohne viel Aufwand in eine ABAP-Programmierung investieren zu müssen. Vielleicht haben Sie auch nicht die nötigen Kenntnisse in ABAP, um Daten aus einer Tabelle zu extrahieren, sind aber durchaus mit SQL vertraut. Für diese Fälle sollten Sie sich die Transaktion DBACOCKPIT genauer ansehen. Diese Transaktion stellt Ihnen neben vielen weiteren Funktionen zur Verwaltung der Datenbank einen Editor zur Verfügung, mit dem Sie Ihre SQL-Abfragen auf Ihr SAP-System einfach ausführen können. Bei dieser Methode erhalten Sie kurz nach dem Absenden der Abfrage das Ergebnis in der GUI angezeigt.

SAP Basis

E-Book SAP Basis

Das E-Book zu SAP BASIS kombiniert einen großen Knowhow-Teil mit praxisnahen Fachartikeln – über 400 Seiten voller Tipps, Tricks und Tutorials aus echten SAP-Systemen.

Vorgehensweise zur Ausführung einer SQL Abfrage

Um den Editor für die SQL Abfragen im DBACOCKPIT aufrufen zu können, bestehen folgende Voraussetzungen für den Nutzer:

  • Der Nutzer benötigt entsprechende Rechte um die Transaktionen SM49 und SM69 auszuführen.
  • Die Ausprägungen STOR und SMSS müssen im Berechtigungsobjekt S_ADMI_FCD gepflegt sein.
  • Für die SQL-Abfragen muss die Datenbankverbindung aufrechterhalten werden. Den aktuellen Status einer Datenbankverbindung erhalten Sie durch das Anzeigen der DBCON-Tabelle.
  • Rechte für den Aufruf der abzufragenden Tabelle(n) müssen vergeben sein. Weitere Details hierzu finden Sie im Abschnitt “Weitere Hinweise zum DBACOCKPIT” dieses Blog-Beitrags.

Nachdem Ihr Nutzer die benötigten Rechte für den SQL-Editor besitzt, gehen Sie wie folgt vor:

  • Rufen Sie die Transaktion “DBACOCKPIT” auf.
  • Öffnen Sie die folgende Ordnerstruktur in der Datenbankadministration: Performance -> Additional Functions -> SQL Command Editor
  • Geben Sie Ihre erste Query in die Eingabeabfrage ein.
  • Anschließend klicken Sie auf Ausführen oder drücken alternativ auf F8
DBACOCKBIT SQL Query

Ansicht des DBA Cockpits

DBACOCKBIT SQL Query

Aufruf der Eingabeabfrage und Absetzen der ersten SQL Abfrage

DBACOCKBIT SQL Query

Ansicht der Ergebnisse einer Query zur Abfrage der Nutzer eines Systems

 

Erfahrungswerte und Alternativen

Zu erwähnen ist an dieser Stelle, dass es lediglich Sinn ergibt, lesend mittels SELECT-Statement auf die Tabellen zuzugreifen, um eine schnelle Ansicht der Ergebnisse zu erhalten. Mittels des DBACOCKPITs ist es nicht möglich, ganze Tabellenstrukturen mittels Create Table zu erstellen. Für solche Anwendungszwecke stellt SAP andere, bessere Möglichkeiten zur Verfügung. Ein weiterer wichtiger Punkt ist, dass sobald ein Nutzer die notwendigen Berechtigungen zur Nutzung der Transaktion DBACOCKPIT besitzt, dieser potentiell (bei entsprechenden Berechtigungen auf die Tabellen) lesend auf das gesamte SAP-System zugreifen kann. So kann mit einer Query beispielsweise die gesamte Nutzertabelle ausgelesen werden. Daher ist die Transaktion grundsätzlich mit Vorsicht zu genießen und ausschließlich an Administratoren zu vergeben.

Darüber hinaus besteht die Möglichkeit, einmal ausgeführte SQL Statements zu speichern und so jederzeit erneut auszuführen, um Änderungen in der Ergebnismenge zu erkennen, ohne jedes Mal das SQL-Statement neu formulieren zu müssen. Der Editor bietet Ihnen zudem die Möglichkeit, die Abfrage der SQL Statements im Hintergrund zu starten. Das Ergebnis erhalten Sie durch den Aufruf der Transaktion SM37, in der Ihnen das Ergebnis in einem Spool-File ausgegeben wird.

Die richtige Berechtigung

Die Berechtigung zur Steuerung der Aufrufe durch das DBACOCKPIT werden ähnlich wie in der Transaktion SE16 / SE16N gehandhabt. Beim Aufruf der Tabelle wird das Berechtigungsobjekt S_TABU_DIS bzw. S_TABU_NAM mit einer bestimmten Aktivität geprüft. So kann lediglich auf die Tabellen bzw. Tabellenberechtigungsgruppen zuegegriffen werden, für die entsprechende Werte in den genannten Berechtigungsobjekten zugewiesen sind. Genaueres zur Vergabe von Berechtigungen auf einzelne Tabellen können Sie hier nachlesen.

Sie wollen Ihre SAP Berechtigungen für Entwickler auf der Produktion einschränken? Wir helfen Ihnen dabei mit unserem Best-Practice-Ansatz.

Zum Schluss

Haben Sie ähnliche Erfahrungen mit dem DBACOCKPIT gemacht oder kennen Sie alternative Wege SQL-Abfragen auf Ihr System auszuführen? Ich freue mich auf Ihr Feedback und lade Sie herzlich dazu ein diesen Beitrag zu kommentieren.

Sie benötigen Unterstützung bei der Umsetzung? Unser Autor ist Berater für dieses Thema. Fragen Sie ihn an über das RZ10.de Partnerprodukt Berater für SAP Basis


Artikel war hilfreichArtikel empfehlen


Dieser Beitrag ist auch als Download verfügbar: