Privilegien-Arten in SAP HANA – Was bedeuten und wie funktionieren sie?
Für gewöhnlich benötigt ein Endbenutzer eine zwischen geschaltete SAP-ABAP-Applikation, wie bspw. SAP ERP, SAP S/4HANA oder BW, welche die technische Kommunikation des Datenabrufs von der Datenbank ermöglicht. Wenn ein Benutzer jedoch nun direkt auf Daten in Views, Tabellen usw. in der SAP HANA DB zugreifen möchten, benötigt dieser neben einem eigenen Datenbankbenutzer auch Rollen in der SAP HANA Datenbank.
Die Berechtigungsrollen in der SAP HANA DB bündeln (wie in einem SAP-ABAP-System) die Berechtigungen, nur werden diese in der SAP HANA DB als Privilegien bezeichnet.
Im letzten Blog zum Thema Möglichkeiten der Rollen-Administration in SAP HANA wurde bereits auf die Unterschiede der verschiedenen Rollenarten eingegangen. Daher widmet sich dieser Blog nun der Aufgleisung und Darstellung von SAP HANA DB Privilegien, welche die eigentlichen Berechtigungen in dieser Datenbankumgebung darstellen.
In der SAP HANA DB unterscheidet man zwischen den folgenden 6 Privilegienarten: System-, Paket-, Objekt-, Analytische-, Applikations-Privilegien und Privilegien auf Benutzern.
Table of Contents
Systemprivilegien
Systemprivilegien ermöglichen administrative Tätigkeiten, wie Backup/Restore, Anpassung von Systemparametern, Benutzerverwaltung, Export/Import, Auditierung usw.
Die Systemprivilegien gelten system- bzw. tenantweit und können nicht begrenzt oder erweitert werden. So ist es zum Beispiel nicht möglich, dass Editieren von ini-files einzuschränken.
Paketprivilegien
Paketprivilegen werden für den Zugriff auf Repository Objekte, wie Views, Repository-Rollen und stored Procedures benötigt. Paketprivilegien müssen individuell für kundeneigene Objekte angelegt und ausgeprägt werden. Diese Privilegien sind hierarchisch; das bedeutet Zugriff auf oberer Ebene wird auf die unteren Ebenen «vererbt».
Das Repository-Paket XITING beinhaltet mehrere Unter-Pakete. Besitzt ein Benutzer oder Entwickler auf der XITING Paket-Ebene Editierrechte, so gilt das auch für alle Unter-Pakete. Das Privileg auf das «root»-Paket (repo_package_root) ermöglicht das Bearbeiten aller Pakete, die der Kunde anlegt.
Damit die Objekte innerhalb eines Pakets für den Benutzer sichtbar werden, muss mindestens die Ausprägung repo.read vergeben werden. Die anderen Ausprägungen sind für Entwickler relevant. Objekte haben den Status nativ auf der SAP HANA DB, auf der sie angelegt wurden. Werden die Objekte in weitere SAP HANA Datenbanken (Test-, Produktivsystem) importiert, ändert sich der Status auf «importiert».
Dadurch können Entwickler mit diesem zugewiesenen Privileg Objekte auf der Entwicklungs-Datenbank anlegen bzw. ändern. Auf den darauffolgenden Datenbanken (Test und Produktion) können Sie sich die Objekte nur anzeigen lassen.
Objektprivilegien
Repository-Objekte sind immer einem Paket zugeordnet. Objekte aus Paketen können transportiert werden, sofern die Pakete einer sogenannten Delivery Unit zugeordnet sind.
Objektprivilegien ermöglichen den Zugriff auf Tabellen, Views, Procedures etc. Diese Privilegien müssen ebenfalls, je nach Art des Objektes (Tabelle, View etc.), ausgeprägt werden. Dabei ist die Integration von typischen SQL-Aktionen notwendig.
Analytische Privilegien
Analytische Privilegien sind notwendig, falls nicht alle Daten eines oder mehrerer Views für jeden Benutzer sichtbar sein sollen, z. B. für die Einschränkung auf einen bestimmten Buchungskreis.
Ob ein analytisches Privileg für den Zugriff benötigt wird, wird beim Anlegen eines Views vorher definiert.
Applikations-Privilegien
Applikations-Privilegien ermöglichen den Aufruf von SAP XSC(lassic) WEB Applikationen. Sie sind nicht weiter konfigurierbar und ermöglichen den Aufruf von Applikationen über einen Browser.
Privilegien auf Benutzern
Privilegien auf Benutzern ermöglichen das ausschließliche Einschalten des Debuggers und stehen im HANA Studio und in der XSC Applikation Security für Catalog-Rollen zur Auswahl. Dieses Privileg wird zum Debuggen von stored Prodedures eines anderen Entwicklers benötigt.
Privilegienprüflogik
Erst eine Kombination verschiedenster Privilegien ermöglicht den Zugriff auf beispielsweise einen View oder eine Tabelle. So benötigt ein Benutzer, um auf einen View zugreifen zu können, das “repo.read” Paket-Privileg für das Paket, unter dem der View erstellt wurde. Das Objekt-Privileg “repository_rest” wiederum, um auf Objekte im HANA Repository zugreifen zu können. Des Weiteren das Objekt-Privileg “select”, um auf den View im Schema “_sys_bic”, ein select um auf das schema “_sys_bi” durchzuführen. Zum Schluss noch ein analytisches Privileg für den View, falls dies vom Entwickler des Views vorher festgelegt wurde.
Für den ungefilterten Zugriff auf den Inhalt einer Tabelle genügt das Objekt-Privileg mit der Ausprägung “select” auf die Tabelle im jeweiligen Schema. Soll der Inhalt einer Tabelle nicht für alle Benutzer im Klartext einsehbar sein, steht ein besonderes Objekt-Privileg zur Verfügung: “unmasked”. Auf die Möglichkeit dieser Datenmaskierung oder Anonymisierung wird in einem der folgenden Blog-Beiträge eingegangen.
Fazit
Xiting unterstützt Sie gern bei der Erstellung und Analyse von Rollen und Privilegien. Werfen Sie dafür einen Blick in unsere SAP HANA Security Services.
Mit der Xiting Authorizations Management Suite haben Sie außerdem die Möglichkeit, Ihre bestehenden Rollen auf kritische Privilegien, SOD-Verstöße und weitere SAP HANA DB-relevante Sicherheitseinstellungen zu überprüfen.
Viel Erfolg beim Erstellen von Privilegien und Rollen in der SAP HANA DB. Bei Fragen stehen wir Ihnen gerne mit unserer Expertiese zur Verfügung. Wenden Sie sich dafür einfach an [email protected].
- 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