HDI-Rollen in SAP HANA – Ist nun alles einfacher?

SAP kündigt an, mit der nächsten „großen“ SAP HANA Datenbank-Version die XS Classic-Komponente einschließlich dem SAP HANA Repository aus der SAP HANA Datenbank zu entfernen. Der Mainstream Support für SAP HANA Datenbank 2.05 endet am 31.12.2025. 

Somit bleiben für die Erstellung von Rollen in der SAP HANA Datenbank in Zukunft noch zwei Varianten:

  • SAP HANA Cockpit oder hdbsql zur Erstellung von Catalog-Rollen
  • SAP HANA XS Advanced Cockpit (On-premise) oder SAP Business Application Studio (Cloud) für HDI (HANA Deployment Infrastructure)-Rollen

Es lohnt sich daher schon heute einen Blick auf die vergleichsweise neuen HDI-Rollen als künftigen Standard zur Verwaltung von Zugriffsberechtigungen in einer SAP HANA Datenbank sowie für XS Advanced-Applikationen zu werfen. In diesem Blog gehen wir auf die generelle Vorgehensweise zum Erstellen von HDI-Rollen ein.

Die Catalog-Rollen mit ihren Vor- und Nachteilen wurden bereits im Blog „Rollenadministration in SAP HANA“ (Catalog-Rollen/Repository-Rollen) diskutiert. In der Vergangenheit war es aufgrund der überwiegenden Nachteile von Catalog-Rollen angeraten, ein SAP HANA-Rollenkonzept zu implementieren, welches primär mit Repository-Rollen auskommt, um die bekannten Limitationen des Catalogs (insbesondere Versionierbarkeit und Objekteigentümer) zu eliminieren. Mit den HDI-Rollen wurden diese Limitationen des persönlichen Inhabers nun aufgehoben und die Notwendigkeit für das Repository scheint nicht länger gegeben. Die HDI-Rollen stellen in diesem Sinne eine Weiterentwicklung von Catalog-Rollen dar und Repository-Rollen werden obsolet.

XSA Web IDE (WEB Integrated Development Environment)

Die ‘neue’ WEB IDE, basierend auf der XS Advanced Engine, ist – wie jede XS Advanced-Applikation – über einen dedizierten Port erreichbar. Als <sid>adm auf Linux OS Ebene abgesetztes Kommando „‘xs login“ und Authentifizierung als zum Beispiel xsa_admin ermöglicht das Auflisten aller XS Advanced-Applikationen und ihrer Ports via Kommando „xs apps“: 

Abbildung 1: XSA-Applikationen mit https Ports

Um in der XSA Web IDE Datenbank Objekte, wie Rollen, anlegen zu können, muss zunächst ein SPACE unterhalb der Organisation im SAP HANA XS Advanced Cockpit angelegt werden:

Abbildung 2: XSA Cockpit Spaces

Ein Space innerhalb der XSA ist vergleichbar mit einem Paket aus der ABAP Workbench. Nur Entwickler mit der Space Developer Rolle im jeweiligen Space können darin Objekte anlegen und pflegen. SAP liefert Objekte über den Space „SAP“ aus, Kunden können bzw. müssen eigene Spaces anlegen, z.B. Development, Prod oder Security. Es wird dringend empfohlen, für die Erstellung / Überarbeitung von Rollen einen eigenen Space anzulegen, auf den ausschließlich Security-Verantwortliche Zugriff erhalten. Spaces ermöglichen einen logischen Zugriffsschutz, weil stets nur Ressourcen innerhalb eines Spaces geteilt werden.

Als Organisation wird in der Regel der Name des Kunden hinterlegt, es können aber durchaus mehrere Organisationen angelegt werden. Der Name der Organisation sollte danach nicht mehr geändert werden, siehe Organization & Spaces.

Die SAP HANA XS Advanced besitzt ein vom ABAP losgelöstes eigenständiges Benutzer- und Rollenkonzept. Im Folgenden Beispiel wird im SAP HANA XS Advanced Cockpit zuerst ein Benutzer im Space „Security“ mit der Rolle Developer erstellt:

Abbildung 3: Space Benutzerverwaltung

Anschließend wird der neu angelegte Space der Tenant-Datenbank zugewiesen:

Abbildung 4: Mapping Space zu Tenant

Sind diese Vorbereitungen erledigt, kann mit dem Erstellen von Rollen über die XSA Web IDE 2.0 begonnen werden. Der PortWeb IDE ist standardmäßig 53075.

https://hostname:53075

Hinweis: Die Web IDE 2.0 unterscheidet sich grundlegend von jener welche bis anhin als „Web IDE“(XS Classic), oder auch „Web-based Development Workbench“ bekannt war. Die Web IDE 2.0 ist vollkommen auf die Entwicklung mit der SAP HANA XS Advanced ausgerichtet. Dies hat zur Folge, dass in dieser neuen Entwicklungsumgebung auch keine Repository Objekte in SAP HANA mehr erstellt werden können. Es werden auch nur noch HDI-Rollen unterstützt.

Abbildung 5: XSA Web IDE 2.0

Innerhalb des Workspaces wird über New > Project from Template ein neues Projekt angelegt:

Abbildung 6: Erstellung eines neues Projekts in der Web IDE 2.0
Abbildung 7: Neues MTA Projekt anlegen

HDI-Rollen werden in einem Multi-Target Application Project angelegt und Calculation Views, Tabellen etc. als SAP HANA Database Application.

Ein Bild, das Text enthält.  Automatisch generierte Beschreibung
Abbildung 8: Projektname angeben

Namen vergeben, Next.

Ein Bild, das Text enthält.  Automatisch generierte Beschreibung
Abbildung 9: MTA einem Space zuweisen

Wenn das neue Projekt angelegt wurde, müssen die Projekteigenschaften aufgerufen werden:

Ein Bild, das Tisch enthält.  Automatisch generierte Beschreibung
Abbildung 10: Projekt Einstellungen

Als nächstes muss ein Space Builder im neu angelegten Space installiert werden. Dies dauert wenige Minuten:

Abbildung 11: Installation Space Builder
Ein Bild, das Text enthält.  Automatisch generierte Beschreibung
Abbildung 12: Installierter Space Builder

Danach muss ein SAP HANA Database Module angelegt werden über MTA Projekt > New > SAP HANA Database Modul.

Ein Bild, das Text enthält.  Automatisch generierte Beschreibung
Abbildung 13: Neues HDB Modul
Ein Bild, das Text enthält.  Automatisch generierte Beschreibung
Abbildung 14: HDB Modulname
Abbildung 15: HDB Module Customizing

Der Namespace kann gelöscht werden. Der Schema Name sollte analog zum Projektnamen gepflegt werden. „Build modul after creation“ auswählen und abschließen. Der Vorgang dauert einige Minuten. Im Hintergrund werden nun Schema und technische Benutzer automatisiert angelegt:

Abbildung 16: HANA Cockpit Benutzerverwaltung

Dieser angelegte Benutzer HDB_ROLLEN_1#OO ist der Inhaber des Containers/Schemas, in welchem die Rollen angelegt werden.

Durch den Build Vorgang in der XSA Web IDE wurden neue Ordner und Dateien angelegt:

Ein Bild, das Text enthält.  Automatisch generierte Beschreibung
Abbildung 17: MTA Struktur

Im Ordner „src“ können nun die Entwicklungsobjekte, wie beispielsweise Rollen, angelegt werden:

Abbildung 18: Anlegen neuer HDB Objekte

Hier können nun neue Ordner für verschiedene Rollen angelegt werden, z. B. UserAdmin, BasisAdmin etc. oder direkt – ohne Ordner:

Abbildung 19: Anlegen neue Rolle

Der Namespace kann auch hier leer bleiben und die Rolle erstellt werden.

Abbildung 20: Grafischer Rolleneditor

Im XS Advanced Web IDE Role Editor können nun auf bekannte Art und Weise Privilegien hinzugefügt, geändert oder entzogen werden. Die Rolle muss abschließend immer gespeichert und neu generiert (> Build) werden.

Abbildung 21: Build des MTA Projektes

Der Build schlägt fehl, weil dem Container Owner HDB_ROLLEN_1#OO das Privileg, welches in die Rolle aufgenommen werden soll, fehlt:

Abbildung 22: Fehler Log

Der Container Owner muss die Privilegien, die in die Rolle inkludiert werden, besitzen und weitergeben dürfen:

Abbildung 23: Zuweisung Privilegien HANA Cockpit

Ein erneuter Build des MTA ist erfolgreich: 14:21:50 (Builder) Build of /HDB_ROLLEN/HDB completed successfully

Um die HDI-Rollen aus einem Container/Schema einem Benutzer zuordnen zu können, wird entweder das Role Admin System Privileg benötigt oder eine SQL-Prozedur:

Grant a User a Role from the SAP HDI Container’s Schema

Aber Achtung: Werden dem Container Owner die Privilegien entzogen, so werden sie auch aus der Rolle entfernt: Error: com.sap.hana.di.role: Database error 258: : insufficient privilege:…

Daher die dringende Empfehlung, einen „restricted“ Benutzer mit den erforderlichen Privilegien – mit ‚Weitergabe‘ Flag in der Tenant-Datenbank und in der XS Advanced Administration mit Entwickler-Rolle anzulegen, um mit diesem Benutzer den Container#OO Benutzern die notwendigen System, Objekt und Analytischen Privilegien zu versehen. 

Vorteil des restricted Benutzers ist, dass eine hdbsql-Anmeldung an der HANA Datenbank nicht möglich ist.

Siehe dazu auch die Dokumentation in den Best-Practice-Empfehlungen zur Entwicklung von Rollen in der SAP HANA Datenbank.

FAQ 

1) Existiert eine Versionierung der HDI-Rollen analog der Repository-Rollen?

Mit der Möglichkeit der Speicherung in einem lokalen oder remote GIT Repository ist auch eine Versionierung und Historie der Rollen vorhanden.

2) Ist es möglich, auf Daten außerhalb des ‚Rollencontainers‘ zuzugreifen, zum Beispiel auf Views in anderen Schemas oder Containern?

Nein, dafür muss ein ‚User defined‘ Service erstellt werden in der XS Advanced Administration.

3) Besteht die Möglichkeit, Rollen aus einem Container in einen anderen zu migrieren?

Nein.

4) Können XS Classic und XS Advanced Rollen „gemischt” werden?

Ein Verschachteln von XS Classic und XS Advanced Rollen ist nicht möglich.

5) Wie können XS Advanced Rollen von der Entwicklungs-HANA-Datenbank in Ziel-Datenbanken transportiert werden?

Der native Transport über das HANA DB Lifecycle Management, basierend auf XS Classic und Delivery Units, kann nicht verwendet werden. Alternativ steht Deployment über ein Zentrales GIT Repository oder ABAP Transportcontainer für HANA bereit. Mehr erfahren.

Fazit zu HDI-Rollen und Umgang mit XS Advanced

Die Umstellung von Repository-Rollen zu HDI-Rollen macht die Rollenerstellung nicht einfacher; sehr ähnlich ist der Vorgang in der Cloud mit dem BAS (Business Application Studio). Bis zum Wartungsende am 31.12.2025 wird allenfalls das Migrationstool, um Repository Objekte zu HDI-Objekten zu migrieren, weitere Verbesserungen erfahren.

Es ist ratsam, sich rechtzeitig mit den Möglichkeiten der XS Advanced-Entwicklung vertraut zu machen, denn auch wenn Endbenutzern kein direkter Datenbankzugriff gewährt wird, so wird ein Berechtigungskonzept für Datenbankadministratoren benötigt.

Hier gehts zum Blog: Möglichkeiten der Rollen-Administration in SAP HANA

Bringen Sie Ihre SAP-Systeme auf ein neues Level 

Xiting liefert Ihnen als kompetenter SAP Security-Experte umfassended Know-how im Umfeld von SAP HANA XSA, SAP HANA Web IDE, SAP HANA Cockpit, SAP HANA Studio und vieles mehr, um zu einem konsistenten SAP HANA-Rollenkonzept zu gelangen. Sie haben Fragen zu SAP S/4HANA, Berechtigungsprüfung und Fiori? Auch hier steht Ihnen Xiting als ganzheitlicher Security-Dienstleister zur Verfügung.

Sie haben Fragen zu SAP HANA Security?

Kontakt

Nehmen Sie Kontakt mit uns auf!

Haben Sie Fragen zu unseren Produkten?

+41 43 422 8803
[email protected]
+49 7656 8999 002
[email protected]
+1 855 594 84 64
[email protected]
+44 1454 838 785
[email protected]
Kontakt
Webinare

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.

Hier anmelden