SAP HANA wird häufig noch als „reine Datenbank“ angesehen. Seit seiner Einführung hat sich SAP HANA stetig weiterentwickelt und stellt inzwischen neben der Datenbank-Funktionalität eine äußerst komplexe Entwicklungsplattform dar sowie umfangreiche Analytics-Funktionen. Unter anderem ist mit den Standard-Datenbankfunktionen ein Zugriff auf die SAP ERP / SAP S/4HANA-Daten möglich, sowohl lesend als auch ändernd. Um Manipulationen an Daten und Geschäftsprozessen zu verhindern, werden in SAP ERP / SAP S/4HANA komplexe Berechtigungskonzepte implementiert. Die SAP HANA-Datenbank bleibt dabei häufig noch außen vor, so dass dort evtl. uneingeschränkte Zugriffe auf die Daten möglich sind. Daher ist zu einem ein umfassendes Sicherheits- und Berechtigungskonzept für den Betrieb von HANA-Datenbanken erforderlich, zum anderen sind die prüfungsseitig natürlich bei jeder Systemprüfung mit zu betrachten. Dieser Artikel zeigt die Möglichkeiten zur Prüfung der Berechtigungen in SAP HANA-Datenbanken auf.

Tabellen für die Analyse

In SAP HANA existiert kein Infosystem, wie es aus ABAP-Systemen bekannt ist (z.B. Transaktion SUIM). Hier sind die Möglichkeiten von SQL zu nutzen. Zum einen können die Tabellen und Views analysiert werden, in denen Informationen zu den Benutzern, Rollen und Berechtigungen gespeichert werden. Zum anderen stehen Views und Skripte zur Verfügung, um Berechtigungen auszuwerten.

Die nachfolgende Tabelle zeigt die Public-Views, die zur Analyse von Berechtigungen erforderlich sind. Rollen können n-fach ineinander verschachtelt werden, dies ist über die Views GRANTED_ROLES abgebildet. Benutzen können neben Rollen auch Berechtigungen direkt in den Stammsatz eingetragen werden. Dies ist in der View GRANTED_PRIVILEGES ersichtlich. Diese Tabellen eignen sich, um einen ersten Überblick über die eingerichteten Benutzer und Berechtigungen zu erhalten.

View

Beschreibung

USERS

Liste aller Benutzer in der SAP HANA-Datenbank.

ROLES

Liste der Rollen (Katalog-, Repository- und HDI-Rollen)

GRANTED_PRIVILEGES

Zugeordnete Berechtigungen zu Rollen und Benutzern

GRANTED_ROLES

Zugeordnete Rollen zu Rollen und Benutzern

Eine Auflistung aller Benutzer im System erhalten Sie mit dem SQL-Statement:

SELECT * FROM USERS

Für eine Auflistung aller Benutzer mit ihren zugeordneten Rollen geben Sie folgendes Statement ein:

SELECT * FROM GRANTED_ROLES WHERE GRANTEE_TYPE = ‘USER’

Hier werden auch die Rollen der Standardbenutzer mit ausgegeben. Diese können bereits im SQL-Statement rausgefiltert werden:

SELECT * FROM GRANTED_ROLES WHERE GRANTEE_TYPE = ‘USER’

     AND GRANTEE <> ‘SYSTEM’
     AND GRANTEE NOT LIKE ‘_SYS%’
     AND GRANTEE NOT LIKE ‘SYS%’
     AND GRANTEE NOT LIKE ‘%_RT’
     AND GRANTEE NOT LIKE ‘%_DT’
     AND GRANTEE NOT LIKE ‘%#DI’
     AND GRANTEE NOT LIKE ‘%#OO’
     AND GRANTEE NOT LIKE ‘HDI_%’
     AND GRANTEE NOT LIKE ‘SBSS%’
     AND GRANTEE NOT LIKE ‘USR_%’
     AND GRANTEE NOT LIKE ‘XSSQL%’

Um Berechtigungen anzuzeigen, die direkt in den Stammsatz eines Benutzers eingetragen, also nicht über Rollen zugeordnet wurden, nutzen Sie folgendes Statement:

SELECT * FROM GRANTED_PRIVILEGES WHERE GRANTEE_TYPE = ‘USER’
AND (SCHEMA_NAME IS NULL OR GRANTEE <> SCHEMA_NAME)

Views für Berechtigungsprüfungen

Zur Analyse von Berechtigungen stellt HANA Views zur Verfügung, siehe nachfolgende Tabelle. Diese Views stellen das Infosystem einer HANA-Datenbank dar. Mit ihnen können einzelne Berechtigungen bzw. Benutzer und Rollen analysiert werden.

View

Beschreibung

EFFECTIVE_PRIVILEGES

Effektive Berechtigungen pro Benutzer (Einschränkung auf Benutzernamen erforderlich)

EFFECTIVE_PRIVILEGE_GRANTEES

Effektive Berechtigungen für bestimmte Berechtigungen (Einschränkung mindestens auf Objekttyp und Berechtigung erforderlich)

EFFECTIVE_ROLES

Effektive Rollen pro Benutzer (Einschränkung auf Benutzernamen erforderlich)

Die klassische Berechtigungsprüfung stellt die Views dar. Hier können die Berechtigungen (Privileges) angegeben werden, die analysiert werden sollen. Um z.B. zu ermitteln, wer Berechtigungen zur Benutzerpflege besitzt, wird folgendes Statement genutzt:

SELECT * FROM EFFECTIVE_PRIVILEGE_GRANTEES WHERE
PRIVILEGE = ‘USER ADMIN’ AND OBJECT_TYPE = ‘SYSTEMPRIVILEGE’

Besonders relevant ist natürlich die Frage, wer Zugriff auf die Daten ERP- / S/4HANA-Systems hat. Dafür wird abgefragt, wer Berechtigungen auf das entsprechende Schema hat, in nachfolgender Abfrage als ‘SAP’ bezeichnet:

SELECT * FROM EFFECTIVE_PRIVILEGE_GRANTEES WHERE GRANTEE_TYPE = ‘USER’
     AND PRIVILEGE IN (‘SELECT’, ‘INSERT’, ‘DELETE’, ‘UPDATE’)
     AND OBJECT_TYPE = ‘SCHEMA’
     AND SCHEMA_NAME = ‘SAP’

Skripte zur Berechtigungsanalyse

Mit dem SAP-Hinweis 1969700 liefert SAP das Skript HANA_Security_GrantedRolesAndPrivileges aus. Das Skript zeigt zu den ausgewerteten Benutzern und Rollen alle Berechtigungen an. Dabei können die Berechtigungen in den Rollen bis zu einer Rekursionstiefe von 5 Stufen ausgewertet werden. Werden keine Selektionskriterien angegeben, so listet das Skript alle Benutzer und Rollen mit jeweils allen Berechtigungen auf. Das Ergebnis kann dann mit anderen Programmen, z.B. MS Excel, weiter ausgewertet werden. Die nachfolgende Abbildung zeigt die Modification Section, in der die Selektionen eingegeben werden können, und das Ergebnis einer Auswertung:

Analyse der Berechtigungen mit SAP Access Control

SAP HANA-Berechtigungen können auch mit SAP Access Control geprüft werden. Hierzu werden Berechtigungsabfragen basierend auf den HANA-Privileges erstellt. Regelwerke für SAP HANA können auch automatisiert erstellt. Die Easy Content Solution (ECS), Version 2021.2, enthält bereits alle wesentlichen HANA-Berechtigungsabfragen, die dann in ein SAP Access Control-Regelwerk übertragen werden können.

Analyse der Berechtigungen mit CheckAud®

Ab dem CheckAud-Release 2021.2 ist es möglich, SAP HANA-Berechtigungen automatisiert auszuwerten. Standardmäßig wird ein großes Set an Abfragen bereits mit ausgeliefert und in einem Standard-Baum zur Verfügung gestellt. Der Aufbau des Baumes entspricht dem Buch SAP HANA – Sicherheit und Berechtigungen aus dem Rheinwerk-Verlag. Die nachfolgende Abbildung zeigt den Aufbau des Baumes. Für SAP HANA-Analysen wurden dieselben Mechanismen wie bereits für die ABAP-Auswertungen implementiert. So können z.B. HANA-Datenbanken automatisch gescannt und analysiert werden. Für den Scan können die Systeme aus dem SAP HANA Cockpit und/oder SAP HANA Studio eingelesen werden.