Die SAP HANA Plattform ist aufgrund der großen Auswahl an Tools und Endbenutzer-Features für einen großen Benutzerkreis in der täglichen Arbeit präsent. Um Sicherheit bei Zugriffen vieler Benutzer auf verschiedene Bereiche des Systems zu gewährleisten und eine effiziente Berechtigungsvergabe zu ermöglichen, ist ein tiefes Verständnis über die Funktionsweise von Berechtigungen in SAP HANA unabdingbar.
Der vorliegende Blogbeitrag führt durch die Grundlagen der SAP HANA Berechtigungen und legt mithilfe beispielhafter Best Practices dar, was bei der Vergabe von Berechtigungen bedacht werden muss, um Sicherheit, Effizienz und Wartbarkeit sicherzustellen.
Die SAP HANA-Plattform bietet weitaus mehr Funktionen als herkömmliche Datenbankmanagementsysteme. Dank der umfangreichen Möglichkeiten zur Datenmodellierung und Datenvirtualisierung kann SAP HANA hybrid mit klassischen Data Warehouse-Technologien wie SAP BW/4HANA wirksam eingesetzt werden oder das klassische Data Warehouse sogar je nach Anwendungsfall ersetzen („HANA Native“). Zudem kann die SAP HANA-Plattform zur Datenanalyse – und dank dem integrierten Anwendungsserver – auch als Plattform für webbasierte Anwendungen verwendet werden. SAP HANA ist also längst nicht mehr als klassische Datenbank zu verstehen, die nur für Datenbankadministratoren von Interesse ist, sondern auch für „Business User“ als Endanwender.
Den Zugriff vieler Nutzer, darunter auch technisch teils weniger versierten Personen, auf die Plattform gezielt zu steuern ist daher eine unerlässliche Aufgabe. Dabei sollte insbesondere die Risikominimierung durch Verhinderung unautorisierter Zugriffe außerhalb des vorgesehenen Funktionsumfangs im Mittelpunkt stehen. Es muss also sichergestellt werden, dass Nutzer ausschließlich für die in ihrem Alltag benötigten Funktionen autorisiert werden. Gemäß des sog. Minimalprinzips werden daher nur die minimal notwendigen Rechte zur Erfüllung der jeweiligen Aufgabe erteilt. Darüber hinaus sollten kritische Aufgabenbereiche aufgrund von Interessenskonflikten wenn möglich separiert werden.
Die zentralen Begriffe für die Zugriffssteuerung auf die SAP HANA-Plattform sind Privilegien und Rollen. Die Rechte zur Ausführung von bestimmten Aktionen und Funktionen auf der Datenbank und der dazugehörigen Datenbankobjekte werden über eine Vielzahl an erteilbaren Privilegien abgebildet. Zwar können diese Privilegien auch unmittelbar einem Nutzer zugewiesen werden, jedoch sollte die Erteilung der Privilegien im Normalfall „indirekt“ über Rollen erfolgen. Mehrere Privilegien können dabei gebündelt einer Rolle zugeteilt werden, die dann wiederum einem oder mehreren Nutzern zugeteilt wird. Nutzer können mehrere Rollen innehaben.
Privilegien
Es gibt fünf Arten von Privilegien:
Systemprivilegien sind für die Steuerung von administrativen Aktivitäten am System zuständig. Das beinhaltet unter anderem die Benutzer- und Rollenverwaltung oder die Durchführung von Backups und Audits. Außerdem können über Systemprivilegien auch Rechte für den Import von externen Ressourcen und für das Monitoring der Datenbank erteilt werden. Systemprivilegien sind also vor allem für Datenbankadministratoren relevant.
Mithilfe von Objektprivilegien kann der Zugriff auf Datenobjekte wie Tabellen und Views sowie die Änderung dieser Objekte spezifisch gesteuert werden. Um eine bestimmte Aktion für ein Objekt auszuführen, benötigt der ausführende Benutzer das dazugehörige Objektprivileg für das Objekt oder alternativ für das Schema, in dem das Objekt abliegt. Ein Beispiel für ein Objektprivileg, das auf Basis eines Schemas vergeben werden kann, ist „CREATE ANY“. „CREATE ANY“ ermöglicht die Erstellung sämtlicher Objekte (z.B. Tabellen, Views, Prozeduren) im autorisierten Schema. Andere Objektprivilegien wie „SELECT“ können auf Schema-Ebene oder für einzelne Views und Tabellen vergeben werden.
Paketprivilegien autorisieren die Ausführung von Aktionen für Pakete im SAP HANA Repository. Um lesenden Zugriff auf ein Paket zu erteilen, muss die Berechtigung „REPO.READ“ für das gewünschte Paket vergeben werden. Mit „REPO.EDIT_NATIVE_OBJECTS“ hingegen wird die Berechtigung zur Änderung von Designzeitobjekten in dem jeweiligen Paket erteilt.
TIPP: Auf der HANA-Datenbank wird zwischen nativen und aus fremden Systemen importieren Paketen unterschieden. Das oben genannte Paketprivileg „REPO.EDIT_NATIVE_OBJECTS“ gilt nur für Pakete aus dem eigenen System. Für importierte Objekte lautet die entsprechende Berechtigung „REPO.EDIT_IMPORTED_OBJECTS“. Es wird allerdings nicht empfohlen, abseits von Notfallreparaturen Änderungen an importierten Paketen durchzuführen.
Analyseprivilegien ermöglichen die Definition von Berechtigungen auf einer etwas granulareren Ebene als die Objektprivilegien. Mit dieser Art von Privilegien wird der Zugriff auf die Daten der jeweiligen Objekte auf Zeilenebene bestimmt. Sind beispielsweise in einer View die Verkaufsdaten eines Unternehmens über alle Regionen hinweg enthalten, kann mithilfe von Analyseprivilegien der Zugriff für regionale Vertriebsleiter auf ihre Region eingeschränkt werden. Zum Erstellen und Löschen von Analyseprivilegien sind die Systemprivilegien „CREATE STRUCTURED PRIVILEGE“ und „STRUCTUREDPRIVILEGE ADMIN“ vonnöten. Zusätzlich benötigen die Ersteller von Analyseprivilegien Paketprivilegien für die Pakete, in denen die Designzeit-Objekte der einzuschränkenden Datenmodellen abliegen.
Zu guter Letzt gibt es zusätzlich noch Anwendungsprivilegien zur Steuerung von Berechtigungen für SAP HANA XS Classic Anwendungen. Da SAP HANA XS Classic mittlerweile veraltet ist und die Anwendungsberechtigungen in SAP HANA XS Advanced nicht mehr über Anwendungsprivilegien gesteuert werden, gehen wir an dieser Stelle nicht weiter auf die Art der Privilegien ein.
Rollen
Die zur Zugriffssteuerung notwendigen Privilegien haben wir jetzt grundlegend kennengelernt. Die notwendigen Privilegien können in Rollen gebündelt werden und den Nutzern zur Erfüllung ihrer Aufgaben erteilt werden. Dabei wird grundsätzlich zwischen zwei Arten von Rollen unterschieden: Laufzeitbasierte Rollen und Designzeit-Rollen.
Laufzeit-Rollen, auch Katalogrollen genannt, existieren – wie der Name bereits verrät – als Laufzeit-Objekte auf der Datenbank. Aus diesem Grund kann diese Art Rolle nicht zwischen mehreren Systemen transportiert werden oder einer Versionsverwaltung unterzogen werden. Zudem befinden sich Katalogrollen im Besitz der jeweiligen Ersteller. Dies bedeutet auch, dass Katalogrollen gelöscht werden, wenn der User des Erstellers gelöscht wird.
Designzeit-Rollen bringen weitreichende Transport- und Versionsverwaltungsmöglichkeiten mit sich und sind überdies nicht an den Ersteller gebunden, sondern werden durch den technischen Nutzer „_SYS_REPO“ (XSC) oder den Rollen-Container (XSA) verwaltet. In den meisten Anwendungsfällen sind sie somit den Katalogrollen vorzuziehen. Designzeit-Rollen haben sich allerdings mit dem Wechsel von SAP HANA XS Classic zu SAP HANA XS Advanced grundlegend geändert: Während man in SAP HANA XS Classic im Repository sogenannte Repository-Rollen angelegt hat, gibt es in SAP HANA XS Advanced die sog. „HDI-Rollen“, die auf der HANA Deployment Infrastructure (HDI) basieren. Repository-Rollen sollten, wann immer möglich, in HDI-Rollen migriert werden.
TIPP: Mit der SAP HANA Datenbank liefert SAP bereits einige vordefinierte Laufzeit-Rollen und Designzeit-Rollen. SAP empfiehlt allerdings aus Sicherheitsgründen diese Rollen grundsätzlich nicht an User zu vergeben, da sie für viele Szenarien überprivilegiert sind. Vielmehr können diese Rollen als Vorlage oder als Ausgangspunkt für die Entwicklung eigener Rollen genutzt werden. Ein Beispiel für eine vordefinierte Standard-Rolle ist „MODELING“. Diese Rolle verfügt über sehr viele Privilegien und ermöglicht die Erstellung sämtlicher Modelle und analytischer Privilegien auf der SAP HANA Datenbank und sollte daher nur mit Bedacht vergeben werden.
In „HANA Native“-Entwicklungsszenarien oder in hybriden Szenarien, in denen zumindest ein Teil der Datenmodellierung und des Datenzugriffs direkt auf der Datenbank erfolgt, kann schnell ein komplexes Rollensystem entstehen. Um auch bei einer großen Anzahl an Rollen den Überblick zu bewahren, können einige Best Practices Abhilfe schaffen.
Ein zentraler Punkt ist die Dokumentation aller Rollen, die im System vorliegen und den Nutzern zugewiesen werden können. Dies beinhaltet sowohl den Namen der Rolle, eine Auflistung der mit der Rolle einhergehenden Rechte sowie eine kurze Beschreibung über die Verwendung der Rolle. Eine transparente Dokumentation schafft Klarheit darüber, weshalb eine Rolle existiert und welchen Zweck sie erfüllt. Zusätzlich wird so verhindert, dass redundante Rollen mit gleichen oder ähnlichen Rechten angelegt werden, die langfristig die Wartbarkeit des Rollensystems beeinträchtigen.
Ebenfalls wichtig ist die Strukturierung der Rollenvergabe. Benutzer sollten aus Sicherheitsgründen niemals dazu autorisiert sein, sich selbst Rechte oder Rollen zuzuweisen. Stattdessen sollte ein aus mehreren Teilschritten bestehender Genehmigungsprozess verwendet werden, nach dessen Durchführung ein Benutzer die für ihn vorgesehenen und relevanten Rollen zugewiesen bekommt. Die konkrete Anzahl der nötigen Prüfungs- und Genehmigungsschritte innerhalb des Genehmigungsprozesses sind jedoch vom Unternehmen und der identifizierten Risiken abhängig. In jedem Fall sollte zumindest eine fachliche Überprüfung der angeforderten Rechte erfolgen, bevor die Zuweisung im System durch eine Drittperson erfolgt.
Häufig benötigen Benutzer bestimmte Berechtigungen nur für einen beschränkten Zeitraum, während sie von anderen Berechtigungen täglich Gebrauch machen. Um zu vermeiden, dass Benutzer überflüssige Rollen besitzen, sollte die Rollenzuweisung in regelmäßigen Abständen reviewt werden. Weiterhin sollten auch die einzelnen Rollen regelmäßig (z.B. jährlich) einem fachlichen Review unterzogen werden. So wird sichergestellt, dass alle Rollen im System relevant und aktuell sind. Veraltete, obsolete Rollen sollten als solche ausgewiesen bzw. entfernt werden.
Die Vergabe von Berechtigungen in SAP HANA erfolgt über Rollen, die verschiedene Privilegien enthalten. Dabei muss zum einen eine Abwägung über die Art der Rolle, sowie über den Umfang der entsprechenden Berechtigungen getroffen werden. Mithilfe von Best Practices kann der Lebenszyklus der Rollen von der Erstellung und der Vergabe bis zum Review und der Dekommissionierung möglichst transparent und geordnet gestaltet werden.
In diesem Blogbeitrag lag der Fokus auf den Berechtigungen, die unmittelbar mit der SAP HANA Plattform in Verbindung stehen. Wenn Sie Interesse an dem Zusammenspiel der Berechtigungen zwischen SAP HANA und SAP BW/4HANA haben, lesen Sie gerne unseren Blogbeitrag „BW/4HANA Reporting-Berechtigungen: BW Analyse-Berechtigungen wirken auch auf der HANA DB“! Und falls die im Blogbeitrag erwähnte „HANA Native“-Entwicklung Ihr Interesse geweckt hat, finden Sie im Blogbeitrag „SAP HANA Native Modelling – Zurück auf Anfang?“ weitere Informationen sowie die Vorteile und Nachteile der nativen Modellierung in SAP HANA.
Benötigen Sie Unterstützung beim Thema SAP HANA Berechtigungen oder wünschen Sie sich ein für Ihr System maßgeschneidertes SAP HANA Berechtigungskonzept? Kontaktieren Sie gerne unsere Experten.
Wir freuen uns über Ihre direkte Kontaktaufnahme!