Möglichkeiten der Rollen-Administration in SAP HANA

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

Zur Vergabe von Privilegien ist es Best Practice, sie über eine Rollenzuweisung an die Benutzer zu provisionieren. Das bedeutet, dass man die Privilegien den Rollen zuweist oder entzieht und diese Rollen dann dem Benutzer als «Container» für Privilegien zugewiesen 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

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.

Ein Bild, das Screenshot enthält.Automatisch generierte Beschreibung
Abb. 2: Privilegienzuordnung im SAP HANA Studio zu einer Catalog Rolle mit Inhaber (Grantor)

Repository Rollen

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<Instanznummer>/sap/hana/ide/editor .

Ein Bild, das Screenshot enthält.Automatisch generierte Beschreibung
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.

Ein Bild, das Screenshot enthält.Automatisch generierte Beschreibung
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.

HDI Rollen

Inhaber der HDI Rollen ist der <Container-id>#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.

Volker Deneke
Kontakt

Nehmen Sie Kontakt mit uns auf!

Haben Sie Fragen zu unseren Produkten?

+41 43 422 8803
[email protected]
+49 7656 9888 155
[email protected]
+1 855 594 84 64
[email protected]
+44 1454 838 785
[email protected]
Kontakt
Termin