de en en en de tr de de de de de de de de de de en en en en en en en en en en en en en de en en de en en en nb de en de de de de de en en en en en en de en de de en it en en de de en de en en en de ca en en en de de de de de de en de hbs_lat en nb de de de de hbs_lat de de hbs_lat de de en de en de de de en de de de de nb de de de de de de de de de de de en en en de de de de de fr en fr en it en sv en de de de de de en de de it de de de de de fr en fr en it en sv en de ca de de en
Im Umfeld der SAP Business Suite, Internet of Things (IOT) und in Industrie-4.0-Systemen wird immer häufiger der Wunsch der Endanwender geäußert, auf die Datenbank (Views, Tabellen, Core Data Services etc.) direkt mittels Reporting Tools wie der SAP Analytics Cloud, SAP Lumira o.ä. zuzugreifen.
Dabei wird die Berechtigungsprüfung im ABAP-Frontend-System umgangen und es werden – wie für die DB-Administratoren – die Berechtigungen für den Endbenutzer auch in der SAP HANA DB benötigt. Im Umfeld von SAP HANA DB wird dabei nicht mehr von Berechtigungsobjekten gesprochen, sondern den sogenannten Privilegien. Auf diesen Elementen baut die gesamte Berechtigungsstruktur in der Datenbank auf.
Welche Privilegien und Rollenarten es gibt oder auch welche Werkzeuge für die Erstellung und Verwaltung dieser Rollen notwendig ist, wird in diesem Blog erläutert.
Rollen in der SAP HANA DB
Welche Empfehlungen können jetzt abgeleitet werden?
Aus der Entwicklung der SAP HANA Datenbank hin zum SAP HANA DB & Applikationsserver heraus sind drei unterschiedliche Arten von Rollen entstanden: Catalog, Repository und HDI Rollen. Alle Rollenvarianten ermöglichen den Zugriff auf Daten und Funktionen innerhalb der SAP HANA DB.
Catalog Rollen können über das SAP HANA Studio, SAP HANA Cockpit oder über eine SQL Konsole erstellt werden.
Dieser Rollentyp hat jedoch entscheidende Nachteile: Die Catalog Rollen sind nicht transportierbar, nicht versionierbar und der Rollenersteller benötigt selbst die jeweiligen Privilegien – mit dem folgenden Flag:
Abb 1.: Catalog Rollen Tag
Dabei gehört die Rolle dem Rollenersteller, d.h. nur dieser kann die Rollenzuweisung an einen Datenbankbenutzer wieder entfernen. Der Ersteller benötigt das Role Admin Privileg und kann damit jede Catalog Rolle anlegen. Wird der Rollenersteller gelöscht, so werden auch die Privilegien aus «seiner» Rolle entfernt.
Abb. 2: Privilegienzuordnung im SAP HANA Studio zu einer Catalog Rolle mit Inhaber (Grantor)
Repository Rollen werden über den Web-Editor auf SAP HANA XSC (SAP HANA Extended Application Services Classic Model) erstellt. Der Zugriff auf die Web-Oberfläche erfolgt mittels einer individuellen Web URL: http(s)://host:43 /sap/hana/ide/editor .
Abb. 3: XSC Editor: Repository Rolle
Repository Rollen bieten einige Vorteile gegenüber Catalog Rollen:
Inhaber der Rollen ist der interne _SYS_REPO Systembenutzer, Inhaber des SAP HANA DB Repositories. Der Benutzer _SYS_REPO ist vergleichbar mit dem Systembenutzer DDIC im SAP-ABAP-System, dem Inhaber des ABAP Repositories. Eine Anmeldung an der SAP HANA DB ist mit diesem internen SAP HANA DB Benutzer jedoch nicht möglich.
Die Zuweisung der Privilegien zu Repository Rollen erfolgt über sogenannte »Stored Procedures» durch den SYS_REPO Benutzer. Dieser technische Benutzer besitzt alle System-Privilegien und somit benötigt der Ersteller der Repository Rollen diese Privilegien selbst nicht.
Abb. 4: SAP HANA Studio Repository Rolle, Grantor _SYS_REPO
Repository Rollen werden automatisch versioniert und sind über SAP HANA Lifecycle Manager zwischen SAP HANA Datenbanken, HANA Transportcontainer für ABAP oder über Change-Management-Szenarien im SAP Solution Manager transportierbar.
Das Role Admin Privileg wird nicht nicht zum Erstellen von Repository Rollen benötigt, dafür das Privileg zum Ausführen von Stored Procedures des _SYS_REPO Benutzers. Des Weiteren ist eine BW-Rollenreplikation möglich, aber auch die SAP S/4HANA / ERP Rollenzuweisung bzw. Migration werden ebenfalls unterstützt.
Die Rollen können über eine Web-basierte Benutzeroberfläche erstellt werden. Der Ersteller benötigt dabei die (System-) Privilegien, die in die Rolle aufgenommen werden, nicht selbst. Der SAP HANA XS Classic Server und somit auch der klassische WebEditor basieren auf java_script.
Die SAP kündigt seit 2018 das Ende von SAP HANA XSC an, siehe SAP Hinweis Note 2465027. Wann allerdings «die nächste größere Produktversion von SAP HANA» erscheinen wird, ist völlig offen. Die SAP empfiehlt daher für eigene, native SAP HANA-Entwicklungen den XS Advanced Security Model Server (XSA). Mit XSA wurde ein Container Modell eingeführt, vergleichbar mit einem Schema. SAP HANA XSA ermöglicht Entwicklungen in SAP UI5. Dabei stehen die Programmiersprachen natives java, html, Node JS (Google Java script library) zur Verfügung. Damit sind kundeneigene Entwicklungen flexibler und sicherer realisierbar.
Inhaber der HDI Rollen ist der  #OO Benutzer. Diese Rollen werden in einem GIT-Repository in der SAP HANA DB oder einem externen GIT Repository gespeichert. Aus dem GIT Repository können diese Rollen dann an weitere Systeme verteilt oder mittels SAP HANA Transport Container for ABAP (HTA) transportiert werden. Mit HTA steht damit auch eine Change-Management-Funktion zur Verfügung. Die HDI Rollen werden in einem externen oder SAP HANA internen GIT Repository versioniert. Zur Erstellung der Rollen ist keine spezielle Oberfläche analog zu Repository Rollen vorhanden. Die Rollen werden über den «neuen» WEB Editor, basierend auf XSA, erstellt. Hierbei sind SQL-Kenntnisse erforderlich. Die Kommunikation zwischen neuer SAP Web IDE und der SAP HANA Datenbank erfolgt über eine direkte Datenbank «hdbsql-Verbindung».
Abb. 5: SAP HANA XSA WEB Editor Rollenentwicklung
Welche Empfehlungen können jetzt abgeleitet werden?
Vermeiden Sie Catalog Rollen und das direkte Zuweisen von Privilegien zu Benutzern, da eine direkte Abhängigkeit zum Inhaber der Rolle besteht. Somit würden Sie beim Löschen der Benutzer auch direkt die Rolleninhalte, also die enthalten Privilegien, löschen. Gleiches passiert, wenn der gelöschte Benutzer anderen Datenbankbenutzern Privilegien direkt, ohne Rolle, zugewiesen hat. Catalog Rollen können nicht transportiert werden und weisen keine Versionierung auf.
Im Umfeld des SAP Business System sollten Sie daher Repository Rollen verwenden. Repository Rollen können aus einem ABAP-System über die Benutzerverwaltung zugeordnet werden, sind transportierbar und werden in der SAP HANA DB versioniert. Der Inhaber der Repository Rollen ist der interne _SYS_REPO Systembenutzer, nicht der Ersteller der Rolle. Es werden daher beim Löschen von Benutzern keine Privilegien entzogen. Rollen aus dem SAP BW können in Repository Rollen über einen ABAP Report oder über eine Prozesskette migriert werden. Solange die Release-Strategie bezüglich XS*-Server der SAP HANA DB nicht klar ist, werden weiterhin Repository Rollen unterstützt.
Finden in der SAP HANA DB eigene Applikationsentwicklungen statt, sollten diese zusammen mit der Rollenerstellung auf dem SAP HANA XSA durchgeführt werden. Bereits auf XSC entwickelte Applikationen können auf XSA migriert werden, dies gilt jedoch nicht für XSC (Repository) Rollen.
Mit unserem Service SAP HANA Datenbank Berechtigungsprüfung & Rollenbau unterstützen wir Sie gerne bezüglich der Rollenerstellung und Berechtigungsprüfung im HANA-Datenbankumfeld und stellen Repository Rollen für die Basis-Administration zur Verfügung.
Besuchen Sie darüber hinaus auch unser Webinar zur Einführung in die SAP HANA Datenbank, in welchem wir Ihnen Ausgangslage sowie Zielsetzung anschaulich erklären.
SAP Security Consultant | SAP HANA Services bei Xiting AG
Volker is a Principal Technical Consultant and SAP Trainer since the first SAP HANA releases, in charge of HANA Database administration and security. He has worked in the field since 1998, focused on SAP System Administration and RUN SAP.
Letzte Artikel von Volker Deneke (Alle anzeigen)
Analyse von Berechtigungsfehlern in SAP HANA - 9. August 2021
Datenschutz in der SAP HANA Datenbank mittels Data Masking und Data Anonymization - 16. April 2021
Privilegien-Arten in SAP HANA – Was bedeuten und wie funktionieren sie? - 18. März 2021
Nehmen Sie Kontakt mit uns auf!
+41 43 422 8803
+49 7656 9888 155
+1 855 594 84 64
+44 1454 838 785
In drei Schritten zur eigenen Parametertransaktion 17. August 2022
Die neusten Highlights der Xiting Fiori UI für SAP IDM  11. August 2022
Benutzertrace – Was ist die Transaktion STUSERTRACE? 8. August 2022
Nehmen Sie Kontakt mit uns auf!
Haben Sie Fragen zu unseren Produkten?
+41 43 422 8803
+49 7656 9888 155
+1 855 594 84 64
+44 1454 838 785
Besuchen Sie unsere Live-Webinare und lernen Sie von unseren Experten mehr zu SAP-Berechtigungen, XAMS, SAP IDM und zu vielen weiteren Themen im Kontext von SAP Security.