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.
Table of Contents
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“:
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:
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:
Anschließend wird der neu angelegte Space der Tenant-Datenbank zugewiesen:
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.
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.
Innerhalb des Workspaces wird über New > Project from Template ein neues Projekt angelegt:
HDI-Rollen werden in einem Multi-Target Application Project angelegt und Calculation Views, Tabellen etc. als SAP HANA Database Application.
Namen vergeben, Next.
Wenn das neue Projekt angelegt wurde, müssen die Projekteigenschaften aufgerufen werden:
Als nächstes muss ein Space Builder im neu angelegten Space installiert werden. Dies dauert wenige Minuten:
Danach muss ein SAP HANA Database Module angelegt werden über MTA Projekt > New > SAP HANA Database Modul.
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:
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:
Im Ordner „src“ können nun die Entwicklungsobjekte, wie beispielsweise Rollen, angelegt werden:
Hier können nun neue Ordner für verschiedene Rollen angelegt werden, z. B. UserAdmin, BasisAdmin etc. oder direkt – ohne Ordner:
Der Namespace kann auch hier leer bleiben und die Rolle erstellt werden.
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.
Der Build schlägt fehl, weil dem Container Owner HDB_ROLLEN_1#OO das Privileg, welches in die Rolle aufgenommen werden soll, fehlt:
Der Container Owner muss die Privilegien, die in die Rolle inkludiert werden, besitzen und weitergeben dürfen:
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.
FAQ
Mit der Möglichkeit der Speicherung in einem lokalen oder remote GIT Repository ist auch eine Versionierung und Historie der Rollen vorhanden.
Nein, dafür muss ein ‚User defined‘ Service erstellt werden in der XS Advanced Administration.
Nein.
Ein Verschachteln von XS Classic und XS Advanced Rollen ist nicht möglich.
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?
- 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