Analyse von Berechtigungsfehlern in SAP HANA
Die SAP HANA Datenbank ist die strategische Plattform für SAP Business-Applikationen, wie SAP S/4HANA oder SAP BW/4HANA oder native Applikationen, welche ohne SAP NetWeaver ABAP-Applikationsserver auskommen.
Mittels SQL Statement oder analytischer Applikation, wie zum Beispiel SAP Analytics Cloud, Analysis for Office etc. können Anwender – vorausgesetzt sie besitzen einen Benutzer in der SAP HANA Datenbank mit entsprechenden Berechtigungen (weitere Informationen hierzu finden Sie hier in unserem Blog) – direkte Auswertungen, Prognosen oder Applikationen ausführen. Abseits der applikatorischen Ebene kann es nun auch erforderlich sein, auf Datenbankebene allfällige Fehler lokalisieren und beheben zu müssen. In diesem Blogbeitrag werden die vorhandenen Möglichkeiten zur Fehleranalyse in einer SAP HANA Datenbank aufgezeigt.
Kommt es bei der Ausführung einer Anwendung, z. B. unter Verwendung von SAP LUMIRA, SAP Analysis für Microsoft Excel oder der XS Engine von SAP HANA zu einer Fehlermeldung, dass ein Benutzer nicht berechtigt ist, gibt es bis einschließlich SAP HANA 2.0 SPS03 nur die Möglichkeit, einen Berechtigungstrace zu erstellen. Häufig sieht man sich mit Fehlermeldungen, wie beispielhaft unten dargestellt, konfrontiert.
Der Berechtigungstrace kann über das HANA Studio oder via HANA Cockpit erstellt werden. Dabei sollten Name (Kontext) der Tracedatei, Applikations- oder Datenbankbenutzer hinterlegt werden. Die Trace-Komponente ist ‚Authorization‘ des Indexservers. Im Folgenden wird die Vorgehensweise im HANA Cockpit beispielhaft aufgezeigt.
Anschließend muss der Benutzer aufgefordert werden, die zuvor fehlgeschlagene Aktion zu wiederholen, damit das Tracefile im Hintergrund erstellt wird.
Nun kann anhand des Kontextes (Tracefile) Namens eruiert werden, welche Berechtigung dem Anwendungsbenutzer fehlt:
Da diese Variante der Auswertung sehr aufwendig ist, besteht seit SAP HANA 2.0 SPS04 eine neue Möglichkeit der Auswertung: die Fehleranalyse mittels GUID. Eine Aktivierung des Traces und ein erneuter Aufruf ist nicht erforderlich. Mit Hilfe der GUID lässt sich standardmäßig die Fehlerursache nachvollziehen. Praktischerweise stellt auch das HANA Cockpit eine eigene Applikation ab Version 2.0 SP11 bereit, um die Analyse zu vereinfachen (siehe: User Management and Security Administration – SAP Help Portal).
Berechtigungsadministratoren, die diese Applikation zum Auslesen der Berechtigungsprüfung nutzen möchten, benötigen das «EXECUTE» Privileg für die Stored Procedure GET_INSUFFICIENT_PRIVILEGE_ERROR_DETAILS aus dem Standardschema SYS.
Initial besitzt nur der Benutzer SYSTEM dieses Privileg. Damit die Analyse auch mit anderen Benutzern möglich ist, gilt als Best Practice dieses Privileg dem Benutzer _SYS_REPO initial zuzuweisen, damit über eine Repository Rolle diese Berechtigung auf die genannte Prozedur Berechtigungsadministratoren zur Verfügung gestellt werden kann. Wie dieses erreicht wird, ist nachfolgend beschrieben.
Alternativ ist auch die Zuweisung über SQL Statement möglich:
GRANT EXECUTE ON SYS.GET_INSUFFICIENT_PRIVILEGE_ERROR_DETAILS TO _SYS_REPO WITH GRANT OPTION
Anschließend ist eine Repository Rolle mit dem Objekt Privileg EXECUTE auf die Prozedur GET_INSUFFICIENT_PRIVILEGE_ERROR_DETAILS zu erstellen und diese den Berechtigungsadministratoren zuzuweisen. Das Erstellen von Repository Rollen ist nur über das HANA Studio (Developer Perspektive) oder über die Web IDE XS Classic möglich. Alternativ kann das Objekt Privileg direkt einem Benutzer zugewiesen werden, was jedoch vermieden werden sollte. Lesen Sie zu diesem Thema mehr in unserem Blog Möglichkeiten der Rollen-Adminsitration in SAP HANA.
Tritt nun ein Berechtigungsfehler auf, so benötigt der Berechtigungsadministrator nur noch die GUID, die dem Benutzer mit der Fehlermeldung angezeigt wird. Ein Beispiel finden Sie hier:
Nach Eingabe der GUID in der zu Beginn erwähnten HANA Cockpit-Applikation wird das fehlende Privileg angezeigt. Zusätzlich erscheint die Auflistung der vorhandenen Rollen, welche das fehlende Privileg beinhalten.
Die Insufficient Privilege Details Applikation erlaubt das direkte Zuweisen des Privilegs für den Benutzer. Dies wird, wie oben beschrieben, nicht empfohlen. Stattdessen besteht die Möglichkeit, eine bereits vorhandene Rolle zuzuweisen.
Mit der Einführung dieses Features wurden in der Konfigurationsdatei global.ini mit SAP HANA 2.0 SPS04 folgende neue Parameter aufgenommen, welche für die Fehleranalyse relevant sind und berücksichtigt werden sollten.
- enable_insufficient_privilege_error_details_procedure
Aktivierung/Deaktivierung der Prozedur zur automatischen Fehlerprotokollierung via GUID - insufficient_privilege_error_details_retain_duration
Aufbewahrungsdauer der Fehlerereignisse - insufficient_privilege_error_details_retain_records
Max. Anzahl der Einträge der protokollierten Fehlerereignisse
Benötigen Sie Unterstützung in der Administration Ihrer SAP HANA-Berechtigungen? Sind Sie häufig mit Fehlersituationen konfrontiert und möchten diese signifikant reduzieren? Xiting besitzt umfangreiche Expertise und Erfahrung mit Schwerpunkt SAP HANA-Sicherheit. Gerne besprechen wir mit Ihnen Ihre konkreten Anforderungen und wie wir mit unseren SAP HANA Services unterstützen können. Zögern Sie nicht, uns für ein erstes Gespräch zu kontaktieren.
Weitere Infos können Sie unserer Website entnehmen:
- HDI-Rollen in SAP HANA – Ist nun alles einfacher? - 9. Dezember 2022
- Analyse von Berechtigungsfehlern in SAP HANA - 9. August 2021
- Datenschutz in der SAP HANA Datenbank mittels Data Masking und Data Anonymization - 16. April 2021