81
Berechtigungen in SAP ® BW, HANA und BW/4HANA Bonusmaterial Christoph Kretner Jascha Kanngießer

Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

  • Upload
    doquynh

  • View
    307

  • Download
    13

Embed Size (px)

Citation preview

Page 1: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

Berechtigungen in SAP® BW, HANA und

BW/4HANA

Bonusmaterial

Christoph Kretner Jascha Kanngießer

Page 2: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

INHALTSVERZEICHNIS

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2

Inhaltsverzeichnis

Übungen & Musterlösungen zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 4

1 Kapitel: Berechtigungen in SAP BW 5 Übung 1-1: Anlegen eines Testuser 5

Übung 1-2: Eine Endanwender-Rolle erstellen 5

Übung 1-3: Berechtigungsrelevanz von InfoObjekten setzen 6

Übung 1-4: Erstellen einer Query mit Berechtigungsvariablen 6

Übung 1-5: Eine einfache Analyseberechtigung anlegen 9

Übung 1-6: Eine Hierarchieberechtigung anlegen 10

Übung 1-7: Eine Kennzahlberechtigung anlegen 11

Übung 1-8: Eine Aggregationsberechtigung anlegen 11

Übung 1-9: Eine Datenberechtigung mit Customer Exit anlegen 12

Übung 1-10: Eine Analyseberechtigung generieren 14

Übung 1-11: Eine virtuelle Berechtigung erstellen 16 Verwendung des BAdIs RSEC_VIRTUAL_AUTH_BADI 16 Verwendung des BAdIs RSEC_VIRTUAL_AUTH_CHECK_BADI 19 Verwendung des BAdIs RSEC_VIRTUAL_EXEC_AUTH_BADI 19 Übung 1-12: Multidimensionale Berechtigungen 20

Übung 1-13: Stammdatenpflege 21

2 Kapitel: Berechtigungen in SAP HANA 24 Übung 2-1: Entwicklungsuser anlegen 24

Übung 2-2: Systemprivilegien zuweisen 24

Übung 2-3: Paket für Entwicklungen anlegen 25

Übung 2-4: Rolle für Zugriff auf SAP-HANA-View anlegen 26

Übung 2-5: Traces konfigurieren und Fehler analysieren 27

Übung 2-6: Externe SAP-HANA-View generieren 29

Übung 2-7: Prüfen Sie die Einstellung »Apply Privileges« 30

Übung 2-8: Eine flache Berechtigung anlegen 31

Übung 2-9: Ein analytisches Privileg für den Vollzugriff auf die View YEPM_CP_SO anlegen 32

Übung 2-10: Query mit externer HANA-View inklusive Hierarchien anlegen 33

Übung 2-11: Analytisches Privileg mit Hierarchiefilter anlegen 35

Übung 2-12: Kennzahlberechtigung anlegen 37

Übung 2-13: Aggregationsberechtigung anlegen 37

Übung 2-14: Analytisches Privileg mit der Option »Dynamic« anlegen 38

Page 3: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

INHALTSVERZEICHNIS

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 3

3 Kapitel: Berechtigungen in SAP BW on HANA und BW/4HANA 41 Übung 3-1: Pflegen der DBMS-User für einen BW-User 41

Übung 3-2: HANA-native Daten im BW konsumieren 42

Übung 3-3: Überprüfen des technischen BW-Benutzers 43

Übung 3-4: Vergabe allgemeiner Berechtigungen 43

Übung 3-5: Anlegen des Rollenusers in SAP HANA 44

Übung 3-6: Pflegen des Rollenusers im BW 46

Übung 3-7: Replizieren von BW-Berechtigungen nach HANA 46

Übung 3-8: Konsistenzprüfung einer View 49

Übung 3-9: Generierte Privilegien wiederverwenden 50

Übung 3-10: BW Berechtigungsdaten wiederverwenden 51

Übung 3-11: Berechtigungen aus einem HANA System auslesen 53

Übung 3-12: Zentrale Pflege der Berechtigungen 62

4 Zusätzliche Informationen und Beispiele 64 Exkurs: Arbeiten mit den SAP BW-Modeling-Tools 64

Beispiel: Multidimensionale analytische Privilegien anlegen 65

Beispiel: Dynamische Implementierung multidimensionaler analytischer Privilegien 66

Beispiel: Eine Prozedur zum Generieren von analytischen Privilegien 72

Beispiel: Dynamische Privilegienvergabe via SQL-Prozedur 79

Page 4: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 4

Übungen & Musterlösungen zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« Die nachfolgende Zusammenstellung von Übungen gibt Ihnen die Möglichkeit, die in unserem Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« beschriebenen Vorgänge noch einmal im Detail nachzuvollziehen und die an-gebotenen Lösungswege selbst auszuprobieren.

Beispiel-Daten Für unsere Beispiele im Buch verwenden wir den SAP E-Procurement Demo Content (In-foArea 0EPM_CONT_DELV), für BW on HANA, der mit BW 7.5 SP04 ausgeliefert wurde.

Sobald die Datenmodelle übertragen wurden, können Sie mithilfe des EPM-Datengenerators (Transaktion SEPM_DG) eigene Beispiel-Daten generieren.

Verwendete Software Versionen Soweit nicht anders vermerkt, basieren alle Beispiele auf SAP BW 7.5 SP07, bzw. BW/4 1.0 SP04 und SAP HANA SPS12, bzw. HANA 2. Als Modellierungswerkzeuge kommen die SAP GUI 7.4 PL11, die BW-Modeling-Tools 1.17 sowie die HANA Web Workbench zum Einsatz. Ausschließlich in SAP BW4/HANA oder SAP HANA 2 verfügbare Funktionen sind explizit als solche gekennzeichnet.

Page 5: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 5

1 Kapitel: Berechtigungen in SAP BW

Übung 1-1: Anlegen eines Testuser Für unsere späteren Testfälle müssen wir zunächst einen Testuser im System anlegen. Dazu rufen Sie die Transaktion SU01 auf, erstellen den Benutzer »USER_1« und weisen ihm ein Initialpasswort zu.

1. Starten Sie die Transaktion SU01. 2. Geben Sie ins Feld BENUTZER den Namen USER_1 ein und drücken Sie den Button AN-

LEGEN (F8). 3. Geben Sie auf dem Tab ADRESSE mindestens einen Nachnamen an. 4. Legen Sie auf dem Tab LOGONDATEN ein initiales Passwort fest. 5. Speichern Sie.

Übung 1-2: Eine Endanwender-Rolle erstellen Erstellen Sie für die nachfolgenden Beispiele eine einfache Endanwender-Reportingrolle »YEPM_REPORTING_USER«. Diese soll folgende Berechtigungen umfassen:

Ausführen von Queries im Namensraum »YEMP*«, Erstellen und Ausführen von Analysis Office Workbooks S_RFC, das wir der Einfachheit halber mit * ausprägen

(Für Analysis for Office sollen die Funktionsgruppen »SYST«, »RSAO_CORE« und »RSBOLAP_BICS*«)

Die neu erstellte Rolle weisen Sie nun unserem Anwender »USER_1« zu.

1. Starten Sie die Transaktion PFCG. 2. Geben Sie in das Feld Rolle den Namen YEPM_REPORTING_USER ein und drücken Sie

den Button EINZELROLLE. 3. Nach der Eingabe einer Beschreibung speichern Sie die Rolle. 4. Gehen Sie auf das Tab BERECHTIGUNGEN und drücken den Button BERECHTIGUNGSDA-

TEN ÄNDERN. 5. Wählen Sie im nächsten Dialog keine Vorlage auswählen. 6. Fügen Sie über den Button MANUELL die folgenden Berechtigungsobjekte ein:

S_RS_COMP, S_RS_COMP1, S_RS_AO und S_RFC. 7. Prägen Sie die Berechtigungen aus wie in Abbildung 1.1 dargestellt. 8. Generieren Sie das Berechtigungsprofil. 9. Weisen Sie die Rolle dem Testuser USER_1 zu.

Page 6: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 6

Abbildung 1.1: Rolle YEPM_REPORTING_USER

Übung 1-3: Berechtigungsrelevanz von InfoObjekten setzen Für unsere nächste Übung setzen Sie bitte das InfoObjekt »Produktkategorie« (0EPM_PRCAT) und das Navigationsattribut »Land« des Geschäftspartners (0EPM_BP__0EPM_CNTRY) berechtigungsrelevant.

1. Öffnen Sie das InfoObjekt 0EPM_PRCAT (Produktkategorie) zur Bearbeitung in den BW-Modeling-Tools und aktivieren seine Berechtigungsrelevanz auf dem Tab GENERAL.

2. Öffnen Sie das InfoObjekt 0EPM_BP in den BW-MT und setzen auf dem Tab ATTRIBU-TES die Berechtigungsrelevanz für das Attribut 0EPM_CNTRY (Land).

Übung 1-4: Erstellen einer Query mit Berechtigungsvariablen Erstellen Sie nun für unsere späteren Übungen eine Query »YEPM_CP_SO_Q001« auf dem CompositeProvider YEPM_CP_SO (eine Kopie des Content Providers 0EPM_CP_SO). Im Aufriss befinden sich das berechtigungsrelevante InfoObjekt »Produktkategorie« und das Navigationsattribut »Land« des Business Partners aus unserer vorherigen Übung 1-3. Auf Letzterem legen Sie bitte eine einfache Hierarchie mit den Kontinenten an. Beide In-foObjekte schränken wir mit einer Variablen vom Ersetzungstyp »Berechtigung« ein. Diese Query wird uns als Grundlage für alle nachfolgenden Übungen dienen.

Page 7: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 7

1. Wählen Sie in den BW-MT über das Kontextmenü Ihrer Systemverbindung NEW • QUERY. 2. Geben Sie bei Name YEPM_CP_SO_Q001 und bei Infoprovider YEPM_CP_SO ein.

In unserem Fall verwenden wir eine Kopie des EPM-Content CompositeProviders 0EPM_CP_SO. Sie können aber auch den Contentprovider selbst verwenden, dann müssen Sie aber in den Queryberechtigungen der Rolle aus Übung 1-2 sowie in den fol-genden Analyseberechtigungen das Provider-Pattern YEPM* durch 0EPM* ersetzen.

3. In den Aufriss nehmen Sie das Merkmal »Produktkategorie« (0EPM_PRCAT) und das Navigationsattribut »Land des Business Partners« (0EPM_BP__0EPM_CNTRY) in die Zeilen und die Kennzahlen in die Spalten. Auf dem Merkmal 0EPM_CNTRY legen Sie eine einfache Hierarchie nach Regionen an (in der InfoObjekt Pflege), siehe Abbildung 1.2.

Abbildung 1.2: Hierarchie auf dem Merkmal 0EPM_CNTRY

Das Merkmal »Produktkategorie« schränken wir zusätzlich über eine Berechtigungsvari-able YEPM_PRACT_AUTH ein. Die Variable soll eingabebereit sein. Gleiches gilt für das Navigationsattribut 0EPM_BP__0EPM_CNTRY, siehe Abbildung 1.3.

Abbildung 1.3: Globaler Filter mit Berechtigungsvariablen

4. Das Merkmal »Rolle« (0EPM_ROLE) schränken wir fest auf den Wert »1« ein, die Wäh-rung auf »EUR« (beides spielt aber für die Berechtigungen keine Rolle).

5. Die Querydefinition entspricht damit Abbildung 1.4.

Page 8: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 8

Abbildung 1.4: Querydefinition für Testquery YEPM_CP_SO_Q001

6. Führen Sie die Query in Analysis for Office mit Ihrem Entwicklungsuser mit Vollberechti-gung aus, so erhalten Sie im Ergebnis Abbildung 1.5

Abbildung 1.5: Ergebnis der Ausführung von Testquery YEPM_CP_SO_Q001

7. Führen Sie nun denselben Bericht mit dem Testuser USER_1 aus. Sie erhalten als Er-gebnis einen Berechtigungsfehler (Abbildung 1.6). Der User besitzt zwar die nötigen Standardberechtigungen zum Ausführen der Query, aber noch keine Datenberechtigung. Diese legen wir im nächsten Beispiel an.

Abbildung 1.6: Fehlende Datenberechtigung bei Berichtsausführung

Page 9: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 9

Übung 1-5: Eine einfache Analyseberechtigung anlegen Legen Sie zunächst für unseren Testuser eine Analyseberechtigung an, die Daten für die Produktgruppe »PCs« anzeigt. Dazu erstellen Sie eine vollständige Analyseberechtigung »YEPM_PC«, die Sie entsprechend ausprägen und für die Provider »YEPM*« nutzbar machen. Diese Berechtigung fügen Sie über das Berechtigungsobjekt S_RS_AUTH in ei-ne neue Rolle »YEPM_DATA_PCS« und weisen diese zusammen mit der bereits erstell-ten Reportingrolle unserem Testuser USER_1 zu.

1. Nach dem Start der Transaktion PFCG wählen Sie den Button EINZELPFLEGE und verge-ben als technischen Namen YEPM_PC.

2. Im nächsten Schritt geben Sie eine kurze Beschreibung ein. 3. Nun fügen Sie die einzelnen InfoObjekte zur Berechtigung hinzu. Hierzu wählen Sie zu-

nächst die drei Spezialmerkmale per Button, lassen dann alle berechtigungsrelevanten Merkmale für den Provider YEPM_CP_SO anzeigen und wählen die beiden Merkmale »Produktkategorie« (0EPM_PRCAT) und »Land« (0EPM_BP__0EPM_CNTRY) aus (Abbildung 1.7).

Abbildung 1.7: Einfügen von Merkmalen über InfoProvider

4. Jetzt müssen Sie die InfoObjekte entsprechend ausprägen. Dazu überlegen Sie zunächst noch einmal, was genau Sie bezwecken: Der Anwender soll auf die Produktkategorie »PCs« eingeschränkt werden. Das Land spielt in unserem Fall keine Rolle, muss aber in der Berechtigung enthalten sein, da es ja Teil des InfoProviders und berechtigungsrele-vant geschaltet ist. Für Sie bedeutet das, dass Sie das Objekt mit »*« (Vollzugriff) aus-prägen müssen.

5. Die Spezialmerkmale wurden bei der automatischen Anlage bereits wie folgt vorbelegt: Die Gültigkeit mit »*«, was in Ordnung ist, da wir die zeitliche Zuordnung über Rollenzu-weisungen vergeben wollen; die Aktivität mit »03« (Display), was ebenfalls korrekt ist; der InfoProvider wiederum mit »*«, was nicht der Fall sein sollte. Ändern Sie den Wert daher auf »YEPM*«, was den Zugriff auf alle InfoProvider im entsprechenden Namensraum gewährt.

6. Speichern Sie die Analyseberechtigung und aktivieren Sie sie. 7. Zuletzt erstellen Sie ein neue PFCG-Rolle YEPM_DATA_PCS, fügen das Berechtigungs-

objekt S_RS_AUTH ein, prägen das Feld mit dem technischen Namen unserer eben er-stellten Analyseberechtigung (»YEPM_PC«) aus, aktivieren das Profil und ordnen die Rolle unserem Testuser USER_1 zu.

8. Wenn Sie nun mit dem Testuser unsere Query YEPM_CP_SO_Q001 ausführen und die Default-Variablenwerte (durch die Berechtigungsvariablen vorbelegt mit »PCs« für

Page 10: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 10

Produktkategorie, leer für Land) beibehalten, so sollten Sie das Ergebnis aus Abbildung 1.8 erhalten. Der Anwender sieht nur PCs, aber die komplette Länderhierarchie.

Abbildung 1.8: Ergebnis der Abfrage YEPM_CP_SO_001 für den Anwender USER_1

9. Wenn Sie versuchen, die Variablenwerte vor Queryausführung anzupassen, so werden Sie feststellen, dass unter der Produktkategorie (Spalte PRODUCT CATEGORY) nur »PCs« in der Wertehilfe auftaucht, unter dem Land (Spalte COUNTRY) die komplette Hierarchie. Hier können Sie ebenso eine Teilmenge der berechtigten Menge (alles) auswählen. Auch ein manuelles Eintragen eines anderen Wertes für Produktkategorie bleibt ohne Erfolg. Sowohl die Berechtigungen, als auch die Berechtigungsvariablen funktionieren also wie gewünscht.

Übung 1-6: Eine Hierarchieberechtigung anlegen Ziel dieser Übungsaufgabe ist es, eine Hierarchieberechtigung auf dem Knoten »Europa« der Länderhierarchie für den Anwender »USER_2« anzulegen. Dazu wird neben einem neuen Testuser die Analyseberechtigung »YEPM_EUROPA« und die zugehörige Rolle »YEPM_DATA_EUROPA« benötigt.

1. Zunächst legen Sie einen neuen Testuser »USER_2« an und weisen ihm die Repor-tingrolle (YEPM_REPORTING_USER) zu.

2. Dann erstellen Sie eine Analyseberechtigung »YEPM_EUROPA« analog zu unserer fla-chen Berechtigung, nur dass Sie diesmal die Produktkategorie mit »*« ausprägen und beim Land den Knoten »Europa« der Hierarchie GLOBAL (die Sie in Übung 1-4 angelegt haben) wählen. Als Typ wählen Sie Teilbaum unterhalb Knoten und für die Gültigkeit Name identisch.

3. Die Analyseberechtigung hängen Sie in eine Datenrolle »YEPM_DATA_EUROPA«, die Sie dem USER _2 zuweisen.

Im Ergebnis erhalten Sie nun für User_2, unter Beibehaltung der vorbelegten Variablenwer-te, alle Produktkategorien, aber jeweils nur den Knoten Europa (den Sie weiter aufklappen können), wie in Abbildung 1.9 zu sehen.

Abbildung 1.9: Ergebnis der Abfrage YEPM_CP_SO_001 für den Anwender USER_2

Page 11: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 11

Übung 1-7: Eine Kennzahlberechtigung anlegen In dieser Übungsaufgabe geht es darum, die Kennzahl »Quantity« für den Anwender »U-SER_3« zu berechtigen. Die Merkmale sollen nicht eingeschränkt werden.

1. Schalten Sie das Merkmal 0TCAKYFNM berechtigungsrelevant. ACHTUNG: Unsere bisher erstellten Berechtigungen sind damit ab sofort nicht mehr gül-tig. Damit sie auch weiterhin korrekt funktionieren, müssen Sie zu allen Berechtigungen das InfoObjekt 0TCAKYFNM mit der Ausprägung »*« hinzufügen (oder die Berechti-gungsrelevanz für 0TCAKYFNM am Ende dieser Übung wieder entfernen).

2. Legen Sie eine Analyseberechtigung »YEPM_QTY« an, in der Sie »Land« und »Pro-duktgruppe« voll berechtigen, dafür aber das InfoObjekt 0TCAKYFNM auf »0EPM_PQTY« einschränken.

3. Die Analyseberechtigung fügen Sie einer neuen Rolle »YEPM_DATA_QUANTITY« hin-zu, die Sie zusammen mit der Reportingrolle dem neu anzulegenden Testuser »USER_3« zuweisen.

4. Das Queryergebnis für User_3 entspricht dann Abbildung 1.10.

Abbildung 1.10: Ergebnis der Abfrage YEPM_CP_SO_001 für den Anwender USER_3

Übung 1-8: Eine Aggregationsberechtigung anlegen In dieser Aufgabe soll der Anwender »USER_4« auf die Produktkategorie »Notebooks« eingeschränkt werden, soll aber nicht die Verteilung in den einzelnen Ländern sehen dür-fen. Lediglich die Summe über alle Länder darf erkennbar sein. Dazu legen Sie die ent-sprechende Analyseberechtigung und die Rolle an. Führen Sie die Abfrage mit dem Test-user aus, so erhalten Sie zwangsläufig eine Fehlermeldung. Entfernen Sie daraufhin das InfoObjekt »Land« aus dem Aufriss, so erhalten Sie ein Ergebnis.

1. Erstellen Sie eine Analyseberechtigung »YEPM_NOTEBOOKS«, bei der Sie die Pro-duktkategorie auf »Notebooks« einschränken und für Land die Aggregationsberechtigung (»:«) vergeben.

2. Legen Sie nun eine dazu passenden Rolle »YEPM_DATA_NOTEBOOKS« an und wei-sen Sie diese zusammen mit der Reportingrolle einem neuen Testuser »USER_4« zu.

3. Wenn Sie die Query mit User_4 ausführen, sehen Sie zunächst, dass kein Wert für die Variable »Land« vorbelegt wurde. Der Doppelpunkt ist also offensichtlich kein normaler Wert.

Page 12: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 12

4. Bestätigen Sie den Variablenscreen ohne Änderung, so erhalten Sie eine Fehlermeldung (Abbildung 1.11), da der Anwender damit für Land implizit »*« angefordert hat (die Selek-tion war leer).

Abbildung 1.11: Ergebnis der Abfrage YEPM_CP_SO_001 für den Anwender USER_4

5. Nehmen Sie nun das Land aus den Zeilen, indem Sie es im Design Panel von Analysis for Office per Drag & Drop aus dem Aufriss in die freien Merkmale verschieben, so sehen Sie ein Abfrageergebnis wie in Abbildung 1.12 angezeigt.

Abbildung 1.12: Ergebnis der Abfrage YEPM_CP_SO_001 für den Anwender USER_4 nach Na-vigation

Unsere Erkenntnis: Hätte User_4 gar keine Berechtigung auf »Land«, so würde er auch beim zweiten Szenario einen Berechtigungsfehler erhalten. So aber sieht er für die Pro-duktkategorie Notebooks die Summe über alle Länder, also den globalen Umsatz, Details zu den einzelnen Ländern (Umsatz für ein bestimmtes Land) darf er aber offensichtlich nicht sehen. Genau für ein solches Szenario verwendet man Aggregationsberechtigungen.

Übung 1-9: Eine Datenberechtigung mit Customer Exit anlegen Legen Sie eine Analyseberechtigung »YEPM_PK_CE« auf Basis eines Customer Exits an, die für den Anwender »USER_5« die Produktgruppe »Keyboards« berechtigt (über die Rolle »YEPM_PRCAT_AUTH_CE«). Die berechtigten Werte pflegen Sie manuell (Trans-aktion SM30) in einer Tabelle »ZAUTH_TAB«.

1. Zunächst legen Sie einen Benutzer »USER_5« an und weisen ihm die Reportingrolle zu. 2. Dann erstellen Sie mithilfe der Transaktion SE11 eine Tabelle ZAUTH_TAB, in der Sie die

berechtigten Werte pflegen. Die Struktur der Tabelle muss Abbildung 1.13 entsprechen. Bei komplexeren Szenarien oder wenn in derselben Tabelle Daten für unterschiedliche Bereiche verwaltet werden, sind möglicherweise weitere Felder notwendig.

Page 13: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 13

Abbildung 1.13: Mapping-Tabelle für die dynamische Berechtigungsvergabe

3. Im nächsten Schritt legen Sie eine Pflege-View für die Tabelle an, damit Sie die berech-tigten Werte einfach manuell eingeben können. Dazu wählen Sie aus dem Menü HILFS-MITTEL • TABELLENPFLEGEGENERATOR. Sie müssen dann noch ein paar Angaben zur Art der Tabelle machen, insbesondere die Berechtigungsgruppe ist in einem produktiven Szenario von Bedeutung.

4. Nun können Sie in der Transaktion SM30 Berechtigungsausprägungen hinterlegen. Wäh-len Sie für den User_4 die Produktkategorie »Keyboards« (Abbildung 1.14)

Abbildung 1.14: Mappingtabelle füllen

5. Kommen wir nun zur eigentlichen Implementierung. Die Customer-Exit-Variable wird im Exit RSR00001 (»BI: Erweiterungen für globale Variablen im Reporting«) im Include ZXRSRU01 des Funktionsbausteins EXIT_SAPLRRS0_001 gepflegt (erreichbar auch über die Transaktion CMOD unter KOMPONENTEN). Wir beschränken uns hier wieder auf den einfachsten Fall und schreiben unsere Implementierung direkt in das Include.

ATA: ls_range_a TYPE rrrangesid, l_uname TYPE sy-uname, it_values TYPE TABLE OF ZAUTH_TAB, wa_values LIKE LINE OF it_values. * Abfrage i-step und Variablenname IF i_step = 0 AND i_vnam = 'YEPM_PRCAT_AUTH_CE'. * Holen des ausführenden Benutzers für RSUDO CALL FUNCTION 'RSEC_GET_USERNAME' IMPORTING e_username = l_uname. * Eigentliches Auslesen aller berechtigten Werte SELECT * FROM ZAUTH_TAB INTO TABLE it_values WHERE usernm = l_uname AND infoobj = '0EPM_PRCAT'.

Page 14: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 14

* Übergabe der ausgelesenen Werte an die Berechtigung ls_range_a-sign = 'I'. ls_range_a-opt = 'EQ'. LOOP AT it_values INTO wa_values. ls_range_a-low = wa_values-low. ENDLOOP. APPEND ls_range_a TO e_t_range. ENDIF.

6. Legen Sie in den BW-MT eine Customer-Exit-Variable »YEPM_PRCAT_AUTH_CE« für das Merkmal »Produktkategorie« an. Achten Sie drauf, dass Sie selection option als Wert bei VARIABLE REPRESENTS eintragen.

7. Jetzt müssen Sie noch eine Analyseberechtigung »YEPM_PK_CE« anlegen, bei der Sie als Wert für die Produktkategorie die Customer-Exit-Variable »YEPM_PRCAT_AUTH_CE« und das Ganze über die Rolle dem Benutzer USER_5 zu-ordnen.

8. Führen Sie nun die Query mit Benutzer USER_5 aus, so sehen Sie, dass der gepflegte Wert Keyboards korrekt in die Analyseberechtigung übernommen wurde (Abbildung 1.15)

Abbildung 1.15: Ergebnis der Abfrage YEPM_CP_SO_001 für den Anwender USER_5

Übung 1-10: Eine Analyseberechtigung generieren Im folgenden Szenario soll für einen Benutzer »USER_6« eine Analyseberechtigung gene-riert und direkt zugewiesen werden. Das bedeutet, dass der Benutzer wieder die Repor-tingrolle benötigt, diesmal aber keine zusätzliche Analyseberechtigung oder Datenrolle. Per Generierung soll der Benutzer auf die Produktkategorie »Servers« eingeschränkt wer-den. Dazu benötigen Sie ein DSO »YEPM_DS01«, für das das Content-DSO 0TCA_DS01 als Vorlage dient und laden ein einfaches CSV-File in das DSO.

1. Falls noch nicht im System vorhanden, übernehmen Sie die fünf Content-DSOs aus dem technischen Content.

2. Jetzt legen Sie ein neues DSO (bzw. besser gleich ein ADSO) »YEPM_DS01« an, für das das Content-DSO »0TCA_DS01« als Vorlage dient.

3. Das DSO beladen Sie per CSV-File mit folgenden Werten (Abbildung 1.16) und aktivie-ren die Daten.

Abbildung 1.16: CSV Datei als Grundlage für Generierung

Page 15: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 15

4. In der Transaktion RSECADMIN wählen Sie nun auf dem Tab BERECHTIGUNGEN den But-ton GENERIERUNG und geben den DSO-Namen (YEPM_DS01) in das dafür vorgesehene Textfeld ein. Dann starten Sie die eigentliche Generierung per Drücken des entspre-chenden Buttons.

5. Nach der Ausführung der Generierung sehen wir die Ergebnisse im Protokoll (Abbildung 1.17).

Abbildung 1.17: Ergebnisprotokoll der Generierung

6. In unserem Beispiel haben Sie genau eine Analyseberechtigung »EPM_GEN1« erzeugt, über den gemeinsamen Namen im Feld »TCTAUTH« wurden alle Zeilen zu einer Be-rechtigung zusammengefasst. Die Berechtigung wurde direkt unserem Benutzer User_6 zugewiesen, diesmal über den Eintrag im Feld TCTUSERNM. Hätten Sie hingegen die Berechtigung mehreren Anwendern zuweisen wollen, so hätten Sie dafür das Feld leer gelassen und stattdessen die Zuweisungen zusätzlich im DSO »0TCA_DS04« (bzw. un-serer Kopie davon) gepflegt.

7. Die Korrektheit der Ergebnisse können wir in der PFCG auf dem Tab BENUTZER • EINZEL-ZUORDNUNG nach Eingabe des Benutzernamens überprüfen (Abbildung 1.18).

Abbildung 1.18: Ergebnis der Generierung (direkte Zuweisung)

8. Die Berechtigung selbst sehen wir auf dem Tab BERECHTIGUNGEN • EINZELPFLEGE (Abbildung 1.19). Für das nächste Mal nehmen wir uns vor, auch noch Texte zu pflegen (via DSO »0TCA_DS03«).

Page 16: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 16

Abbildung 1.19: Ergebnis der Generierung (Analyseberechtigung)

9. Und zu guter Letzt wollen wir zur Sicherheit auch noch das Queryergebnis überprüfen. Abbildung 1.20 zeigt, dass alles korrekt geklappt hat: Wir sehen die Produktkategorie Server.

Abbildung 1.20: Ergebnis der Abfrage YEPM_CP_SO_001 für den Anwender USER_6

Übung 1-11: Eine virtuelle Berechtigung erstellen Erstellen Sie nun eine virtuelle Berechtigung für »USER_7«, die ihn auf die Produktkatego-rie »Laptops« berechtigt. Wenn Sie wollen, können Sie außerdem mithilfe des BAdIs RSEC_VIRTUAL_AUTH_CHECK_BADI eine virtuelle Berechtigung für »USER_8« erstel-len, die ihm stets Vollzugriff auf die Daten des Providers YEPM_CP_SO erlaubt. Er benö-tigt dafür nur die allgemeine Reportingrolle. Falls Sie auch noch den BAdI RSEC_VIRTUAL_EXEC_AUTH_BADI testen wollen, so können Sie eine Berechtigung implementieren, die dem Anwender »USER_9« den Zugriff auf die Query YEPM_CP_SO_Q001 auch dann erlaubt, wenn er keine entsprechende Standardberechtigung über S_RS_COMP besitzt.

Verwendung des BAdIs RSEC_VIRTUAL_AUTH_BADI 1. Zunächst legen Sie einen Benutzer »USER_7« an und weisen ihm unsere Repor-

tingrolle zu. 2. In der Transaktion SE19 legen Sie dann eine neue BAdI Implementierung

YEPM_ESPRESSO für den Erweiterungsspot RSEC_VIRTUAL_AUTHS an (Abbildung 1.21).

Page 17: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 17

Abbildung 1.21: eine BAdI-Implementierung anlegen 1

3. Im folgenden Fenster wählen Sie den zu implementieren BAdI RSEC_VIRTUAL_AUTH_BADI und geben einen Namen und eine Klasse für die Im-plementierung an (Abbildung 1.22).

Abbildung 1.22: eine BAdI-Implementierung anlegen 2

4. Für die Methode geben Sie die folgende Implementierung ein und aktivieren sie an-schließend.

METHOD IF_RSEC_VIRTUAL_AUTHS~GET_AUTHS. DATA: l_t_iobj TYPE rsd_t_viobj, l_s_rsecval TYPE rsecval_string, l_s_valvirt TYPE rsec_s_val, l_t_rsecval TYPE TABLE OF rsecval_string. * Berechtigung gilt nur für User_7 IF i_uname = 'USER_7'. * Produktkategorie = Notebooks l_s_valvirt-tctauth = 'YEPM_LT'. l_s_valvirt-tctiobjnm = '0EPM_PRCAT'. l_s_valvirt-tctsign = rs_c_range_sign-including. l_s_valvirt-tctoption = rs_c_range_opt-equal. l_s_valvirt-tctlow = 'Notebooks'. INSERT l_s_valvirt INTO TABLE c_t_val. * Land = * l_s_valvirt-tctauth = 'YEPM_LT'. l_s_valvirt-tctiobjnm = '0EPM_BP__0EPM_CNTRY'. l_s_valvirt-tctsign = rs_c_range_sign-including. l_s_valvirt-tctoption = rs_c_range_opt-pattern. l_s_valvirt-tctlow = '*'. INSERT l_s_valvirt INTO TABLE c_t_val. * Aktivität Lesen

Page 18: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 18

l_s_valvirt-tctauth = 'YEPM_LT'. l_s_valvirt-tctiobjnm = '0TCAACTVT'. l_s_valvirt-tctsign = rs_c_range_sign-including. l_s_valvirt-tctoption = rs_c_range_opt-equal. l_s_valvirt-tctlow = '03'. INSERT l_s_valvirt INTO TABLE c_t_val. * InfoProvider = YEPM_CP_SO l_s_valvirt-tctauth = 'YEPM_LT'. l_s_valvirt-tctiobjnm = '0TCAIPROV'. l_s_valvirt-tctsign = rs_c_range_sign-including. l_s_valvirt-tctoption = rs_c_range_opt-equal. l_s_valvirt-tctlow = 'YEPM_CP_SO'. INSERT l_s_valvirt INTO TABLE c_t_val. * Gültigkeit = * l_s_valvirt-tctauth = 'YEPM_LT'. l_s_valvirt-tctiobjnm = '0TCAVALID'. l_s_valvirt-tctsign = rs_c_range_sign-including. l_s_valvirt-tctoption = rs_c_range_opt-pattern. l_s_valvirt-tctlow = '*'. INSERT l_s_valvirt INTO TABLE c_t_val. ENDIF. ENDMETHOD.

5. Stellen Sie sicher, dass die Implementierung auch aktiv geschaltet ist. In der Transakti-on SE18 erkennen Sie daraufhin im Feld AKTIV ein kleines Glühbirnen-Symbol vor der Implementierung (Abbildung 1.23).

Abbildung 1.23: Aktive BadI-Implementierung

6. Wenn Sie jetzt den Report für »User_7« ausführen, sehen Sie das gewünschte Ergeb-nis in Abbildung 1.24 (Einschränkung auf Produktkategorie Notebooks).

Abbildung 1.24: Ergebnis der Abfrage YEPM_CP_SO_001 für den Anwender USER_7

Page 19: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 19

Verwendung des BAdIs RSEC_VIRTUAL_AUTH_CHECK_BADI Mithilfe der folgenden Implementierung darf »USER_8« immer alle Daten des Providers YEPM_CP_SO sehen, auch wenn er keine entsprechende Analyseberechtigung besitzt.

method IF_RSEC_VIRTUAL_AUTH_CHECK~AUTH_CHECK. IF i_uname = 'USER_8' AND i_infoprov = 'YEPM_CP_SO'. c_authorized = 2.

ENDIF. endmethod.

Weisen Sie dem User dazu nur die Reportingrolle zu, aber keine Analyseberechtigung.

Im Ergebnis sieht das dann entsprechend Abbildung 1.25 aus.

Abbildung 1.25: Ergebnis RSEC_VIRTUAL_AUTH_CHECK_BADI

Verwendung des BAdIs RSEC_VIRTUAL_EXEC_AUTH_BADI Mit der folgenden Implementierung der Methode IF_RSEC_VIRTUAL_EXECUTION _AUTH~GET_EXECUTION_AUTH erhält der »USER_9« Zugriff auf die Query YEPM_CP_SO_Q001, obwohl er keine entsprechende Berechtigung für das Objekt S_RS_COMP besitzt.

method IF_RSEC_VIRTUAL_EXECUTION_AUTH~GET_EXECUTION_AUTH. IF i_uname = 'USER_9' AND i_compid = 'YEPM_CP_SO_Q001'. r_authed = rs_c_true.

ENDIF. endmethod.

Dazu deaktivieren Sie temporär die Berechtigung für S_RS_COMP aus der Reportingrolle oder legen eine Kopie an, aus der Sie das Objekt entfernen und weisen diese dem Anwen-der »User_8« zu.

Zusammen mit einer Analyseberechtigung für Europa sieht der User das Ergebnis wie in Ab-bildung 1.26.

Abbildung 1.26: Ergebnis RSEC_VIRTUAL_EXEC_AUTH_BADI

Page 20: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 20

Übung 1-12: Multidimensionale Berechtigungen Erstellen Sie eine Analyseberechtigung für »Server« UND »Nordamerika« und weisen Sie diese einem Testuser »USER_10« zu. Einem weiteren Testuser »USER_11« geben Sie zwei getrennte Berechtigungen als Regionalverantwortlicher Nordamerika und als Pro-duktverantwortlicher für Server und vergleichen die Ergebnisse.

7. Zunächst legen Sie zwei neue Testuser »USER_10« und »USER_11« an und weisen beiden die Reportingrolle zu.

8. Dann erstellen Sie die Datenrollen - »YEPM_DATA_SERVER_NA« (Analyseberechtigung YEPM_SER_NA mit Land = NA und Produktkategorie = Server) für User_10 und - »YEPM_DATA_NA« (Analyseberechtigung YEPM_NA mit Land = NA und Produktka-tegorie = »*«) sowie »YEPM_DATA_SERVER« (Analyseberechtigung YEPM_SERVER mit Land = »*« und Produktkategorie = Server) für User_11.

9. Nun spielen Sie die unterschiedlichen Szenarien mit und ohne Anpassung der initialen Queryfilter nach.

10. USER_10 erhält einen korrekt vorbelegten Variablenscreen und kann die Query ein-fach ausführen (Abbildung 1.27).

Abbildung 1.27: Ergebnis der Abfrage YEPM_CP_SO_001 für den Anwender USER_10

11. USER_11 bekommt einen leeren Variablenscreen und einen Fehler beim Ausführen des Berichts ohne manuelles Zutun (Abbildung 1.28).

Abbildung 1.28: Ergebnis der Abfrage YEPM_CP_SO_001 für den Anwender USER_11 – Fall 1

12. Wählt USER_11 nun aber im Variablenscreen explizit als Land »NA«, so wir die Query korrekt durchlaufen (Abbildung 1.29)

Abbildung 1.29: Ergebnis der Abfrage YEPM_CP_SO_001 für den Anwender USER_11 – Fall 2

Page 21: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 21

13. Das Gleiche gilt, wenn er anstelle des Landes die Produktkategorie einschränkt, z. B. auf Servers (Abbildung 1.30).

Abbildung 1.30: Ergebnis der Abfrage YEPM_CP_SO_001 für den Anwender USER_11 – Fall 3

14. Wählt USER_11 jedoch eine andere Produktkategorie oder ein anderes Land, so erhält er wieder eine Fehlermeldung (Abbildung 1.31).

Abbildung 1.31: Ergebnis der Abfrage YEPM_CP_SO_001 für den Anwender USER_11 – Fall 4

Wir halten fest, dass die Berechtigungsprüfung an sich immer korrekt durchlaufen wird und das erwartete Ergebnis liefert. Allerdings muss bei multidimensionalen Berechtigungen im Zweifel vom Anwender eine berechtigte Selektionskombination manuell vorgenommen wer-den.

Übung 1-13: Stammdatenpflege Für die folgende Übungsaufgabe legen Sie bitte ein InfoObjekt YEPM_BP als Kopie von 0EPM_BP an, entfernen die Klammerung und schalten dafür die Berechtigungsrelevanz an. Nun erstellen Sie eine Rolle YEPM_MD, die die Stammdatenpflege für die Ausprägun-gen 1000000000 bis 2000000000 erlaubt – zunächst über den klassischen Weg, dann über den neuen Weg mit Prüfung der Analyseberechtigungen.

1. Sie erstellen ein InfoObjekt YEPM_BP als Kopie von 0EPM_BP, setzen das Objekt berechtigungsrelevant und entfernen die Klammerung.

2. Nun legen Sie eine neue Rolle »YEPM_MD« an und fügen den Zugriff auf die Transak-tion RSA1 (S_TCODE, S_RS_ADMWB), sowie die Berechtigungsobjekte S_TABU_DIS, S_TABU_CLI und S_RS_IOMAD hinzu. Um das Beispiel einfach zu halten, vergeben Sie überall Vollzugriff. Diese Rolle weisen Sie nun einem neuen Testuser zu.

3. Starten Sie die Stammdatenpflege für unser Objekt »YEPM_BP« und legen Sie einen neuen Satz für den Schlüssel »2000000000« an.

4. Wenn Sie parallel einen Trace laufen lassen, so sehen Sie im Ergebnis die erfolgreiche Prüfung auf S_RS_IOMAD (Abbildung 1.32)

Abbildung 1.32: Prüfung Stammdatenpflege Standard

Page 22: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 22

5. Nun setzen Sie am InfoObjekt zusätzlich den Schalter für die Berechtigungsprüfung bei der Stammdatenpflege und fügen der Rolle das Berechtigungsobjekt S_TABU_LIN mit den folgenden Ausprägungen hinzu (Abbildung 1.33).

Abbildung 1.33: Stammdatenpflege mit S_TABU_LIN

6. Wenn Sie nun einen neuen Stammdatensatz mit dem Schlüsselwert »4000000000« anlegen wollen, so erhalten Sie eine Fehlermeldung (Abbildung 1.34).

Abbildung 1.34: Berechtigungsfehler bei der Stammdatenpflege

7. Legen Sie hingegen einen Satz mit dem Wert »1000000000« an, so verläuft die Aktion erfolgreich und Sie sehen die Prüfung im Trace (Abbildung 1.35).

Abbildung 1.35: Prüfung Stammdatenpflege S_TABU_LIN

8. Nun erstellen Sie eine neue leere Rolle »YEPM_BP_MAINTAIN« und weisen sie dem Testuser zu.

9. Am Merkmal YEPM_BP löschen Sie das Kennzeichen für die Berechtigungsprüfung bei der Stammdatenpflege.

10. Im Customizing hinterlegen Sie die entsprechende Konfiguration (Abbildung 2.36)

Abbildung 1.36: Prüfung von Analyseberechtigungen bei Stammdatenpflege einschalten

Page 23: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 23

11. In den Attributdetails legen Sie fest, dass mit der Rolle neue Stammdaten erzeugt, aber nur Kurztexte gepflegt werden können. Den Langtext blenden Sie ganz aus (Abbildung 1.37).

Abbildung 1.37: Stammdatenpflege mit Rollen 3

12. Zuletzt erstellen Sie eine Analyseberechtigung »YEPM_BP1«, für die Sie das InfoOb-jekt YEPM_BP auf den Wertebereich »1000000000« bis »2000000000« einschränken und weisen diese dem Testuser entweder per Rolle oder direkt zu.

13. Wenn Sie nun einen neuen Stammdatensatz im erlaubten Bereich pflegen, so funktio-niert alles. Wählen Sie hingegen einen Wert außerhalb dieses Bereichs (z. B. »400000000«), so schlägt die Prüfung fehl. Die Meldung ist identisch wie bei der Prü-fung auf S_TABU_LIN (Abbildung 1.34).

Page 24: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 24

2 Kapitel: Berechtigungen in SAP HANA

Übung 2-1: Entwicklungsuser anlegen Legen Sie einen neuen User für die späteren Entwicklungen an. Wählen Sie dazu aus dem Kontextmenü NEW • USER oder navigieren Sie im Baum im Kontextmenü des Ordners USERS zur Option NEW USER. Als Usernamen vergeben Sie z. B. »USER_DEV_HANA«. Weisen Sie dem User außerdem die Rolle »sap.hana.ide.roles::Developer« zu, um ihm Zugriff auf die Web IDE zu gewähren.

1. Legen Sie einen neuen, nicht eingeschränkten User an. Dazu navigieren Sie entweder im Bereich SECURITY über den Button und wählen NEW • USER oder im Baum im Kon-textmenü des Ordners USERS zur Option NEW USER.

2. Tragen Sie den Benutzernamen »USER_DEV_HANA« ein und vergewissern Sie sich, dass die Option RESTRICTED USER nicht ausgewählt ist.

3. Vergeben Sie ein Initialpasswort. 4. Wählen Sie den Reiter »Granted Roles« aus und fügen Sie die Rolle

»sap.hana.ide.roles::Developer« hinzu. 5. Optional können Sie die Gültigkeit einschränken.

Speichern Sie die Änderungen per Klick auf oder per Tastenkombination (STRG) + (S).

Übung 2-2: Systemprivilegien zuweisen Weisen Sie dem Entwicklungsuser die für die spätere Arbeit notwendigen Systemprivile-gien USER ADMIN, DATA ADMIN, STRUCTUREDPRIVILEGE ADMIN, TRACE ADMIN und INIFILE ADMIN zu. Falls SAP HANA Change Recording in Ihrem System aktiv ist, weisen Sie die dafür notwendigen Systemprivilegien REPO.MODIFY_CHANGE und REPO.MODIFY_OWN_CONTRIBUTION ebenfalls zu.

1. Dafür öffnen Sie den Entwicklungsuser USER_DEV_HANA in der Benutzerpflege und wechseln zum Reiter »System Privileges«. Dort weisen Sie dem Benutzer die folgenden Privilegien zu (siehe Abbildung 2.1):

USER ADMIN: erforderlich für die Erzeugung und Verwaltung von Benutzern, DATA ADMIN: erforderlich für das Auslesen von Systemviews und SQL DDL State-

ments, STRUCTUREDPRIVILEGES ADMIN: erforderlich für die Erzeugung und Verwaltung ana-

lytischer Privilegien, INIFILE ADMIN: erforderlich für das Ändern der Systemkonfiguration.

2. Haben Sie SAP HANA Change Recording in Ihrem System aktiviert, so weisen Sie dem Benutzer auch die beiden Systemprivilegien REPO.MODIFY_CHANGE und REPO.MODIFY_OWN_CONTRIBUTION zu.

3. Speichern Sie den Benutzer, um die Änderungen zu aktivieren.

Page 25: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 25

Abbildung 2.1: Zugewiesene Systemprivilegien

Übung 2-3: Paket für Entwicklungen anlegen Alle im Laufe dieses Buches von uns manuell angelegten Rollen, analytischen Privilegien und weiteren Repository-Objekte sollen in einem eigenen Paket ablegt werden. Das er-zeugen wir, bevor wir mit dem ersten Beispiel beginnen, in der Web IDE im Bereich EDI-TOR. Klicken Sie dazu auf den Menübutton und wählen Sie dann FILE • NEW • PACKAGE. Alter-nativ können Sie den Shortcut (STRG)+(Alt)+(ª)+(N) verwenden. Geben Sie als Paketna-men »ESPRESSO_TUTORIALS« ein. Optional können Sie noch eine Beschreibung, einen Verantwortlichen und die Originalsprache der im Paket enthaltenen Objekte angeben.

1. Öffnen Sie den Bereich Editor und legen Sie ein neues Paket an. Drücken Sie dazu die zugegebenermaßen sperrige Tastenkombination (STRG)+ (Alt)+(ª)+(N), wählen aus dem Menü die Option FILE • NEW • PACKAGE oder wählen per Rechtsklick auf dem Eintrag CONTENT im linken Baum die Option NEW • PACKAGE.

2. Vergeben Sie als Paketnamen ESPRESSO_TUTORIALS. Optional können Sie die Beschrei-bung, den Verantwortlichen und die Originalsprache pflegen, wie in Abbildung 2.2 ge-zeigt.

Abbildung 2.2: Paket in der Web IDE anlegen

3. Legen Sie das Paket mit einem Klick auf CREATE an.

Page 26: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 26

Übung 2-4: Rolle für Zugriff auf SAP-HANA-View anlegen Für die später folgenden Beispiele muss außerdem eine Repository-Rolle anlegt werden, die uns den Zugriff auf die verwendeten HANA-Views erlaubt. Navigieren Sie in der Web IDE zum Bereich EDITOR und wählen Sie das zuvor angelegte Paket aus. Darin legen Sie nun eine neue Rolle »REPORTING_USER« an. Folgende Zuweisungen für diese Rolle sind notwendig:

Im Reiter OBJECT PRIVILEGES: das Privileg EXECUTE auf die Prozedur REPOSITORY _REST (SYS),

im selben Reiter: das Privileg SELECT auf das Schema _SYS_BI, um auch mit Analysis Office auf den HANA-Views reporten zu können: das Privileg

SELECT sowohl auf das BW-Systemschema als auch auf das Schema _SYS_RT, Im Reiter GRANTED ROLES die Rolle »sap.bc.ina.service.v2.userRole::INA_USER«.

1. Wählen Sie das Paket »ESPRESSO_TUTORIALS« aus. Jetzt können Sie entweder per Auswahl aus dem Menü über FILE • NEW • ROLE oder per Rechtsklick auf das Paket und NEW • ROLE eine neue Rolle anlegen.

2. Vergeben Sie, wie in Abbildung 2.3 zu sehen, als Rollennamen REPORTING_USER und erzeugen Sie die Rolle mit einem Klick auf CREATE.

Abbildung 2.3: Neue Rolle »REPORTING_USER« im Paket »ESPRESSO_TUTORIALS«

3. Wechseln Sie zum Reiter OBJECT PRIVILEGES und klicken auf den Button »Add«, um die benötigten Privilegien hinzuzufügen. Suchen Sie im sich öffnenden Dialog zuerst nach der Prozedur REPOSITORY_REST (siehe Abbildung 2.4). Wählen Sie die Prozedur aus und drücken Sie OK, um die Auswahl in den Reiter OBJECT PRIVILEGES zu übernehmen.

Abbildung 2.4: Auswahl der Prozedur REPOSITORY_REST

Page 27: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 27

Tipp: Wenn Sie die Objekte im Auswahldialog des Reiters OBJECT PRIVILEGES nicht finden, wechseln Sie von DESIGN-TIME zu RUN-TIME . Zusätzlich können Sie noch auf den Ob-

jekttyp einschränken .

4. Wählen Sie im Reiter OBJECT PRIVILEGES die hinzugefügte Prozedur »REPOSITO-RY_REST« aus und wählen Sie auf der rechten Seite im Bereich PRIVILEGES die Option EXECUTE aus (Abbildung 2.5).

Abbildung 2.5: Auswahl des Privilegs »EXECUTE« für die Prozedur REPOSITORY_REST

5. Wählen Sie jetzt erneut den Button und fügen Sie das Schema »_SYS_BI« hinzu. Klicken Sie auf OK, um das gewählte Schema in die Liste der Objektprivilegien zu über-nehmen.

6. Selektieren Sie das Schema »_SYS_BI« im Reiter OBJECT PRIVILEGES und wählen Sie auf der rechten Seite im Bereich PRIVILEGES das Privileg SELECT aus.

7. Wiederholen Sie die Schritte 5. und 6. jeweils für die Schemata BW-Systemschema und _SYS_RT.

8. Wechseln Sie zum Reiter GRANTED ROLES. Fügen Sie mit einem Klick auf den Button die Rolle »sap.bc.ina.service.v2.userRole::INA_USER« hinzu.

9. Sichern und aktivieren Sie die Rolle mit einem Klick auf den Button oder mithilfe der Tastenkombination (STRG) + (S).

Übung 2-5: Traces konfigurieren und Fehler analysieren Konfigurieren Sie den Databank-Trace. Setzen Sie im Indexserver für die Komponente »authorization« den Wert auf INFO. Melden Sie sich dann mit dem Entwicklungsuser U-SER_DEV_HANA in der Web IDE an. Führen Sie einen DML-Befehl aus, der zum Fehler-fall führt, z. B. versuchen Sie, die Rolle »PUBLIC« an den User »SYSTEM« zu vergeben: GRANT PUBLIC TO SYSTEM. Öffnen Sie danach das Trace File im Bereich TRACES.

1. Öffnen Sie im Bereich SECURITY der Web IDE die Konfiguration des Datenbank-Trace und suchen Sie innerhalb der Komponente INDEXSERVER nach der Komponente »Au-thorization«. Denken Sie daran, den Haken bei SHOW ALL COMPONENTS zu setzen, sollte diese nicht angezeigt werden (siehe Abbildung 2.6).

Page 28: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 28

Abbildung 2.6: Auswahl des Trace Levels für die Komponente »authorization« im Indexserver

2. Setzen Sie den System Trace Level auf INFO und übernehmen Sie die Einstellungen. Als Alternative zur Konfiguration des Traces können Sie auch einen User-spezifischen Trace konfigurieren.

3. Melden Sie sich nach der erfolgreichen Konfiguration des Traces mit dem Benutzer USER_DEV_HANA und dem von Ihnen vergebenen Passwort an der Web IDE an. Wie beschrieben, erscheint direkt eine Fehlermeldung.

4. Schließen Sie dann das Fenster und melden Sie sich erneut mit Ihrem Systembenutzer an.

5. Navigieren Sie zum Bereich TRACES und suchen Sie nach der neuesten Trace-Datei. Innerhalb dieser Datei suchen Sie nach dem Benutzer USER_DEV_HANA. Haben Sie einen User-spezifischen Trace angelegt, suchen Sie nach einer Trace-Datei mit dem von Ihnen vergebenen Kontextnamen.

6. Sie sollten auf einige Einträge wie in Abbildung 2.7 stoßen. Hieraus können Sie nun ab-leiten, welche Privilegien Ihrem Benutzer zur Ausführung der Anfrage fehlen. Lassen Sie sich beim ersten Anblick der Trace-Dateien nicht abschrecken! Wenn Sie später wissen, worauf Sie achten müssen, lassen sich die Einträge leicht lesen.

Page 29: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 29

Abbildung 2.7: Einträge im Trace

Übung 2-6: Externe SAP-HANA-View generieren Generieren Sie für den CompositeProvider YEPM_CP_SO die externe HANA-View.

1. Dazu starten Sie die SAP BW-Modeling-Tools und öffnen den SAP HANA Composite-Provider (HCPR) YEPM_CP_SO mithilfe des Open Dialogs.

2. Dann setzen Sie im Reiter GENERAL den Haken für die Eigenschaft EXTERNAL SAP HA-NA-VIEW und aktivieren die Änderung.

Abbildung 2.8: Editor des HCPR YEPM_CP_SO und Auswahl der Einstellung »External SAP HANA View«

3. Nach der erfolgreichen Aktivierung klicken Sie auf den angezeigten Link, um direkt zur generierten View zu springen. Sollte die Navigation nicht funktionieren und z. B. mit dem Fehler »You are not connected to the SAP HANA System, …« abbrechen, schauen Sie sich nochmal den Exkurs zu den SAP BW-Modeling-Tools in Kapitel 4 dieses Bonusma-terials an und vergewissern Sie sich, dass Sie alles korrekt eingerichtet haben. Da die Navigation aber nur für das SAP HANA Studio funktioniert und wir die Web IDE für unse-re weitere Arbeit nutzen wollen, können Sie auch direkt in der Web IDE zur generierten View navigieren. Dazu gehen Sie mit dem Mauszeiger auf den angezeigten Link und na-vigieren dann in der Web IDE zum im Tooltip des Links angezeigten Paket, in diesem Fall also »system-local.bw.bw4hana«.

Page 30: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 30

Übung 2-7: Prüfen Sie die Einstellung »Apply Privileges« Stellen Sie sicher, dass die Einstellung APPLY PRIVILEGES für die generierte View den Wert »SQL Analytic Privileges« enthält. Legen Sie außerdem eine Rolle YEPM_CP_SO an, und weisen Sie dieser das notwendige SELECT-Privileg für die generierte View zu. Abschlie-ßend weisen Sie diese Rolle unserem Test-User USER_01_HANA zu, den Sie analog zum Entwicklungsuser aus der Übung 2-1 anlegen, jedoch ohne die dort genannten Rollen und Privilegien.

1. Dazu navigieren Sie in der Web IDE über den in den SAP BW-Modeling-Tools angege-benen Pfad zur generierten View, in unserem Fall also über den Bereich EDITOR • CON-TENT • SYSTEM-LOCAL • BW • BW2HANA • YEPM_CP_SO.CALCULATIONVIEW. Per Doppel-klick öffnet sich der View-Editor.

2. Selektieren Sie im Übersichtsbereich auf der linken Seite den Knoten SEMANTICS und wählen Sie im daraufhin erscheinenden Detailbereich auf der rechten Seite den Reiter VIEW PROPERTIES.

3. Die Einstellung APPLY PRIVILEGES sollte den Wert SQL Analytic Privileges haben. Eine Änderung des Settings für den Privilegiencheck hat bei von SAP BW generierten Views übrigens nur temporären Charakter. Alle Änderungen, die Sie manuell direkt in den gene-rierten Views vornehmen, werden bei der nächsten Aktivierung des zugehörigen BW-Objekts wieder überschrieben.

Abbildung 2.9: Überprüfen der Einstellung »Apply Privileges«

4. Damit Sie auch auf die konkrete View YEPM_CP_SO zugreifen dürfen, legen Sie eine weitere Rolle »YEPM_CP_SO« an.

5. Wechseln Sie in der Rollenpflege zum Reiter OBJECT PRIVILEGES und weisen Sie dieser Rolle das Privileg SELECT auf die SAP-HANA-View »YEPM_CP_SO« zu.

Page 31: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 31

Abbildung 2.10: Zuweisung des Objektprivilegs SELECT auf die View YEPM_CP_SO

6. Abschließend weisen Sie die neu angelegte Rolle dem neuen Testuser USER_01_HANA zu. Öffnen Sie dazu die Pflege des Benutzers USER_01_HANA, wechseln Sie zum Reiter GRANTED ROLES und wählen Sie per Button »Add« die Rolle »ESPRESSO _TUTORIALS::YEPM_CP_SO« aus.

Abbildung 2.11: Zuweisen der Rolle YEPM_CP_SO

Übung 2-8: Eine flache Berechtigung anlegen Analog zum ersten Teil des Buches sollen Sie nun ein analytisches Privileg YEPM_PC an-legen, welches dem Test-User USER_01_HANA Zugriff auf die von uns generierte HANA-View des CompositeProviders YEPM_CP_SO gewährt und einen Filter auf dem Merkmal 0EPM_PRCAT für den Wert »PCs« definiert. Legen Sie außerdem eine Rolle YEPM_DATA_PCS an, die das analytische Privileg enthält, und weisen Sie die Rolle dem Test-User zu. Führen Sie dann die Query YEPM_CP_SO_Q001 aus. Das Ergebnis sehen Sie in Abbildung 2.12: Die gefilterten Daten enthalten wie erwartet lediglich Informationen zu den Verkäufen der Produktkategorie »PCs«.

1. In der SAP HANA Web IDE navigieren Sie dazu zum Bereich EDITOR. Legen Sie in unse-rem Demopaket ein neues analytisches Privileg mit dem Namen »YEPM_PC« vom Typ SQL an.

2. Fügen Sie in der Sektion SECURED MODELS die SAP HANA-View »YEPM_CP_SO« hin-zu. Dies entspricht der Definition des Spezialmerkmals 0TCAIPROV im SAP BW.

3. Belassen Sie die Option zur Art des Filters bei Attributes. 4. In der Sektion PRIVILEGE VALIDITY tragen Sie keine Einschränkungen ein, da das analyti-

sche Privileg uneingeschränkt gültig sein soll, analog zum Spezialmerkmal 0TCAVALID im SAP BW.

5. In der Sektion ASSOCIATED ATTRIBUTE RESTRICTIONS öffnen Sie per Klick auf den Button den Dialog zur Auswahl der Attribute, auf deren Basis Sie den Zugriff auf die Da-

ten der SAP-HANA-View einschränken möchten. Hier wählen Sie nur das Attribut 0EPM_PRCAT aus. Die Auswahl des Attributs 0EPM_BP__0EPM_CNTRY ist nicht not-wendig, da es in SAP HANA nicht die Semantik berechtigungsrelevanter Attribute gibt. Sie müssen also nur die Attribute auswählen, auf die Sie einen Filter definieren wollen.

Page 32: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 32

Alle anderen Attribute werden nicht gefiltert, was im SAP BW einem Vollzugriff (»*«) gleich käme.

6. Nachdem Sie das Attribut 0EPM_PRCAT hinzugefügt haben, erstellen Sie per Klick auf den Button genau eine Einschränkung mit dem Operator Equal auf den Wert »PCs«.

Abbildung 2.12: Einschränkung auf den Wert »PCs«

7. Per Shortcut (STRG)+(S) oder Klick auf den Button speichern Sie das analytische Privi-leg.

8. Zum Abschluss legen Sie in Ihrem Paket eine Rolle »YEPM_DATA_PCs« an und weisen dieser auf dem Reiter ANALYTIC PRIVILEGES das analytische Privileg »YEPM_PC« zu. Die Rolle YEPM_DATA_PCs weisen Sie dann dem Testuser USER_01_HANA in der Userpflege auf dem Reiter ROLES zu.

9. Führen Sie dieselbe Query YEPM_CP_SO_Q001 auf der SAP-HANA-View aus, bekom-men Sie das Ergebnis wie in Abbildung 2.13 gezeigt.

Abbildung 2.13: Ergebnis der Abfrage YEPM_CP_SO_Q001 für den Anwender USER_01_HANA

Übung 2-9: Ein analytisches Privileg für den Vollzugriff auf die View YEPM_CP_SO anlegen Für die weiteren Übungen benötigen Sie teilweise Vollzugriff auf die View YEPM_CP_SO. Dafür legen Sie in Ihrem Entwicklungspaket ein neues analytisches Privileg von Typ SQL mit dem Namen YEPM_CP_SO_FULL analog zum zuvor angelegten Privileg YEPM_PC an, vergeben aber keine Restriktion in der Sektion ASSOCIATED ATTRIBUTE RESTRICTIONS (entspricht Vollzugriff [oder »*« im BW] auf die View), sondern führen lediglich die View YEPM_CP_SO in der Sektion SECURED MODELS auf. Zusätzlich erzeugen Sie eine neue Rolle YEPM_CP_SO_FULL und weisen dieser die Rolle YEPM_CP_SO für den SELECT-Zugriff auf die View und das analytische Privileg YEPM_CP_SO_FULL zu.

1. Wechseln Sie zum Bereich EDITOR und legen ein neues analytisches Privileg im Paket »ESPRESSO_TUTORIALS« an. Markieren Sie dazu das Paket im linken Baum und wäh-

Page 33: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 33

len dann aus dem Kontextmenü die Option NEW • ANALYTIC PRIVILEGE oder aus dem Menü FILE • NEW • ANALYTIC PRIVILEGE.

2. Vergeben Sie im Dialog zum Anlegen des Privilegs den Namen YEPM_CP_SO_FULL und wählen als Typ SQL aus. Klicken Sie auf den Button CREATE, um das Privileg zu erzeu-gen (Abbildung 2.14).

Abbildung 2.14: Anlegen des Privilegs YEPM_CP_SO_FULL

3. Fügen Sie im Bereich SECURED MODELS die generierte View des CompositeProviders YEPM_CP_SO hinzu. Lassen Sie die Sektionen PRIVILEGE VALIDITY und ASSOCIATED ATTRIBUTE RESTRICTIONS leer.

4. Sichern und aktivieren Sie das analytische Privileg mit der Tastenkombination (STRG) + (S) oder einem Klick auf den Button .

Übung 2-10: Query mit externer HANA-View inklusive Hierarchien anlegen Legen Sie eine neue Query als Kopie der Query YEPM_CP_SO_Q001 an. Auf dem Reiter GENERAL setzen Sie einen Haken bei der Einstellung EXTERNAL SAP HANA-VIEW. Auf dem Reiter FILTER entfernen Sie in der Sektion FILTER: DEFAULT VALUES alle Eingaben. Auf dem Reiter SHEET DEFINITION fügen Sie in der Sektion COLUMNS alle verfügbaren Kennzahlen hinzu. In der Sektion ROWS wählen Sie die beiden Merkmale 0EPM_BP__0EPM_CNTRY und 0EPM_PRCAT aus. Sichern Sie die Query.

1. Suchen Sie in den BW-Modeling-Tools nach der Query YEPM_CP_SO_Q001. Wählen Sie dazu den Button (Open BW Object) oder drücken Sie (STRG) + (ª) + (D). Geben Sie YEPM_CP_SO_Q001 als Suchbegriff ein, und wählen Sie aus der Liste der MATCHING ITEMS den Eintrag [YEPM_CP_SO_Q001] (Query) (vgl. Abbildung 2.15).

Abbildung 2.15: Auswahl der Query YEPM_CP_SO_Q001

Page 34: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 34

2. Speichern Sie die Query unter einem neuen Namen, z. B. YEPM_CP_SO_HIER_Q001. Wählen Sie dazu aus dem Menü die Option FILE • SAVE AS… Geben Sie im Wizard im Feld NAME den Wert YEPM_CP_SO_HIER_Q001 ein. Im Feld DESCRIPTION vergeben Sie eine sinnvolle Beschreibung, z. B. Kopie von YEPM_CP_SO_Q001 (vgl. Abbildung 2.16). Optional können Sie noch den Button ADD TO FAVORITES auswählen, um die Query in Ih-ren Favoriten abzulegen. Klicken Sie auf den Button FINISH, um die Query zu erzeugen.

Abbildung 2.16: Anlegen einer Kopie der Query YEPM_CP_SO_Q001

3. Navigieren Sie zum Reiter GENERAL. Wählen Sie dort in der Sektion REMOTE ACCESS die Option EXTERNAL SAP HANA VIEW aus (vgl. Abbildung 2.17).

Abbildung 2.17: Auswahl der Option »External SAP HANA View«

4. Wechseln Sie zum Reiter FILTER. Markieren Sie in der Sektion FILTER: DEFAULT VALUES alle Einträge. Entfernen Sie die Einträge, indem Sie die Taste (ENTF) drücken oder wäh-len Sie per Rechtsklick in der Sektion FILTER: DEFAULT VALUES aus dem Kontextmenü die Option Remove.

5. Wechseln Sie zum Reiter SHEET DEFINITION. Wählen Sie nun im linken Baum aus dem Reiter INFOPROVIDER alle Kennzahlen unter dem Ordner __KEY aus und ziehen Sie die-se auf der rechten Seite in die Sektion COLUMNS. Nehmen Sie außerdem die beiden Merkmale 0EPM_PRCAT und 0EP_BP__0EPM_CNTRY und ziehen Sie diese in die Sektion ROWS (vgl. Abbildung 2.18).

Page 35: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 35

Abbildung 2.18: Pflegen der Sheet Definition

6. Aktivieren Sie für das Merkmal 0EPM_BP__0EPM_CNTRY die Hierarchie GLOBAL. Wäh-len Sie dazu das Merkmal 0EPM_BP__0EPM_CNTRY in der Sektion ROWS aus und wechseln Sie dann auf der rechten Seite zum Reiter HIERARCHY. Wählen Sie in der Sek-tion GENERAL den Button CHANGE… und klicken Sie anschließend im angezeigten Dialog SELECT HIERARCHY auf den Button BROWSE… Entscheiden Sie sich für die Hierarchie GLOBAL und verlassen Sie alle Dialoge mit einem Klick auf OK.

7. Speichern Sie die Query mit einem Klick auf oder (STRG) + (S).

8. Wechseln Sie zum HANA Studio und dort in die Perspektive SAP HANA ADMINISTRATION CONSOLE. Navigieren Sie im linken Baum zur generierten externen SAP HANA View der Query YEPM_CP_SO_HIER_Q001. Öffnen Sie die generierte View. Klicken Sie auf den Knoten SEMANTICS und wählen Sie auf der linken Seite im Bereich DETAILS den Reiter VIEW PROPERTIES aus. Aktivieren Sie dort die Einstellung ENABLE HIERARCHIES FOR SQL ACCESS. Aktivieren Sie die View.

Übung 2-11: Analytisches Privileg mit Hierarchiefilter anlegen Legen Sie in Ihrem Entwicklungspaket ein neues analytisches Privileg YEPM_CP_SO _HIER an. Fügen Sie die generierte View der zuvor neu angelegten Query hinzu, und de-finieren Sie einen Hierarchiefilter. Legen Sie eine neue Rolle YEPM_DATA_HIER an. Weisen Sie dieser die Rollen REPORTING_USER und YEPM_CP_SO_F sowie das neu erzeugte analytische Privileg zu. Weisen Sie die Rolle einem neu angelegten Test-User USER_02_HANA zu, und führen Sie danach die Query aus.

1. Analytische Privilegien mit Hierarchiefiltern lassen sich in der derzeitigen Version der Web IDE nicht modellieren. Öffnen Sie daher das HANA Studio und wechseln Sie zur Perspektive SAP HANA Development. Navigieren Sie im linken Baum im Reiter REPOSI-TORIES zu Ihrem Entwicklungspakt. Legen Sie dort ein neues analytisches Privileg

Page 36: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 36

YEPM_CP_SO_HIER vom Typ SQL an. Vergeben Sie optional eine Beschreibung im Feld LABEL (vgl. Abbildung 2.19).

Abbildung 2.19: Anlegen eines Hierarchie-Privilegs

2. Fügen Sie in der Sektion SECURED MODELS die zuvor in Übung 2-10 generierte externe SAP HANA View YEPM_CP_SO_HIER_Q001 hinzu.

3. Wählen Sie in der Sektion ASSOCIATED ATTRIBUTES RESTRICTIONS das Feld 0EPM_BP__0EPM_CNTRY.

4. Wechseln Sie in der letzten Sektion zum Reiter HIERARCHY. Klicken Sie auf den Button ADD. Wählen Sie für den neu erzeugten Eintrag in der Spalte HIERARCHY den Wert HIE-RARCHY und klicken Sie dann in die Spalte VALUE, um über den (F4)-Hilfe-Dialog einen Knoten der Hierarchie zu wählen, z. B. NORTH AMERICA (vgl. Abbildung 2.20).

Abbildung 2.20: Definition eines Hierarchiefilters

5. Sichern und aktivieren Sie das analytische Privileg.

6. Legen Sie eine neue Rolle »YEPM_DATA_HIER« an und weisen Sie ihr sowohl die Rol-len YEPM_REPORTING_USER und YEPM_CP_SO_F als auch das erzeugte analyti-sche Privileg YEPM_CP_SO_HIER zu. Nun vergeben Sie diese Rolle an einen neuen Testuser und führen eine Query auf der View YEPM_CP_SO_HIER_Q001 aus.

Page 37: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 37

Übung 2-12: Kennzahlberechtigung anlegen Analog zu Berechtigungen auf Kennzahlen in Übung 1-7 betrachten Sie in dieser Übungs-aufgabe, wie es sich auswirkt, wenn Sie den User nur für die Kennzahl 0EPM_PQTY be-rechtigen. Dazu legen Sie im Entwicklungspaket eine neue Calculation View vom Typ STANDARD und die DATA CATEGORY CUBE an. Anschließend fügen Sie die generierte ex-terne View des CompositeProviders 0EPM_CP_SO als DataSource hinzu, pflegen das Mapping und entfernen alle Kennzahlen außer 0EPM_PQTY. Der Wert der Option APPLY PRIVILEGES muss auf <blank> (die Filterung der Daten erfolgt auf dem Level der externen generierten View) geändert werden. Dann erstellen Sie eine neue Rolle YEPM_DATA _QUANTITY, weisen dieser das Objektprivileg SELECT auf die View und diese Rolle wie-derum dem User USER_03_HANA zu. Zum Schluss führen Sie eine Query auf der View aus.

1. In Ihrem Entwicklungspaket legen Sie eine neue Calculation View »YEPM_CP_SO_QTY« vom Typ STANDARD und der DATA CATEGORY CUBE an.

2. Sie navigieren wieder zum Knoten AGGREGATION und fügen die View YEPM_CP_SO als Data Source hinzu.

3. Weiter selektieren Sie in der Tabelle DATA SOURCES die hinzugefügte View und ergän-zen per Klick auf den Button ADD TO OUTPUT alle Felder der View zum Output des Ag-gregationsknotens.

4. Um die Kennzahlberechtigung für die Kennzahl 0EPM_PQTY nachbilden zu können, entfernen Sie alle Kennzahlen bis auf das Feld 0EPM_PQTY aus der Output-Struktur des Aggregationsknotens.

5. Anschließend navigieren Sie wieder zum Knoten SEMANTICS, setzen die Einstellung APPLY PRIVILEGES auf <blank> (kein Privilegiencheck) und aktivieren die View.

6. Abschließend legen Sie eine neue Rolle »YEPM_DATA_QUANTITY« an und weisen dieser das Privileg SELECT auf die Calculation View YEPM_CP_SO_QTY zu. Dann er-stellen Sie einen neuen Anwender »USER_03_HANA« und weisen diesem die Rollen REPORTING_USER, YEPM_CP_SO_FULL und YEPM_DATA_QUANTITY zu.

7. Führen Sie abschließend eine Query auf der View YEPM_CP_SO_QTY aus.

Übung 2-13: Aggregationsberechtigung anlegen Legen Sie analog zum vorherigen Beispiel eine neue Calculation View YEPM_CP_SO_AGGR und eine Rolle YEPM_CP_SO_AGGREGATION an. Entfernen Sie in der View die Attribute 0EPM_BP__0EPM_CNTRY und 0EPM_BP__0EPM_CNTRY___T. Weisen Sie die Rollen YEPM_CP_SO_AGGREGATION und YEPM_CP_SO_FULL dem neu angelegten User USER_04_HANA zu. Führen Sie danach eine Query auf der View aus. Im Unterschied zur Aggregationsberechtigung, wie wir sie aus dem BW kennen, werden Ihnen die Merkmale, welche Sie zuvor aus der View entfernt haben, natürlich nicht mehr angezeigt. Die Daten für die Produktkategorie sind aber über alle Länder aggregiert.

1. In Ihrem Entwicklungspaket legen Sie eine neue Calculation View »YEPM_CP_SO_AGGR« vom Typ STANDARD und der DATA CATEGORY CUBE an.

2. Sie navigieren wieder zum Knoten AGGREGATION und fügen die View YEPM_CP_SO als Data Source hinzu.

Page 38: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 38

3. Weiter selektieren Sie in der Tabelle DATA SOURCES die hinzugefügte View und fügen per Klick auf den Button ADD TO OUTPUT alle Felder der View zum Output des Aggregati-onsknotens hinzu.

4. Um die Aggregationsberechtigung für das Attribut 0EPM_BP__0EPM_CNTRY (Land) nachbilden zu können, entfernen Sie dieses und das Attribut für die Ländertexte 0EPM_BP__0EPM_CNTRY___T aus der Output-Struktur des Aggregationsknotens.

5. Anschließend navigieren Sie wieder zum Knoten SEMANTICS, setzen die Einstellung APPLY PRIVILEGES auf <blank> (kein Privilegiencheck) und aktivieren die View.

6. Abschließend legen Sie eine neue Rolle »YEPM_DATA_AGGREGATION« an und wei-sen dieser das Privileg SELECT auf die Calculation View YEPM_CP_SO_AGGR zu. Dann erstellen Sie einen neuen Anwender »USER_04_HANA« und weisen diesem die Rollen REPORTING_USER, YEPM_CP_SO_FULL und YEPM_DATA_AGGREGATION zu.

7. Das Ergebnis sehen Sie in Abbildung 2.21.

Abbildung 2.21: Ergebnis der Abfrage YEPM_CP_SO_001 für den Anwender USER_04_HANA

Übung 2-14: Analytisches Privileg mit der Option »Dynamic« anlegen Erstellen Sie dasselbe Beispiel nun mithilfe einer Datenbankprozedur YEPM_CE_02_PROC.

1. Beginnen Sie mit der Anlage einer neuen Prozedur YEPM_CE_02_PROC in Ihrem Entwick-lungspaket. Dazu wählen Sie per Rechtsklick auf Ihrem Entwicklungspaket aus dem Kon-textmenü die Option NEW • HDB PROCEDURE. Bei der Anlage der Prozedur müssen Sie ein Schema angeben, hier wählen wir das BW-Systemschema (Abbildung 2.22).

Abbildung 2.22: Dialog zum Anlegen einer Datenbankprozedur

Page 39: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 39

2. Der Code einer Prozedur ist in die Bereiche »Header« und »Body« unterteilt. Der Body-Bereich wird von den Tags BEGIN und END umschlossen. Alles vor dem Tag BEGIN ge-hört zum Header der Prozedur. In diesem müssen Sie den Rückgabeparameter der Pro-zedur definieren. Für unser Beispiel benötigen Sie einen skalaren Rückgabeparameter, da die Prozedur den bereits abgemischten und konkatenierten Filter für einen Zugriff auf die Calculation View zurückliefern wird. Sie ergänzen die erste Zeile im Editor um den Rückgabeparameter, welcher den Namen o_filter haben und vom Typ VARCHAR mit einer Länge von 5000 Zeichen sein soll. Die Zeile sollte also wie in Listing 2.1 gezeigt aussehen.

PROCEDURE "<Systemschema>"."ESPRESSO_TUTORIALS::YEPM_CE_02" (OUT o_filter VARCHAR(5000))

Listing 2.1: Header der Prozedur inklusive Definition des Rückgabeparameters

3. Im Header der Prozedur müssen Sie außerdem den SQL-Security-Modus von INVOKER auf DEFINER ändern, da dies eine zwingende Voraussetzungen für Prozeduren ist, die in analytischen Privilegien verwendet werden (vgl. Listing 2.2).

SQL SECURITY DEFINER

Listing 2.2: Änderung des SQL Security Modus auf DEFINER

4. Im Body definieren Sie direkt nach dem Tag BEGIN zuerst einen Cursor, den wir im Schritt 5 in einer Schleife zum Auslesen der Berechtigungsausprägungen verwenden (vgl. Listing 2.3).

DECLARE CURSOR c_cursor FOR SELECT "LOW" FROM "<Systemschema>"."AUTHORIZATION_VALUES" WHERE "USERNAME" = SESSION_USER AND "ATTRIBUTE" = '0EPM_PRCAT';

Listing 2.3: Definition des Cursors

Zusätzlich initialisieren Sie den Rückgabeparameter, wie in Listing 2.4 gezeigt.

o_filter = '';

Listing 2.4: Initialisierung des Rückgabeparameters

5. Danach geben Sie die Logik für die Generierung des Filterstrings an. Der Filterstring soll die Werte, welche wir aus unserer Tabelle für den angemeldeten User selektiert haben, pro Attribut und Merkmalsausprägung konkatenieren. Einzelne Ausprägungen werden mit einem logischen OR getrennt (vgl. Listing 2.5).

FOR cur_row AS c_cursor DO IF :o_filter != '' THEN o_filter = :o_filter || ' OR '; END IF; o_filter = :o_filter || '"0EPM_PRCAT" = ''' || :cur_row.low || ''''; END FOR;

Listing 2.5: Konkatenation des Berechtigungsfilters

Page 40: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 40

6. Anschließend erstellen Sie ein neues analytisches Privileg vom Typ SQL mit dem Namen »YEPM_CE_02« und wählen in der Sektion SECURED MODEL die Calculation View YEPM_CP_SO aus. Als Option wählen wir Dynamic und hinterlegen die Prozedur »ES-PRESSO_TUTORIALS::YEPM_CE_02«.

7. Das Privileg weisen Sie einer neuen Rolle »YEPM_DATA_CE_02« zu. Diese sowie die Reportingrolle REPORTING_USER und die Rolle YEPM_CP_SO weisen Sie einem neu-en User USER_06_HANA zu.

8. Führen Sie jetzt die Query YEPM_CP_SO_001 mit dem Anwender USER_06_HANA aus, so sehen Sie, dass die Berechtigungsausprägung korrekt aus der Tabelle gelesen wurde (Abbildung 2.23).

Abbildung 2.23: Ausführung der Query YEPM_CP_SO_001 für den Anwender USER_06_HANA

Page 41: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW ON HANA UND BW/4HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 41

3 Kapitel: Berechtigungen in SAP BW on HANA und BW/4HANA

Übung 3-1: Pflegen der DBMS-User für einen BW-User Hinterlegen Sie für die Anwender USER_1 bis USER_6, USER_8 und USER_9 jeweils ei-nen DBMS-User in der Benutzerpflege SU01.

1. Öffnen Sie die Benutzerpflege (Transaktion SU01) und editieren Sie nacheinander U-SER_1 bis USER_6, USER_8 und USER_9, indem Sie jeweils zum Reiter DBMS wech-seln und in das Feld DBMS BENUTZER der Einfachheit halber denselben Usernamen ein-tragen: also für den BW-Anwender USER_1 den DBMS-Anwender USER_1 usw., wie in Abbildung 3.1 zu sehen.

Abbildung 3.1: Pflegen des DBMS-Benutzers für Benutzer USER_1

2. In der Sektion AUTHENTIFIZIERUNG wählen Sie für jeden DBMS-User die Option KENN-WORT und vergeben ein Initialpasswort, welches Sie bei der ersten Anmeldung an der Datenbank mit diesen Usern ändern müssen (vgl. Abbildung 3.2).

Abbildung 3.2: Kennwort für Benutzer USER_1 pflegen

Page 42: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW ON HANA UND BW/4HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 42

Übung 3-2: HANA-native Daten im BW konsumieren In dieser Übung sollen Sie die HANA View aus Übung 2-6 in einen CompositeProvider YEPM_CP_SO2 einbinden und auf diesen über eine BW-Query mit einem reinen BW-User (USER_01) zugreifen. Da die View in Übung 2-6 vom BW generiert wurde und sich keine generierten Views direkt in CompositeProvider einbinden lassen, müssen Sie vorher noch eine zusätzliche HANA-native Zwischenschicht modellieren. Diese manuell modellierte HANA-View können Sie dann im Provider als PartProvider verwenden. Bilden Sie auf dem Provider eine Query analog zu der aus Kapitel 1 ab, damit unser Testbenutzer USER_1 auch dieselben Ergebnisse wie auf dem ursprünglichen CompositeProvider YEPM_CP_SO zu sehen bekommt. Aufgrund der gewählten Namenskonvention müssen dazu keine Rollen oder Analyseberechtigungen angepasst werden.

1. Öffnen Sie das HANA Studio und erstellen Sie eine neue View YEPM_CP_SO_MAN, in die Sie die generierte View »system-local.bw.bw2hana.YEPM_CP_SO« einbetten (Abbildung 3.3)

Abbildung 3.3: Manuelle View auf Basis generierter View

2. Erstellen Sie nun einen CompositeProvider YEPM_CP_SO2, der die soeben manuell erstellte HANA-View konsumiert (Abbildung 3.4).

Abbildung 3.4: Composite Provider YEPM_CP_SO2

3. Mithilfe der Transaktion RSZC erzeugen Sie anschließend die Query YEPM_CP_SO_Q001 als Kopie der Query YEPM_CP_SO2_Q001 auf dem neu erstell-ten CompositeProvider YEPM_CP_SO2.

4. Dann müssen Sie die wichtigsten InfoObjekte auf die entsprechenden Felder mappen.

Page 43: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW ON HANA UND BW/4HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 43

5. Nachdem wir an den entscheidenden Stellen mit Namensräumen gearbeitet haben, kann der Anwender USER_1 die neue Query jetzt einfach ausführen und erhält dasselbe Er-gebnis wie auf der Originalquery.

Damit haben wir gezeigt, wie ein beliebiges HANA-Modell in BW konsumiert und berechtigt werden kann; die generierte View sollten Sie ja nur der Einfachheit halber als Ausgangsbasis verwenden.

Übung 3-3: Überprüfen des technischen BW-Benutzers Prüfen Sie, ob der zuvor beschriebene technische BW-Benutzer bereits alle genannten Privilegien besitzt. Weisen Sie ihm notfalls die fehlenden Privilegien zu.

1. Öffnen Sie dazu die Transaktion RS2HANA_CHECK.

2. Im Menü wählen Sie die Option KONSISTENZ PRÜFEN • TECHNISCHE BENUTZER • TECHNI-SCHER SAP BW-BENUTZER (SAP<SID>).

3. Als Ergebnis der Prüfung erhalten Sie ein Log, welches Erfolgs- und ggfs. Fehlermeldun-gen enthält, wenn der technische BW-Benutzer nicht korrekt konfiguriert ist (siehe Abbil-dung 3.5). Bevor die Replikation der Berechtigungen erfolgen kann, müssen Sie alle an-gezeigten Fehlermeldungen korrigieren. Die Kurz- oder Langtexte der Fehlermeldungen helfen Ihnen dabei, die genannten Probleme schnellstmöglich zu lösen.

Abbildung 3.5: Ergebnis der Prüfung des technischen SAP BW-Benutzers

Übung 3-4: Vergabe allgemeiner Berechtigungen Mithilfe des Reports RS2HANA_ASSIGN_PRIVILEGES sollen alle notwendigen Privile-gien für generierte externe HANA-Views von BW-Objekten vergeben werden. Öffnen Sie den Report und vergeben Sie die drei Privilegien an die Anwender USER_1 bis USER_12.

1. Öffnen Sie die Transaktion SE38 und geben Sie als Reportnamen »RS2HANA_ASSIGN_PRIVILEGES« ein. Alternativ können Sie auch in den Transaktio-nen RS2HANA_GEN oder RS2HANA_CHECK aus dem Menü die Option SPRINGEN • ALLGE-MEINE BERECHTIGUNGEN ZUORDNEN auswählen.

Page 44: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW ON HANA UND BW/4HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 44

2. Wählen Sie in der ersten Sektion (1) FOLGENDE BERECHTIGUNGEN ZUORDNEN die Privile-gien aus, die an die Benutzer in HANA oder an deren Rollen vergeben werden sollen (siehe Abbildung 3.6).

Abbildung 3.6: Auswahl der zu vergebenen Berechtigungen

3. Die zweite Sektion (2) ENTWEDER DIREKT ODER ÜBER EINE GENERIERTE ROLLE WIE IN TRANSAKTION RS2HANA_VIEW ist lediglich informativer Natur und zeigt Ihnen an, ob die in der ersten Sektion ausgewählten Privilegien direkt an die User oder an deren Rollen vergeben werden (vgl. Abbildung 3.7). In BW 7.50 werden Ihnen hier drei Optionen an-gezeigt.

Abbildung 3.7: Anzeige über Zuweisung der Privilegien

4. In der dritten Sektion (3) FOLGENDEN BENUTZERN können Sie entscheiden, ob die ge-wählten Privilegien allen Benutzern bzw. deren Rollen oder einer bestimmten Liste von Benutzern bzw. deren Rollen zugeordnet werden sollen (siehe Abbildung 3.8).

Abbildung 3.8: Auswahl der Benutzer

5. In BW 7.50 finden Sie außerdem noch eine vierte Sektion (4) DIE MAPPINGEINSTELLUN-GEN WIE IN TRANSAKTION RS2HANA_VIEW ERFÜLLEN. Diese Sektion hat ebenfalls rein informatorischen Charakter und zeigt Ihnen an, welche Benutzermapping-Einstellung in der Transaktion RS2HANA_VIEW gewählt wurde.

6. Haben Sie alle Einstellungen in den Sektionen 1–3 wie gewünscht getroffen, können Sie mit der Taste (F8) oder einem Klick auf den Button AUSFÜHREN die Zuweisung der Privi-legien starten.

7. Im Anschluss an die erfolgte Ausführung wird Ihnen ein Log mit dem Ergebnis angezeigt. Sollten hier Fehlermeldungen auftauchen, lohnt sich ein Blick in die Transaktion RS2HANA_CHECK, um für die im Protokoll genannten Benutzern die Fehlerursache analy-sieren und beheben zu können.

Übung 3-5: Anlegen des Rollenusers in SAP HANA Legen Sie in der Web IDE einen neuen Benutzer an und weisen Sie diesem das Sys-temprivileg ROLE ADMIN zu. Vergeben Sie ein Initialpasswort und speichern Sie den Be-nutzer. Optional können Sie danach die Änderung des Initialpassworts bei der ersten An-meldung sowie den Passwort-Lifetime-Check mithilfe der bekannten SQL Statements de-aktivieren. Wechseln Sie in der SAP GUI in die Transaktion DBCO und erstellen Sie einen neuen Eintrag für den soeben angelegten Benutzer.

Page 45: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW ON HANA UND BW/4HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 45

1. Wechseln Sie in der Web IDE zum Bereich SECURITY und erstellen Sie einen neuen Be-nutzer über den Menüpfad NEW • USER oder im linken Baum per Rechtsklick auf den Ein-trag USERS • NEW USER.

2. Vergeben Sie einen Benutzernamen und ein Initialpasswort.

3. Wechseln Sie zum Reiter SYSTEM PRIVILEGES und fügen Sie das Privileg ROLE ADMIN hinzu, wie in Abbildung 3.9 gezeigt.

Abbildung 3.9: Anlegen des Rollenbenutzers in HANA

4. Sichern und aktivieren Sie den Benutzer.

5. Wechseln Sie zum Bereich CATALOG und öffnen Sie die SQL-Konsole. Deaktivieren Sie die normalerweise notwendige Änderung des Initialpassworts bei der ersten Anmeldung des Benutzers im System unter Verwendung des folgenden in Listing 3.1 gezeigten SQL Statements:

ALTER USER <Benutzername> PASSWORD <Neues Passwort> NO FORCE_FIRST_PASSWORD_CHANGE

Listing 3.1: Deaktivieren der Passwortänderung bei der ersten Anmeldung

6. Deaktivieren Sie außerdem den Password Lifetime Check mithilfe des in Listing 3.2 ge-zeigten SQL Statements:

ALTER USER <Rollenuser> DISABLE PASSWORD LIFETIME

Listing 3.2: Deaktivieren des Password Lifetime Checks

7. Öffnen Sie in der SAP GUI die Transaktion DBCO und wechseln Sie mit einem Klick auf den Editierbutton oder mittels (STRG) + (F1) in den Editiermodus.

8. Wählen Sie den Button NEUE EINTRÄGE und hinterlegen Sie sowohl die entsprechenden Systeminformationen als auch den Namen des gerade angelegten Benutzers in HANA und dessen Passwort, wie in Abbildung 3.10 gezeigt. Als Verbindungsinformation hinter-legen Sie den Hostnamen und Port des HANA-Systems.

Page 46: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW ON HANA UND BW/4HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 46

Abbildung 3.10: Anlegen eines neuen DBCO-Eintrags

9. Speichern Sie den Eintrag.

Übung 3-6: Pflegen des Rollenusers im BW Zuvor haben wir bereits einen Rollenuser in HANA angelegt und einen Eintrag in der Transaktion DBCO gepflegt. Hinterlegen Sie nun die Datenbankverbindung in der Transak-tion RS2HANA_VIEW.

1. Öffnen Sie die Transaktion RS2HANA_VIEW.

2. In der Sektion BERECHTIGUNGEN finden Sie das Feld DB-VERBINDUNGSNAME. Hinterlegen Sie hier den Namen, welchen Sie in Übung 3-5 in der Transaktion DBCO angelegt haben (vgl. Abbildung 3.11).

Abbildung 3.11: Pflegen des DBCO-Eintrags in der Transaktion RS2HANA_VIEW

Übung 3-7: Replizieren von BW-Berechtigungen nach HANA

Öffnen Sie die Transaktion RS2HANA_GEN oder legen Sie eine neue Prozesskette für die Replikation der BW-Analyseberechtigungen nach HANA an. Geben Sie den Composite-Provider YEPM_CP_SO als BW-Objekt und die Benutzer USER_1 bis USER_12 als BW-Benutzer an. Führen Sie die Replikation aus. Falls Sie sie in der Transaktion RS2HANA_GEN starten, können Sie zudem die Option VERALTETE OBJEKTE AUFRÄUMEN wählen, um zusätzlich das System zu bereinigen.

In den Schritten 1–4 betrachten Sie zuerst die Replikation der Berechtigungen mithilfe der Transaktion RS2HANA_GEN. In den nachfolgenden Schritten 5–10 betrachten Sie dann die Replikation der Berechtigungen mithilfe einer Prozesskette.

1. Öffnen Sie die Transaktion RS2HANA_GEN.

2. Geben Sie im Feld BW-OBJEKTE den CompositeProvider YEPM_CP_SO und im Feld BW-BENUTZER die User USER_1 bis USER_12 an (vgl. Abbildung 3.12).

Page 47: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW ON HANA UND BW/4HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 47

Abbildung 3.12: Auswahl der Objekte und Benutzer für die Berechtigungsreplikation

3. Wählen Sie aus dem Menü die Option ZUSÄTZE • EXPERTENEINSTELLUNGEN ANZEIGEN, und wählen Sie dann aus der zusätzlich angezeigten Sektion EXPERTENEINSTELLUNGEN die Einstellung VERALTETE OBJEKTE AUFRÄUMEN (siehe Abbildung 3.13).

Abbildung 3.13: Experteneinstellungen in der Transaktion RS2HANA_GEN

4. Starten Sie die Replikation der Berechtigungen mit einem Klick auf den Button AUSFÜH-REN oder der Taste (F8). Im Anschluss an die Replikation wird Ihnen ein Log mit Erfolgs- und eventuellen Fehlermeldungen angezeigt, wie in Abbildung 3.14 zu sehen.

Abbildung 3.14: Log nach erfolgter Berechtigungsreplikation

Im Folgenden betrachten Sie nun die Replikation der Berechtigungen mithilfe einer Prozess-kette.

Page 48: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW ON HANA UND BW/4HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 48

5. Öffnen Sie die Transaktion RSPC und legen Sie eine neue Prozesskette mit einem Start-prozess an, der zu Ihrer Anforderung an die Häufigkeit der Berechtigungsreplikation passt.

6. Wählen Sie aus dem Baum der verfügbaren Prozesstypen den Typ BW-ANALYSEBERECHTIGUNGEN NACH SAP HANA REPLIZIEREN aus (vgl. Abbildung 3.15).

Abbildung 3.15: Prozesstyp »BW-Analyseberechtigungen nach SAP HANA replizieren

7. Legen Sie eine neue Variante an und hinterlegen Sie in der Variantenpflege im Feld BW-OBJEKT den CompositeProvider YEPM_CP_SO und im Feld BW-BENUTZER die Benutzer USER_1 bis USER_12 (siehe Abbildung 3.16).

Abbildung 3.16: Pflegen einer Variante für die Berechtigungsreplikation

8. Speichern Sie die Variante, aktivieren Sie die Prozesskette und führen Sie sie testweise mit einem Klick auf den Button EINPLANEN oder der Taste (F8) aus.

9. Wechseln Sie danach zur Protokollsicht der Kette, um die während der Replikation der Berechtigungen ausgegebenen Erfolgs- und eventuellen Fehlermeldungen zu sehen (vgl. Abbildung 3.17).

Abbildung 3.17: Log der Prozesskette nach der Berechtigungsreplikation

Page 49: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW ON HANA UND BW/4HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 49

10. Das Log der Replikation können Sie sich auch in der Transaktion SM37 des entspre-chend eingeplanten Jobs anschauen, wie in Abbildung 3.18 zu sehen:

Abbildung 3.18: Joblog der Berechtigungsreplikation per Prozesskette

Übung 3-8: Konsistenzprüfung einer View

Öffnen Sie die Transaktion RS2HANA_ADMIN und suchen Sie nach der View des Compo-siteProviders YEPM_CP_SO. Prüfen Sie die View auf Korrektheit und reparieren Sie sie, falls erforderlich.

1. Öffnen Sie die Transaktion RS2HANA_ADMIN und suchen Sie in der Spalte OBJEKTNAME nach dem CompositeProvider YEPM_CP_SO. Per Rechtsklick auf den Spaltentitel der Spalte OBJEKTNAME können Sie die Einträge über die Auswahl des Kontextmenüeintra-ges FILTER SETZEN… auch selektieren.

2. Wählen Sie die Zeile mit dem CompositeProviders YEPM_CP_SO aus. Klicken Sie dann in der Toolbar auf den Button (externen SAP-HANA-View prüfen) oder wählen Sie die Tastenkombination (STRG) + (F2), um die Konsistenz der generierten View zu überprüfen.

3. Ist die View konsistent, wird in der Spalte STATUS neben dem geprüften Objekt ein grü-nes Status-Icon angezeigt (vgl. Abbildung 3.19). Ist sie nicht konsistent, erscheint je nach Schwere der Inkonsistenz entweder ein gelbes Warn- oder ein rotes Fehler-Icon. In bei-den Fällen wird Ihnen nach der erfolgten Prüfung ein Log mit den gefundenen Warnun-gen und Fehlermeldungen ausgegeben.

Abbildung 3.19: CompositeProviders YEPM_CP_SO in der Transaktion RS2HANA_ADMIN

4. Einen inkonsistenten View können Sie mit einem Klick auf den Button (externen SAP-HANA-View reparieren) oder über die Taste (F8) reparieren. Wählen Sie im daraufhin angezeigten Dialog die Reparatur der View im Dialogmodus. Nach der erneuten Generie-rung des Views wird Ihnen das Generierungslog angezeigt (siehe Abbildung 3.20). Bei der Reparatur der View im Hintergrund können Sie das Log des erzeugten Jobs »RS2HANA_REPAIR« in der Transaktion SLG1 prüfen, siehe Abbildung 3.21.

Page 50: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW ON HANA UND BW/4HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 50

Abbildung 3.20: Log nach der Neugenerierung der View im Dialog

Abbildung 3.21: Log der Neugenerierung der View im Hintergrund

Übung 3-9: Generierte Privilegien wiederverwenden In dieser Übungsaufgabe legen Sie eine eigene HANA View YEPM_CP_SO_REUSE an, die die generierte View zu Composite Provider YEPM_CP_SO aus Übung 3-7 enthält. Als nächstes legen Sie ein analytisches Privileg an, das die generierte Prozedur wiederver-wendet und somit dem Anwender auf Ihrer HANA View dieselben Berechtigungen zuweist, die er auch auf der Originalview besitzt.

1. In Ihrem Entwicklungspaket legen Sie eine neue Calculation View »YEPM_CP_SO_REUSE« vom Typ STANDARD und der DATA CATEGORY CUBE an.

Page 51: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW ON HANA UND BW/4HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 51

2. Sie navigieren wieder zum Knoten AGGREGATION und fügen die View YEPM_CP_SO als Data Source hinzu.

3. Weiter selektieren Sie in der Tabelle DATA SOURCES die hinzugefügte View und fügen per Klick auf den Button ADD TO OUTPUT alle Felder der View zum Output des Aggregati-onsknotens hinzu.

4. Anschließend navigieren Sie zum Knoten SEMANTICS, setzen die Einstellung APPLY PRI-VILEGES auf SQL Analytic Privileges und aktivieren die View.

5. Legen Sie ein neues analytisches Privileg »YEPM_CP_SO_REUSE« in Ihrem Entwick-lungspaket an und fügen Sie die View YEPM_CP_SO_REUSE in der Sektion SECURED MODELS hinzu.

6. Wechseln Sie im rechten Bereich zur Option DYNAMIC. Wählen Sie dort den Eintrag Ca-talog Procedure und suchen Sie in der (F4)-Hilfe nach der Prozedur bw2hana/SAP<SID>_YEPM_CP_SO im Schema _SYS_BIC (vgl. Abbildung 3.22).

Abbildung 3.22: Wiederverwenden der generierten Prozedur YEPM_CP_SO

7. Sichern und aktivieren Sie das analytische Privileg und weisen Sie es einer neuen Rolle »YEPM_CP_SO_REUSE« zu. Weisen Sie diese Rolle einem neuen Testuser zu und füh-ren Sie eine Query auf der View YEPM_CP_SO_REUSE aus.

Übung 3-10: BW Berechtigungsdaten wiederverwenden Erstellen Sie ein analytisches Privileg für die Produktgruppe »PCs«, das die zugehörigen Werte aus der Tabelle RSECVAL_STRING im BW liest. Sie können dafür z. B. die in Übung 3-2 erstellte manuelle HANA-View verwenden. Auf diese Weise ist das HANA-Privileg immer identisch mit der BW-Analyseberechtigung, auch wenn letztere geändert wird. Die HANA-User-Zuordnung wäre dann allerdings noch nicht automatisiert. Optional können Sie auch ein dynamisches Privileg für den Benutzer USER_01 erstellen.

1. Erstellen Sie ein analytisches Privileg YEPM_PC, für das Sie im SQL-Editor folgenden String eintragen:

("0EPM_PRCAT" IN ( select TCTLOW from "SAPKIW"."RSECVAL_STRING" where TCTIOBJNM = '0EPM_PRCAT' and TCTAUTH = 'YEPM_PC' and OBJVERS = 'A' ) )

2. Erstellen Sie eine entsprechende Rolle und weisen Sie diese einem Testuser »USER_17_HANA« zu. Nachdem die View auf eine generierte View mit Privilegienschutz zugreift, benötigt der

Page 52: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW ON HANA UND BW/4HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 52

Anwender natürlich auch auf die generierte View Zugriff. Für den Test vergeben Sie am besten Vollzugriff, in der Praxis müsste es natürlich ein identischer Schutz sein.

3. Das analytische Privileg wird jetzt exakt die in der Analyseberechtigung YEPM_PC ge-pflegten Werte auch auf unsere HANA View berechtigen und eventuelle Änderungen mitbekommen.

4. Im Ergebnis sollte der Anwender also die in Abbildung 3.23 gezeigten Werte sehen.

Abbildung 3.23: Ergebnis für USER_17_HANA

5. Erstellen wir nun ein Privileg YEPM_PRCAT, das dynamisch die Rollenzuweisungen des

entsprechenden BW-Users berücksichtigt. 6. Das entsprechende SQL im Editor sieht wie folgt aus:

("0EPM_PRCAT" IN ( select auth_val.low from (select auth.low from "SAPKIW"."AGR_USERS" user_role join "SAPKIW"."AGR_1251" auth on user_role.agr_name = auth.agr_name where user_role.uname = SESSION_USER and TO_DATE(user_role.from_dat,'YYYYMMDD') <= CURRENT_DATE and TO_DATE(user_role.to_dat, 'YYYYMMDD') >= CURRENT_DATE and auth.mandt = '000' and auth.object = 'S_RS_AUTH' and auth.deleted = '') user join (select provider.tctauth, low.tctlow as low from "SAPKIW"."RSECVAL_STRING" provider join "SAPKIW"."RSECVAL_STRING" low on provider.tctauth = low.tctauth where provider.tctiobjnm = '0TCAIPROV' and provider.tctlow = 'YEPM*' and provider.objvers = 'A' and low.tctiobjnm = '0EPM_PRCAT' and low.objvers = 'A') auth_val on user.low = auth_val.tctauth) )

Wichtig: BW- und HANA-User müssen für dieses Beispiel identisch heißen! 7. Weisen Sie für das Privileg nun USER_13 zu.

Page 53: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW ON HANA UND BW/4HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 53

8. Erstellen Sie einen gleichnamigen BW-User und weisen Sie ihm die PFCG-Rolle YEPM_DATA_PC zu.

9. Im Ergebnis sieht der User dann wiederum denselben Ausschnitt wie in Abbildung 3.23.

Übung 3-11: Berechtigungen aus einem HANA System auslesen Erstellen Sie für den Benutzer aus Übung 2-8 eine entsprechende BW-Berechtigung, die seine Produktkategorie-Berechtigung aus der HANA-View EFFECTI-VE_STRUCTURED_PRIVILEGES zur Laufzeit ausliest.

1. Damit Sie eine BW-Berechtigung mit User Exit anlegen können (Schritt 13), benötigen Sie zuerst eine Calculation View in HANA, welche Ihnen auf Basis der View EFFECTIVE_STRUCTURED_PRIVILEGES die Berechtigungsdimensionen und Filter-werte ausliest und in einem für BW-Analyseberechtigungen entsprechenden Format zu-rückliefert. Dazu legen Sie in Ihrem Entwicklungspaket eine neue Calculation View »AP_ANALYZER« mit dem Typ SCRIPT an (vgl. Abbildung 3.24).

Abbildung 3.24: Anlegen einer neuen Calculation View

2. Wechseln Sie zum Reiter VIEW PROPERTIES und wählen Sie für die Einstellung APPLY PRIVILEGES den Wert <blank> aus. Stellen Sie außerdem die Einstellung RUN WITH auf Invoker’s Rights (vgl. Abbildung 3.25).

Abbildung 3.25: Pflegen der View Properties

Page 54: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW ON HANA UND BW/4HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 54

3. Wechseln Sie nun zum Reiter PARAMETERS/VARIABLES und legen Sie die folgenden Pa-rameter an (vgl. Abbildung 3.26, exemplarisch für den Parameter »USER_NAME«):

USER_NAME: o Label: User Name o Is Mandatory: Ja o Parameter Type: Direct o Data Type: NVARCHAR o Length: 256 o Default Value: Type: Expression; Value: session_user

SCHEMA_NAME: o Label: Schema Name o Is Mandatory: Ja o Parameter Type: Direct o Data Type: NVARCHAR o Length: 256

VIEW_NAME: o Label: View Name o Is Mandatory: Ja o Parameter Type: Direct o Data Type: NVARCHAR o Length: 256

Abbildung 3.26: Pflegen der Parameter am Beispiel USER_NAME

4. Wechseln Sie zum Reiter SCRIPT. Legen Sie zunächst die Struktur der Ausgabe der Cal-culation View fest, indem Sie auf der rechten Seite in der Sektion COLUMNS die folgenden Spalten definieren (vgl. Abbildung 3.27):

USER_NAME: NVARCHAR(256) SCHEMA_NAME: NVARCHAR(256) VIEW_NAME: NVARCHAR(256) STRUCTURED_PRIVILEGE_SCHEMA_NAME: NVARCHAR(256) STRUCTURED_PRIVILEGE_NAME: NVARCHAR(256) ATTRIBUTE: NVARCHAR(256) OPERATOR: NVARCHAR(256) POSIT: INTEGER VALUE: NVARCHAR(256)

Page 55: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW ON HANA UND BW/4HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 55

Abbildung 3.27: Ausgabestruktur der Calculation View

5. Ersetzen Sie den bereits existierenden Code durch den in Listing 3.3 gezeigten. Dadurch definieren Sie die vier Variablen v_substring, v_attribute, v_operator und v_value.

/********* Begin Procedure Script ************/ BEGIN DECLARE v_substring NVARCHAR(5000) = ''; DECLARE v_attribute NVARCHAR(256) = ''; DECLARE v_operator NVARCHAR(2) = ''; DECLARE v_value NVARCHAR(256) = ''; END /********* End Procedure Script ************/

Listing 3.3: Anlegen der benötigten Variablen

6. Deklarieren Sie nun einen Cursor »c«, um den Filterstring für eine HANA-View aus EFFECTIVE_STRUCTURED_PRIVILEGES auslesen zu können. Dazu benötigen Sie In-formationen bzgl. des Schemas der View, dessen Namen und den Benutzer, für welchen der Filterstring gelesen werden soll (vgl. Listing 3.4).

/* Selektiere alle Daten zu dem gegebenen User. */ DECLARE CURSOR c FOR SELECT "STRUCTURED_PRIVILEGE_SCHEMA_NAME", "STRUCTURED_PRIVILEGE_NAME", "STRUCTURED_PRIVILEGE_FILTER" FROM "PUBLIC"."EFFECTIVE_STRUCTURED_PRIVILEGES" WHERE "ROOT_SCHEMA_NAME" = :schema_name AND "ROOT_OBJECT_NAME" = :view_name AND "USER_NAME" = :user_name AND "SCHEMA_NAME" = :schema_name AND "OBJECT_NAME" = :view_name;

Listing 3.4: Deklarieren des Cursors

7. Legen Sie anschließend eine FOR-Schleife an, die die vom Cursor »c« gelesenen Er-gebnisse weiterverarbeitet. Weisen Sie der Variablen v_substring den Wert der Spalte STRUCTURED_PRIVILEGE_FILTER der aktuellen Ergebniszeile zu (vgl. Listing 3.5).

FOR cur_row AS c DO v_substring = :cur_row.structured_privilege_filter;

Page 56: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW ON HANA UND BW/4HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 56

END FOR;

Listing 3.5: Definition der FOR-Schleife

8. In einem einfachen Beispiel ist der Filterstring z. B. wie folgt aufgebaut:

«0EPM_PRTN« CP ‚*‘ OR »0EPM_BP__0EPM_CNTRY« EQ ‚DE‘.

In diesem Beispiel handelt es sich um einen nicht geklammerten Filter, wobei die Berech-tigungsdimensionen jeweils »verordert« sind. Um die Berechtigungsdimension, den je-weiligen Operator sowie den Filterwert auslesen zu können, müssen Sie den Filterstring also am Zeichen » aufteilen. Dazu iterieren Sie innerhalb der zuvor angelegten FOR-Schleife über den derzeit in der Variable v_substring hinterlegten Filterstring. Zusätz-lich initialisieren Sie für jeden Schleifendurchlauf die Variablen v_attribute, v_operator und v_value. Sie entfernen das erste Vorkommen von » und lesen die aktuelle Berechtigungsdimension (vgl. Listing 3.6).

/* Gehe über alle Attribute. */ WHILE LOCATE (:v_substring, '"') > 0 DO /* Initialisiere alle Variablen. */ v_attribute = ''; v_operator = ''; v_value = ''; /* Entferne das erste ". */ v_substring = SUBSTR_AFTER (:v_substring, '"'); /* Hole das Attribut. */ v_attribute = SUBSTR_BEFORE (:v_substring, '"'); /* Entferne das Attribut aus dem Substring inklusive aller Leerzeichen. */ v_substring = TRIM (SUBSTR_AFTER (:v_substring, '"')); END WHILE;

Listing 3.6: Anlegen einer WHILE-Schleife und Auslesen der Berechtigungsdimension

9. Danach (Sie befinden sich immer noch in der WHILE-Schleife) bestimmen Sie den aktu-ellen Operator (vgl. Listing 3.7).

/* Lese den zugehörigen Operator. */ IF LOCATE (:v_substring, '=') = 1 THEN v_operator = 'EQ'; ELSEIF LOCATE (:v_substring, '!=') = 1 THEN v_operator = 'NE'; ELSEIF LOCATE (:v_substring, '<') = 1 THEN v_operator = 'LT'; ELSEIF LOCATE (:v_substring, '>') = 1 THEN v_operator = 'GT'; ELSEIF LOCATE (:v_substring, '<=') = 1 THEN v_operator = 'LE'; ELSEIF LOCATE (:v_substring, '>=') = 1 THEN v_operator = 'GE'; ELSEIF LOCATE (:v_substring, 'LIKE') = 1 THEN v_operator = 'CP'; ELSEIF LOCATE (:v_substring, 'BETWEEN') = 1 THEN v_operator = 'BT';

Page 57: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW ON HANA UND BW/4HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 57

ELSE v_operator = 'UN'; /* Undefined */ END IF; /* Entferne den Operator aus dem Substring inklusive aller Leerzeichen. */ v_substring = TRIM (SUBSTR_AFTER (:v_substring, ''''));

Listing 3.7: Bestimmen des Operators

10. Anschließend bestimmen Sie den Filterwert und ergänzen das Ergebnis (Berechtigungs-dimension, Operator und Filterwert) zur Ausgabe der Calculation View (vgl. Listing 3.8).

/* Hole den Filterwert. */ v_value = SUBSTR_BEFORE (:v_substring, ''''); /* Füge eine neue Zeile zum Ergebnis hinzu. */ var_out = SELECT :user_name AS "USER_NAME", :schema_name AS "SCHEMA_NAME", :view_name AS "VIEW_NAME", :cur_row.structured_privilege_schema_name AS "STRUCTURED_PRIVILEGE_SCHEMA_NAME", :cur_row.structured_privilege_name AS "STRUCTURED_PRIVILEGE_NAME", :v_attribute AS "ATTRIBUTE", :v_operator AS "OPERATOR", 1 AS "POSIT", :v_value AS "VALUE" FROM dummy UNION SELECT * FROM :var_out;

Listing 3.8: Bestimmen des Filterwerts und Erweitern der Ausgabe der Calculation View

11. Für den Operator BT (Between) müssen wir zusätzlich zur Untergrenze des Filterwer-tebereichs die Obergrenze aus dem Filterstring extrahieren und eine weitere Zeile zur Ausgabe der Calculation View hinzufügen (vgl. Listing 3.9).

IF :v_operator = 'BT' THEN /* Entferne den ersten Filterwert aus dem Substring. */ v_substring = TRIM (SUBSTR_AFTER (:v_substring, '''')); /* Entferne das AND aus dem Substring inklusive aller Leerzeichen. */ v_substring = TRIM (SUBSTR_AFTER (:v_substring, '''')); /* Hole den Filterwert. */ v_value = SUBSTR_BEFORE (:v_substring, ''''); /* Füge eine neue Zeile zum Ergebnis hinzu. */ var_out = SELECT :user_name AS "USER_NAME", :schema_name AS "SCHEMA_NAME", :view_name AS "VIEW_NAME", :cur_row.structured_privilege_schema_name AS "STRUCTURED_PRIVILEGE_SCHEMA_NAME", :cur_row.structured_privilege_name AS "STRUCTURED_PRIVILEGE_NAME", :v_attribute AS "ATTRIBUTE", :v_operator AS "OPERATOR", 2 AS "POSIT", :v_value AS "VALUE" FROM dummy

Page 58: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW ON HANA UND BW/4HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 58

UNION SELECT * FROM :var_out; END IF;

Listing 3.9: Behandlung der Obergrenze des Operators BT

12. Speichern und aktivieren Sie die Calculation View. Den vollständigen Code der Calculation View finden Sie im folgenden Listing 3.10:

/********* Begin Procedure Script ************/ BEGIN DECLARE v_substring NVARCHAR(5000) = ''; DECLARE v_attribute NVARCHAR(256) = ''; DECLARE v_operator NVARCHAR(2) = ''; DECLARE v_value NVARCHAR(256) = ''; /* Selektiere alle Daten zu dem gegebenen User. */ DECLARE CURSOR c FOR SELECT "STRUCTURED_PRIVILEGE_SCHEMA_NAME", "STRUCTURED_PRIVILEGE_NAME", "STRUCTURED_PRIVILEGE_FILTER" FROM "PUBLIC"."EFFECTIVE_STRUCTURED_PRIVILEGES" WHERE "ROOT_SCHEMA_NAME" = :schema_name AND "ROOT_OBJECT_NAME" = :view_name AND "USER_NAME" = :user_name AND "SCHEMA_NAME" = :schema_name AND "OBJECT_NAME" = :view_name; FOR cur_row AS c DO v_substring = :cur_row.structured_privilege_filter; /* Gehe über alle Attribute. */ WHILE LOCATE (:v_substring, '"') > 0 DO /* Initialisiere alle Variablen. */ v_attribute = ''; v_operator = ''; v_value = ''; /* Entferne das erste ". */ v_substring = SUBSTR_AFTER (:v_substring, '"'); /* Hole das Attribut. */ v_attribute = SUBSTR_BEFORE (:v_substring, '"'); /* Entferne das Attribut aus dem Substring inklusive aller Leerzeichen. */ v_substring = TRIM (SUBSTR_AFTER (:v_substring, '"')); /* Lese den zugehörigen Operator. */ IF LOCATE (:v_substring, '=') = 1 THEN v_operator = 'EQ'; ELSEIF LOCATE (:v_substring, '!=') = 1 THEN v_operator = 'NE'; ELSEIF LOCATE (:v_substring, '<') = 1 THEN v_operator = 'LT'; ELSEIF LOCATE (:v_substring, '>') = 1 THEN v_operator = 'GT';

Page 59: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW ON HANA UND BW/4HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 59

ELSEIF LOCATE (:v_substring, '<=') = 1 THEN v_operator = 'LE'; ELSEIF LOCATE (:v_substring, '>=') = 1 THEN v_operator = 'GE'; ELSEIF LOCATE (:v_substring, 'LIKE') = 1 THEN v_operator = 'CP'; ELSEIF LOCATE (:v_substring, 'BETWEEN') = 1 THEN v_operator = 'BT'; ELSE v_operator = 'UN'; /* Undefined */ END IF; /* Entferne den Operator aus dem Substring inklusive aller Leerzeichen. */ v_substring = TRIM (SUBSTR_AFTER (:v_substring, '''')); /* Hole den Filterwert. */ v_value = SUBSTR_BEFORE (:v_substring, ''''); /* Füge eine neue Zeile zum Ergebnis hinzu. */ var_out = SELECT :user_name AS "USER_NAME", :schema_name AS "SCHEMA_NAME", :view_name AS "VIEW_NAME", :cur_row.structured_privilege_schema_name AS "STRUCTURED_PRIVILEGE_SCHEMA_NAME", :cur_row.structured_privilege_name AS "STRUCTURED_PRIVILEGE_NAME", :v_attribute AS "ATTRIBUTE", :v_operator AS "OPERATOR", 1 AS "POSIT", :v_value AS "VALUE" FROM dummy UNION SELECT * FROM :var_out; IF :v_operator = 'BT' THEN /* Entferne den ersten Filterwert aus dem Substring. */ v_substring = TRIM (SUBSTR_AFTER (:v_substring, '''')); /* Entferne das AND aus dem Substring inklusive aller Leerzeichen. */ v_substring = TRIM (SUBSTR_AFTER (:v_substring, '''')); /* Hole den Filterwert. */ v_value = SUBSTR_BEFORE (:v_substring, ''''); /* Füge eine neue Zeile zum Ergebnis hinzu. */ var_out = SELECT :user_name AS "USER_NAME", :schema_name AS "SCHEMA_NAME", :view_name AS "VIEW_NAME", :cur_row.structured_privilege_schema_name AS "STRUCTURED_PRIVILEGE_SCHEMA_NAME", :cur_row.structured_privilege_name AS "STRUCTURED_PRIVILEGE_NAME", :v_attribute AS "ATTRIBUTE", :v_operator AS "OPERATOR", 2 AS "POSIT", :v_value AS "VALUE" FROM dummy

Page 60: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW ON HANA UND BW/4HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 60

UNION SELECT * FROM :var_out; END IF; END WHILE; END FOR; END /********* End Procedure Script ************/

Listing 3.10: Code der Calculation View AP_ANALYZER

13. Wechseln Sie nun ins BW und legen Sie eine Analyseberechtigung YEPM_HANA mit einer Customer Exit Variable YEPM_PRCAT_AUTH_HANA für 0EPM_PRCAT_und Voll-zugriff auf Land für den Provider YEPM_CP_SO an.

14. Im Exit hinterlegen Sie den folgenden Code für Ihre Variable und den i-step = 0 (vgl. List-ing 3.11):

TYPES: BEGIN OF t_s_output, user_name(256) TYPE c, schema_name(256) TYPE c, view_name(256) TYPE c, sp_schema_name(256) TYPE c, sp_name(256) TYPE c, attribute(256) TYPE c, operator(256) TYPE c, posit TYPE i, value(256) TYPE c, END OF t_s_output, t_t_output TYPE STANDARD TABLE OF t_s_output WITH DEFAULT KEY. DATA: lt_output TYPE t_t_output, lt_output_tmp TYPE t_t_output. FIELD-SYMBOLS: <fs_output> like line of lt_output . * Holen des ausführenden Benutzers für RSUDO CALL FUNCTION 'RSEC_GET_USERNAME' IMPORTING e_username = l_uname. * Parameter setzen DATA(l_user_name) = 'l_uname'. DATA(l_schema_name) = '_SYS_BIC'. DATA(l_view_name) = 'system-local.bw.bw2hana/YEPM_CP_SO'. * SQL Statement zusammenbauen DATA(l_sql) = |SELECT|. l_sql = |{ l_sql } "USER_NAME",|. l_sql = |{ l_sql } "VIEW_NAME",|. l_sql = |{ l_sql } "SCHEMA_NAME",|. l_sql = |{ l_sql } "STRUCTURED_PRIVILEGE_SCHEMA_NAME" AS "SP_SCHEMA_NAME",|. l_sql = |{ l_sql } "STRUCTURED_PRIVILEGE_NAME" AS "SP_NAME",|. l_sql = |{ l_sql } "ATTRIBUTE",|. l_sql = |{ l_sql } "OPERATOR",|. l_sql = |{ l_sql } "POSIT",|.

Page 61: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW ON HANA UND BW/4HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 61

l_sql = |{ l_sql } "VALUE"|. l_sql = |{ l_sql } FROM "_SYS_BIC"."ESPRESSO_TUTORIALS/AP_ANALYZER"|. l_sql = |{ l_sql } (placeholder."$$USER_NAME$$"=>'{ l_user_name }',|. l_sql = |{ l_sql } placeholder."$$SCHEMA_NAME$$"=>'{ l_schema_name }',|. l_sql = |{ l_sql } placeholder."$$VIEW_NAME$$"=>'{ l_view_name }')|. * SQL Statement ausführen DATA(lr_sql_stmt) = cl_sql_connection=>get_connection( )->create_statement( ). DATA(lr_sql_res) = lr_sql_stmt->execute_query( l_sql ). lr_sql_res->set_param_table( itab_ref = REF #( lt_output_tmp ) ). WHILE 0 < lr_sql_res->next_package( ). INSERT LINES OF lt_output_tmp INTO TABLE lt_output. ENDWHILE. ls_range_a-sign = 'I'. LOOP AT lt_output ASSIGNING <fs_output>. ls_range_a-opt = <fs_output>-operator. ls_range_a-low = <fs_output>-value. ENDLOOP. APPEND ls_range_a TO e_t_range

Listing 3.11: Definition der Ausgabestruktur

15. Nun erstellen Sie einen BW-User USER_01_HANA (BW- und HANA-User müssen iden-tisch heißen, ansonsten müssten Sie zusätzlich noch das entsprechende Mapping ausle-sen) und weisen ihm die Reportingrolle und das analytische Privileg YEPM_HANA zu.

16. Führen Sie anschließend mit dem neuen BW-User die BW-Query YEPM_CP_SP_Q001 aus, so erhalten Sie das folgende Ergebnis (Abbildung 3.28).

Abbildung 3.28: Queryergebnis für den Anwender USER_01_HANA

Page 62: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW ON HANA UND BW/4HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 62

Übung 3-12: Zentrale Pflege der Berechtigungen In Übung 1-9 haben Sie bereits ein Customer-Exit-Szenario implementiert, das Sie nun als Basis verwenden können. Modifizieren Sie noch Ihren Code aus Übung 2-15 dergestalt, dass die berechtigten Werte aus der entsprechenden BW-Mappingtabelle von Übung 1-9 gelesen werden.

1. Zu Erinnerung: Wir hatten einen Anwender »USER_5« angelegt und ihm neben der Re-portingrolle eine Analyseberechtigung »YEPM_PK_CE« mit der Customer-Exit-Variable »YEPM_PRCAT_AUTH_CE« für das Merkmal Produktkategorie und Vollzugriff auf Land zugewiesen.

2. Das Customer Exit liest die berechtigten Werte aus der BW Tabelle ZAUTH_TAB. Die Struktur der Tabelle entspricht Abbildung 1.13, der Inhalt Abbildung 1.14: User_5 darf die Produktkategorie »Keyboards« sehen.

3. Legen Sie nun ein Analytisches Privileg YEPM_AP_BW_PROC an, in dem Sie für die View YEPM_CP_SO eine Prozedur YEPM_BW_PROC mit dem folgenden Code (vgl. Listing 3.9) hinterlegen.

PROCEDURE "<Systemschema>"."ESPRESSO_TUTORIALS::YEPM_BW_PROC" (OUT o_filter VARCHAR(5000)) LANGUAGE SQLSCRIPT SQL SECURITY INVOKER --DEFAULT SCHEMA <default_schema_name> READS SQL DATA AS BEGIN DECLARE CURSOR c_cursor FOR SELECT low FROM "SAPKIW"."ZAUTH_TAB" WHERE usernm = SESSION_USER; o_filter = ''; FOR cur_row AS c_cursor DO IF :o_filter != '' THEN o_filter = :o_filter || ' OR '; END IF; o_filter = :o_filter || '"0EPM_PRCAT" = ''' || :cur_row.low || ''''; END FOR; END

Listing 3.12: Stored Procedure zum Lesen aus BW-Tabelle

4. Alternativ können Sie die Variante „SQL-Editor“ nutzen und ein analytisches Privileg YEPM_BW für die View YEPM_CP_SO mit dem folgenden SQL Code erstellen:

"0EPM_PRCAT" IN (SELECT low FROM "SAPKIW"."ZAUTH_TAB" WHERE usernm = SESSION_USER)

5. Nun legen Sie einen HANA User USER_5 an und berechtigen ihn entsprechend mit ei-nem der beiden Privilegien und der Reporting Rolle.

6. Das Ergebnis der Ausführung unseres Analysis Workbooks für User_5 im BW sieht wie folgt aus (Abbildung 3.29):

Page 63: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

KAPITEL: BERECHTIGUNGEN IN SAP BW ON HANA UND BW/4HANA

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 63

Abbildung 3.29: Ergebnis der Abfrage YEPM_CP_SO_001 für den Anwender USER_5 (BW)

7. Das Ergebnis der Ausführung des HANA Analysis Workbooks für User_5 in HANA ent-spricht Abbildung 3.30:

Abbildung 3.30: Ausführung YEPM_CP_SO_001 für den Anwender USER_05 (HANA)

Page 64: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

ZUSÄTZLICHE INFORMATIONEN UND BEISPIELE

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 64

4 Zusätzliche Informationen und Beispiele

Exkurs: Arbeiten mit den SAP BW-Modeling-Tools Die SAP BW-Modeling-Tools, kurz BW-MT oder Modeling-Tools, sind Ihnen bereits mehr-fach im Buch begegnet. Sie bieten eine Eclipse-basierte, integrierte Modellierungsumgebung für die Verwaltung und Pflege von BW-Metadatenobjekten. Die Modeling-Tools sind ab BW 7.40 SP 05 verfügbar und lösen nach und nach die klassische GUI-Modellierung mit der RSA1 ab. Neue BW-Objekte wie der CompositeProvider (HCPR) oder das Advanced-DataStore-Objekt (ADSO) können ausschließlich mit diesem Werkzeug erstellt werden, aber auch klassische RSA1-Funktionen wie die InfoObjekt- oder DataSource-Modellierung wan-dern in die Eclipse-Tools. Gleiches gilt für den neuen Query Designer. Im Gegensatz zur HANA-nativen Modellierung ist momentan jedoch für BW keine Web-IDE-Integration geplant.

Die Modeling-Tools können über den SAP Service Marketplace (https://support.sap.com/swdc) als vollständige Installation oder über die SAP-Development-Tools-Webseite (https://tools.hana.ondemand.com/#bw) als Plugin zu einer bereits beste-henden Eclipse-Installation bezogen werden. Im Abschnitt »More Information« finden Sie auch einen Installation Guide mit Hinweisen zur Einrichtung der Tools.

Werfen wir noch kurz einen Blick auf die Benutzeroberfläche (Abbildung 4.1).

Abbildung 4.1: Überblick über die SAP BW-Modeling-Tools

In der Toolbar finden Sie neben den allgemeinen Funktionen, wie (New) zum Anlegen neuer Projekte oder Erzeugen neuer Objekte und den Optionen (Save) oder (Save All), auch die Icons für das Öffnen (Open BW Object), Prüfen (Check BW Object) und Akti-vieren (Activate BW Object) von BW-Objekten. Diese BW-spezifischen Optionen werden Ihnen allerdings erst angeboten, wenn Sie in die BW-Modeling-Perspektive wechseln. Diese erreichen Sie über den Button (Open Perspective). In der BW-Perspektive sehen

Page 65: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

ZUSÄTZLICHE INFORMATIONEN UND BEISPIELE

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 65

Sie außerdem in der Sektion die Reiter PROJECT EXPLORER, OUTLINE und IN-

FOPROVIDER. Unter dem Reiter PROJECT EXPLORER werden alle im System vorhandenen BW-Objekte, sortiert nach InfoAreas (Ordner BW REPOSITORY), aufgelistet. Dies ent-spricht der klassischen RSA1-InfoProvider-Liste. Zusätzlich sehen wir einen Ordner für die DataSources und einen für ausgewählte Favoriten. Öffnen Sie ein BW-Objekt, entweder über den BW-Open-Object-Dialog oder durch Auswahl im Project Explorer, öffnet sich der ent-sprechende Objekteditor in Sektion . In Sektion finden Sie zusätzliche Informationen passend zum geöffneten Editor. Im Fall eines BW-Objekts sind dies z. B. der Objektstatus, das Entwicklungspaket oder die verantwortliche Person.

Arbeiten mit den SAP BW-Modeling-Tools Für die Verbindung der Modeling-Tools mit einem BW-Backend-System benötigt der Anwender das zugehörige Berechtigungsobjekt S_ADT_RES auf dem betreffenden BW-System. Weitere Informationen hierzu finden Sie im SAP-Hinweis 1969032 – »Fehlende Berechtigung für Res-sourcen der BW-Modellierungswerkzeuge«.

Beispiel: Multidimensionale analytische Privilegien anlegen In diesem Beispiel sehen Sie anhand zweier Szenarien, wie Sie multidimensionale analytische Privilegien anlegen können. Dazu verwenden Sie die generierte View des CompositeProviders YEPM_CP_SO und legen pro Szenario zwei analytische Privilegien an, die dann einem jeweils neuen Testbenutzer zugewiesen werden.

1. Für das erste Szenario legen Sie in Ihrem Entwicklungspaket ein analytisches Privileg vom Typ SQL mit dem Namen »YEPM_NA« für die View YEPM_CP_SO und einer Restriktion auf dem Attribut 0EPM_BP__0EPM_CNTR für die Werte »MX« und »US« an.

2. Dieses Privileg weisen Sie der neuen Rolle »YEPM_DATA_NA« zu. 3. Zusätzlich legen Sie ein zweites analytisches Privileg vom Typ SQL mit dem Namen

»YEPM_SERVER« für die View YEPM_CP_SO mit einer Restriktion auf dem Attribut 0EPM_PRCAT für den Wert »Servers« an.

4. Dieses Privileg weisen Sie der neuen Rolle »YEPM_DATA_SERVER« zu. 5. Beide neuen Rollen sowie die Reportingrolle REPORTING_USER und die Rolle

YEPM_CP_SO weisen Sie dem neu angelegten Benutzer zu.

Abbildung 4.2: Ergebnis der Abfrage YEPM_CP_SO_001

6. Für das zweite Szenario legen Sie in Ihrem Entwicklungspaket ein analytisches Privileg vom Typ SQL mit dem Namen »YEPM_SERVER_US« für die View YEPM_CP_SO an.

Page 66: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

ZUSÄTZLICHE INFORMATIONEN UND BEISPIELE

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 66

7. Sie erzeugen jeweils eine Restriktion auf dem Attribut 0EPM_BP__0EPM_CNTRY für den Wert »US« und auf dem Attribut 0EPM_PRCAT für den Wert »Servers«.

8. Das Privileg weisen Sie der neuen Rolle »YEPM_DATA_SERVER_US« zu. 9. Weiter legen Sie ein zweites analytisches Privileg vom Typ SQL mit dem Namen

»YEPM_PC_CA« für die View YEPM_CP_SO an. 10. Sie erzeugen jeweils eine Restriktion auf dem Attribut 0EPM_BP__0EPM_CNTR für den

Wert »CA« und auf dem Attribut 0EPM_PRCAT für den Wert »PCs«. 11. Das Privileg weisen Sie der neuen Rolle »YEPM_DATA_PC_CA« zu. 12. Auch hier weisen Sie wieder die beiden neuen Rollen, die Reportingrolle REPORT-

ING_USER und die Rolle YEPM_CP_SO einem neuen Benutzer zu.

Abbildung 4.3: Ergebnis der Abfrage YEPM_CP_SO_001

Sie sehen, dass in beiden Fällen die initiale Selektion ohne Fehlermeldung ausgeführt wird und Sie ein Ergebnis erhalten. Sie müssen bei der Analyse der erhaltenen Daten aber be-achten, dass diese immer noch entsprechend der Berechtigungen gefiltert werden. Aufgrund der Tatsache, dass die initiale Selektion in SAP HANA nicht wegen eines Berechtigungsfeh-lers abbricht, dürfen Sie nicht davon ausgehen, dass Sie auch auf das Kreuzprodukt berech-tigt sind. Würden Sie davon ausgehen, müssten wir weiterführend feststellen, dass es z. B. im zweiten Szenario für die Kombination aus Produktkategorie Server (»Servers«) und Land Kanada (»CA«) oder der Kombination aus Produktkategorie PCs (»PCs«) und Land USA (»US«) keine Daten gibt. Das ist aber nicht korrekt, da diese aufgrund der definierten Privile-gien herausgefiltert wurden, weil Sie nicht auf das Kreuzprodukt der analytischen Privilegien berechtigt sind.

Beispiel: Dynamische Implementierung multidimensionaler analytischer Privilegien Dieses Beispiel baut auf dem Beispiel »Analytisches Privileg mit der Option »SQL« anlegen« im Abschnitt 2.2.4 »Variablen-Ansatz« des Buches auf. Schauen Sie sich zuerst das dort genannte Beispiel als Grundlage an, bevor Sie sich dem Beispiel hier im Bonusteil widmen.

Um zu überprüfen, ob die angelegten analytischen Privilegien YEPM_CE_01 und YEPM_CE_02 auch mit mehr als einem ausgeprägten Berechtigungsmerkmal korrekt verwen-det werden können, können Sie für die beiden im Beispiel im Buch genannten Benutzer noch jeweils eine weitere Ausprägung für das Attribut 0EPM_PRCAT in die Tabelle AUTHORIZATI-ON_VALUES schreiben. Die bereits angelegten Privilegien funktionieren weiterhin und die ak-tualisierten Berechtigungen sind sofort verfügbar. Interessant wird es aber, wenn Sie die Pro-zedur aus dem Beispiel mit der Option Dynamic so erweitern, dass diese für beliebige Attribu-te und beliebige Operatoren genutzt werden kann. Den kompletten Quellcode der in diesem Beispiel angelegten Prozedur finden Sie am Ende dieses Beispiels.

Page 67: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

ZUSÄTZLICHE INFORMATIONEN UND BEISPIELE

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 67

1. Sie legen eine weitere Tabelle AUTHORIZATION_VALUES_ENHANCED in Ihrem Sys-temschema an. Dafür verwenden Sie die Definition der Tabelle AUTHORIZATI-ON_VALUES, ergänzen diese aber zusätzlich um die Spalten »OPERATOR« vom Typ NVARCHAR, Länge 2, welche Sie hinter der Spalte »ATTRIBUTE« einfügen, und die Spalte »HIGH« vom Typ NVARCHAR und der Länge 255, welche Sie hinter der Spalte »LOW« einfügen. Außerdem dürfen Sie nicht vergessen, den Primärschlüssel der Tabel-le um die Spalte »OPERATOR« zu erweitern!

2. Darauffolgend füllen Sie die Tabelle erneut mit Beispieldaten. Sie übernehmen die Bei-spieldaten aus der Tabelle AUTHORIZATION_VALUES für den Benutzer U-SER_06_HANA (vergessen Sie nicht den Operator mit »EQ« anzugeben), ändern den User auf USER_07_HANA und fügen zusätzlich die folgenden Daten für die Operatoren CP, BT und EQ ein (vgl. Listing 4.1). Optional können Sie noch weitere Daten einfügen.

INSERT INTO "KANNGIESSER"."AUTHORIZATION_VALUES_ENHANCED" VALUES ('USER_07_HANA', '0EPM_PRCAT', 'CP', 'M%', ''); INSERT INTO "KANNGIESSER"."AUTHORIZATION_VALUES_ENHANCED" VALUES ('USER_07_HANA', '0EPM_PRCAT', 'BT', 'Scanners', 'Speakers'); INSERT INTO "KANNGIESSER"."AUTHORIZATION_VALUES_ENHANCED" VALUES ('USER_07_HANA', '0EPM_BP__0EPM_CNTRY', 'EQ', 'US', '');

Listing 4.1: Füllen der erweiterten Mapping Tabelle

3. Den gesamten Inhalt der Tabelle sehen Sie in Abbildung 4.4.

Abbildung 4.4: Inhalt der Tabelle AUTHORIZATION_VALUES_ENHANCED

4. Nun legen Sie eine neue Prozedur in Ihrem Entwicklungspaket mit dem Namen YEPM_CE_03 an und übernehmen den Code der Prozedur YEPM_CE_02. Die Cursordeklaration ersetzen Sie durch die in Listing 4.2:

DECLARE CURSOR c_cursor FOR SELECT "ATTRIBUTE", "OPERATOR", "LOW", "HIGH" FROM "KANNGIESSER"."AUTHORIZATION_VALUES_ENHANCED" WHERE "USERNAME" = SESSION_USER ORDER BY "ATTRIBUTE";

Listing 4.2: Deklaration des Cursors

5. Zusätzlich zum Cursor deklarieren Sie eine Variable »v_attribute« vom Typ NVARCHAR der Länge 255, wie in Listing 4.3 gezeigt. Die Variable benötigen Sie für das Vormerken des in der FOR-Schleife zuletzt verarbeiteten Attributes.

Page 68: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

ZUSÄTZLICHE INFORMATIONEN UND BEISPIELE

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 68

DECLARE v_attribute NVARCHAR(255) = '';

Listing 4.3: Deklaration der Hilfsvariable v_attribute

6. Innerhalb der FOR-Schleife ersetzen Sie das IF-THEN-ELSE-Statement durch die fol-gende Fallunterscheidung (vgl. Listing 4.4). Damit stellen Sie sicher, dass einzelne Be-rechtigungsausprägungen für dasselbe Attribut »verodert« werden. Verschiedene Attribu-te werden wiederum »verundet«.

/* OR-Verknüpfung einzelner Werte pro Attribut. */ IF :o_filter != '' AND :v_attribute = :cur_row.attribute THEN o_filter = :o_filter || ' OR '; END IF; /* AND-Verknüpfung verschiedener Attribute. */ IF :v_attribute != cur_row.attribute THEN IF :v_attribute != '' THEN o_filter = :o_filter || ')'; END IF; IF :o_filter != '' THEN o_filter = :o_filter || ' AND '; END IF; o_filter = :o_filter || '('; END IF;

Listing 4.4: Verknüpfung von Berechtigungsausprägung und verschiedener Attribute

7. Das Statement für die Konkatenation des Filters ersetzen Sie durch das folgende Listing 4.5. Dabei merken Sie sich das aktuelle Attribut, um die obigen Fallunterscheidung kor-rekt durchlaufen zu können. Außerdem generieren Sie den Filterstring abhängig vom hin-terlegten Operator.

/* Merken des aktuellen Attributs. */ v_attribute = :cur_row.attribute; /* Fallunterscheidung anhand des Operators. */ IF :cur_row.operator = 'EQ' THEN o_filter = :o_filter || '"' || :cur_row.attribute || '" = ''' || :cur_row.low || ''''; ELSE IF :cur_row.operator = 'BT' THEN o_filter = :o_filter || '("' || :cur_row.attribute || '" >= ''' || :cur_row.low || ''' AND "' || :cur_row.attribute || '" <= ''' || :cur_row.high || ''')'; ELSE IF :cur_row.operator = 'CP' THEN o_filter = :o_filter || '"' || :cur_row.attribute || '" LIKE ''' || :cur_row.low || ''''; END IF;

Page 69: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

ZUSÄTZLICHE INFORMATIONEN UND BEISPIELE

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 69

Listing 4.5: Konkatenation des Berechtigungsfilters

8. Nach der FOR-Schleife müssen Sie noch dafür sorgen, dass die initiale Klammer ge-schlossen wird (vgl. Listing 4.6).

o_filter = :o_filter || ')';

Listing 4.6: Schließen der initialen Klammer

9. Abschließend erstellen Sie wieder ein analytisches Privileg mit der Endung »03«, hinter-legen die erzeugte Prozedur und weisen das Privileg einer neuen Rolle »YEPM_DATA_CE_03« zu. Zusammen mit den beiden anderen Rollen REPORT-ING_USER und YEPM_CP_SO weisen Sie diese dem neuen Benutzer USER_07_HANA zu.

Abbildung 4.5: Ausführung der Query YEPM_CP_SO_001 für den Anwender USER_07_HANA

10. Nun legen Sie die Anwender USER_10_HANA und USER_11_HANA und die Rolle »YEPM_DATA_AUTOMATED« an und führen die Prozedur YEPM_ASSIGN_OBJECTS_AUTOMATED aus.

11. Im Ergebnis sehen Sie, dass die Rolle YEPM_DATA_AUTOMATED den Anwendern USER_10_HANA und USER_11_HANA zugewiesen wurde (vgl. Abbildung 4.6). Weiter-hin wurden der Rolle YEPM_DATA_AUTOMATED die Rolle REPORTING_USER (vgl. Abbildung 4.7)sowie das analytische Privileg YEPM_PC zugewiesen (vgl. Abbildung 4.8).

Abbildung 4.6: Die Rolle YEPM_DATA_AUTOMATED wurde dem Anwender USER_10_HANA zugewiesen

Abbildung 4.7: Der Rolle YEPM_DATA_AUTOMATED wurde die Rolle REPORTING_USER zu-gewiesen

Page 70: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

ZUSÄTZLICHE INFORMATIONEN UND BEISPIELE

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 70

Abbildung 4.8: Der Rolle YEPM_DATA_AUTOMATED wurde das analytische Privileg YEPM_PC zugewiesen

Anmerkungen zur automatischen Privilegienvergabe Diese Implementierung der Prozedur YEPM_ASSIGN_OBJECTS_AUTOMATED funktioniert nur für Objekte, die über das Repository angelegt wurden. Analytische Privilegien oder Rollen, welche per DML-Befehl angelegt wurden und nur im Katalog existieren, können nicht mithilfe der in der Prozedur verwendeten Prozeduren zugewiesen werden. Für die Zuweisung reiner Katalogobjekte müssten Sie eine Prozedur erstellen, welche die entsprechenden DDL-Befehle wie GRANT <Rolle> TO <Grantee> verwendet. Außerdem muss der User, der die Proze-dur YEPM_ASSIGN_OBJECTS_AUTOMATED ausführt, sowohl das Privileg SELECT auf die Tabelle PRIVILEGE_ASSIGNMENT als auch das Privileg EXECUTE auf die innerhalb der Prozedur verwendeten Prozeduren besitzen. Die Ausführung der Prozedur bricht außerdem ab, wenn ein Objekt, egal ob Grantee oder zuzuweisendes Objekt, nicht existiert.

Erweitern der automatischen Privilegienvergabe Mithilfe einer entsprechenden Prozedur haben Sie die Möglichkeit, nicht nur Rollen oder analy-tische Privilegien zu vergeben, sondern alle Arten von Privilegien wie Systemprivilegien bzw. das Privileg EXECUTE auf eine Prozedur oder SELECT auf eine SAP HANA-View. Zusätzlich können Sie, wenn diese Informationen entsprechend in der zugrunde liegenden Tabelle spezi-fiziert werden, Privilegien über die entsprechenden Prozeduren REVOKE_* auch wieder ent-fernen.

Verwendung der SAP-BW-DSO-Tabellen Anstatt der SAP-HANA-nativen Tabelle PRIVILEGE_ASSIGNMENT können Sie, analog z. B. zur Generierung von analytischen Privilegien, für die Zuweisung von Objekt- oder analytischen Privilegien die Tabellen der im SAP BW existierenden DataStore-Objekte wiederverwenden.

Das folgende Listing 4.7 enthält noch einmal den gesamten Code der Prozedur YEPM_CE_03.

PROCEDURE "USER_HANA_DEV"."ESPRESSO_TUTORIALS::YEPM_CE_03" (OUT o_filter VARCHAR(5000)) LANGUAGE SQLSCRIPT SQL SECURITY DEFINER --DEFAULT SCHEMA <default_schema_name> READS SQL DATA AS BEGIN DECLARE CURSOR c_cursor FOR SELECT "ATTRIBUTE", "OPERATOR", "LOW", "HIGH" FROM "KANNGIESSER"."AUTHORIZATION_VALUES_ENHANCED" WHERE "USERNAME" = SESSION_USER ORDER BY "ATTRIBUTE"; DECLARE v_attribute NVARCHAR(255) = ''; o_filter = ''; FOR cur_row AS c_cursor

Page 71: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

ZUSÄTZLICHE INFORMATIONEN UND BEISPIELE

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 71

DO /* OR-Verknüpfung einzelner Werte pro Attribut. */ IF :o_filter != '' AND :v_attribute = :cur_row.attribute THEN o_filter = :o_filter || ' OR '; END IF; /* AND-Verknüpfung verschiedener Attribute. */ IF :v_attribute != :cur_row.attribute THEN IF :v_attribute != '' THEN o_filter = :o_filter || ')'; END IF; IF :o_filter != '' THEN o_filter = :o_filter || ' AND '; END IF; o_filter = :o_filter || '('; END IF; /* Merken des aktuellen Attributs. */ v_attribute = :cur_row.attribute; /* Fallunterscheidung anhand des Operators. */ IF :cur_row.operator = 'EQ' THEN o_filter = :o_filter || '"' || :cur_row.attribute || '" = ''' || :cur_row.low || ''''; ELSEIF :cur_row.operator = 'BT' THEN o_filter = :o_filter || '("' || :cur_row.attribute || '" >= ''' || :cur_row.low || ''' AND "' || :cur_row.attribute || '" <= ''' || :cur_row.high || ''')'; ELSEIF :cur_row.operator = 'CP' THEN o_filter = :o_filter || '"' || :cur_row.attribute || '" LIKE ''' || :cur_row.low || ''''; ELSEIF :cur_row.operator = 'LE' THEN o_filter = :o_filter || '"' || :cur_row.attribute || '" <= ''' || :cur_row.low || ''''; END IF; END FOR; o_filter = :o_filter || ')'; END

Listing 4.7: Code der Prozedur YEPM_CE_03

Page 72: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

ZUSÄTZLICHE INFORMATIONEN UND BEISPIELE

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 72

Beispiel: Eine Prozedur zum Generieren von analytischen Privilegien Im Folgenden lernen Sie anhand eines Beispiels, wie Sie eine einfache Datenbankprozedur anlegen, welche eine vorgegebene Liste von analytischen Privilegien erzeugt. Das Procedere ist dabei an die Generierung von Analyseberechtigungen im SAP BW angelehnt, allerdings se-hen Sie in diesem Beispiel nur die Generierung flacher analytischer Privilegien mit der Option Attributes. Die generierten Privilegien werden dabei außerdem als reine Katalogobjekte und nicht als Repository Objekte angelegt. Den kompletten Quellcode der in diesem Beispiel ange-legten Prozedur finden Sie am Ende dieses Beispiels.

1. Zu Beginn legen Sie in unserem Entwicklungsschema eine neue Tabelle »PRIVILE-GE_CREATION« an, welche an die Tabelle des Template DataStore Objekts 0TCA_DS01 angelehnt ist (vgl. Listing 4.8). Die Tabelle besteht aus den fünf Spalten »PRIVILEGE«, »ATTRIBUTE«, »OPERATOR«, »LOW« und »HIGH«. Mit Ausnahme der Spalte »OPERATOR« sind alle Spalten vom Typ NVARCHAR, Länge 255. Die Spalte »OPERATOR« ist vom Typ NVARCHAR, Länge 2.

CREATE COLUMN TABLE "USER_DEV_HANA"."PRIVILEGE_CREATION" ( "PRIVILEGE" NVARCHAR(255) DEFAULT '' NOT NULL, "ATTRIBUTE" NVARCHAR(255) DEFAULT '' NOT NULL, "OPERATOR" NVARCHAR(2) DEFAULT '' NOT NULL, "LOW" NVARCHAR(255) DEFAULT '' NOT NULL, "HIGH" NVARCHAR(255) DEFAULT '' NOT NULL, PRIMARY KEY INVERTED VALUE ( "PRIVILEGE", "ATTRIBUTE", "OPERATOR", "LOW"));

Listing 4.8: Anlegen der Tabelle PRIVILEGE_CREATION

2. Sie möchten zwei analytische Privilegien EPM_GEN1 und EPM_GEN2 generieren, beide für die View YEPM_CP_SO. Das Privileg EPM_GEN1 soll Berechtigungen für die Pro-duktkategorie »Servers« und die Länder United States (»US«) und Mexiko (»MX«) ent-halten (vgl. Listing 4.9). Das zweite Privileg EPM_GEN2 soll Berechtigungen für die Pro-duktkategorie »Notebooks« und das Land Kanada (»CA«) enthalten (vgl. Listing 4.10). Die entsprechenden Werte schreiben Sie in die Tabelle PRIVILEGE_CREATION. Um während der Generierung der Privilegien die View identifizieren zu können, für die Sie das Privileg generieren, schreiben Sie als Wert »0TCAIPROV« in das Feld »ATTRIBU-TE« und hinterlegen im Feld »LOW« das Schema und im Feld »HIGH« den Namen der View.

INSERT INTO "HANA_DEV"."PRIVILEGE_CREATION" VALUES ('EPM_GEN1', '0TCAIPROV', 'EQ', '_SYS_BIC', 'system-local.bw.bw2hana/YEPM_CP_SO'); INSERT INTO "HANA_DEV"."PRIVILEGE_CREATION" VALUES ('EPM_GEN1', '0EPM_PRCAT', 'EQ', 'Servers', ''); INSERT INTO "HANA_DEV"."PRIVILEGE_CREATION" VALUES ('EPM_GEN1', '0EPM_BP__0EPM_CNTRY', 'EQ', 'US', ''); INSERT INTO "HANA_DEV"."PRIVILEGE_CREATION" VALUES ('EPM_GEN1', '0EPM_BP__0EPM_CNTRY', 'EQ', 'MX', '');

Page 73: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

ZUSÄTZLICHE INFORMATIONEN UND BEISPIELE

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 73

Listing 4.9: Metadaten des Privilegs EPM_GEN1

INSERT INTO "HANA_DEV"."PRIVILEGE_CREATION" VALUES ('EPM_GEN2', '0TCAIPROV', 'EQ', '_SYS_BIC', 'system-local.bw.bw2hana/YEPM_CP_SO'); INSERT INTO "HANA_DEV"."PRIVILEGE_CREATION" VALUES ('EPM_GEN2', '0EPM_PRCAT', 'EQ', 'Notebooks', ''); INSERT INTO "HANA_DEV"."PRIVILEGE_CREATION" VALUES ('EPM_GEN2', '0EPM_BP__0EPM_CNTRY', 'EQ', 'CA', '');

Listing 4.10: Metadaten des Privilegs EPM_GEN2

3. Der Inhalt der Tabelle PRIVILEGE_CREATION sehen Sie in Abbildung 4.9.

Abbildung 4.9: Inhalt der Tabelle PRIVILEGE_CREATION

4. Jetzt legen Sie in Ihrem Entwicklungspaket eine neue Datenbankprozedur »YEPM_CREATE_PRIVILEGES_AUTOMATED« ohne Parameter an. Im Header müs-sen Sie zuerst den Befehl READS SQL DATA entfernen, da Sie keine Read-Only-Prozedur erstellen möchten. Im Body der Prozedur selektieren Sie in einer FOR-Schleife alle Daten aus der Tabelle PRIVILEGE_CREATION. Dazu deklarieren Sie einen Cursor, vgl. Listing 4.11.

DECLARE CURSOR c_cursor FOR SELECT "PRIVILEGE", "ATTRIBUTE", "OPERATOR", "LOW", "HIGH" FROM "HANA_DEV"."PRIVILEGE_CREATION" ORDER BY "PRIVILEGE", "ATTRIBUTE";

Listing 4.11: Deklaration des Cursors zum Auslesen der Tabelle PRIVILEGE_CREATION

5. Außerdem benötigen Sie für die Verarbeitung der Metadaten ein paar Hilfsvariablen, so-dass Sie die Privilegiendefinition korrekt erstellen können (vgl. Listing 4.12).

DECLARE v_privilege NVARCHAR(255) = ''; DECLARE v_attribute NVARCHAR(255) = ''; DECLARE v_definition_view NVARCHAR(5000) = ''; DECLARE v_definition_where NVARCHAR(5000) = ''; DECLARE v_count INTEGER = 0;

Listing 4.12: Deklaration von Hilfsvariablen

6. Nach der Deklaration der Variablen implementieren Sie die FOR-Schleife. Innerhalb der Schleife beginnen Sie mit dem Teil zum Erzeugen des analytischen Privilegs (vgl. Listing 4.13). Konnten Sie aufgrund vorheriger Schleifendurchläufe bereits eine Privilegiendefini-tion bestimmen, erzeugen Sie dieses mithilfe der Befehle CREATE STRUCTURED PRI-VILEGE bzw. ALTER STRUCTURED PRIVILEGE, falls das Privileg vorher bereits exis-tiert hat. Handelt es sich um den ersten Schleifendurchlauf oder ist die Privilegiendefiniti-on noch nicht vollständig, wird dieser Teil nicht prozessziert, da die Bedingungen

Page 74: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

ZUSÄTZLICHE INFORMATIONEN UND BEISPIELE

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 74

:v_privilege != :cur_row.privilege oder :v:definition_view != '' nicht zutreffen.

/* Neues Privileg verarbeiten */ IF :v_privilege != :cur_row.privilege THEN /* Vorheriges Privileg erzeugen */ IF :v_definition_view != '' THEN /* Where-Definition abschließen */ v_definition_where = :v_definition_where || ')'; SELECT COUNT(*) INTO v_count FROM "PUBLIC"."STRUCTURED_PRIVILEGES" WHERE "STRUCTURED_PRIVILEGE_NAME" = :v_privilege; IF :v_count = 0 THEN EXEC 'CREATE STRUCTURED PRIVILEGE "' || :v_privilege || '" FOR SELECT ON ' || :v_definition_view || ' WHERE ' || :v_definition_where; ELSE EXEC 'ALTER STRUCTURED PRIVILEGE "' || :v_privilege || '" FOR SELECT ON ' || :v_definition_view || ' WHERE ' || :v_definition_where; END IF; /* Variablen initialisieren */ v_attribute = ''; v_definition_view = ''; v_definition_where = ''; END IF; END IF;

Listing 4.13: Erzeugen eines Privilegs innerhalb der FOR-Schleife

7. Danach merken Sie sich das aktuell prozessierte Privileg (vgl. Listing 4.14).

/* Aktuelles Privileg merken */ v_privilege = :cur_row.privilege;

Listing 4.14: Aktuell prozessiertes Privileg

8. Nachfolgend entscheiden Sie anhand des aktuellen Attributs, ob Sie die Viewdefinition (der Wert der Spalte ATTRIBUTE entspricht dann »0TCAIPROV«) oder die Where-Bedingung des Privilegs erstellen (vgl. Listing 4.15). Die Viewdefinition besteht aus dem Schema und dem Namen der View, welche Sie in den Spalten LOW und HIGH abgelegt haben. Die Bestimmung der Where-Bedingung sehen Sie in Listing 4.16.

/* Viewdefinition bestimmen */ IF :cur_row.attribute = '0TCAIPROV' THEN v_definition_view = '"' || :cur_row.low || '"."' || :cur_row.high || '"'; ELSE /* Where-Definition bestimmen */ <...> END IF;

Listing 4.15: Unterscheidung zwischen Viewdefinition und Where-Bedingung

9. Die Bestimmung der Where-Bedingung erfolgt anhand einer Erweiterung des Beispiels zur Generierung des Filters eines analytischen Privilegs mit der Option Dynamic, wie Sie

Page 75: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

ZUSÄTZLICHE INFORMATIONEN UND BEISPIELE

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 75

es bereits in der Übung 2-14 und Listing 2.5 kennengelernt haben. Listing 4.16 zeigt dies und enthält die Unterscheidung für die verschiedenen Operatoren, hier am Beispiel des Operators EQ.

/* OR-Verknüpfung einzelner Werte pro Attribut */ IF :v_definition_where != '' AND :v_attribute = :cur_row.attribute THEN v_definition_where = :v_definition_where || ' OR '; END IF; /* AND-Verknüpfung verschiedener Attribute */ IF :v_attribute != :cur_row.attribute THEN IF :v_attribute != '' THEN v_definition_where = :v_definition_where || ')'; END IF; IF :v_definition_where != '' THEN v_definition_where = :v_definition_where || ' AND '; END IF; v_definition_where = :v_definition_where || '('; END IF; /* Aktuelles Attribut merken */ v_attribute = :cur_row.attribute; /* Fallunterscheidung anhand des Operators */ IF :cur_row.operator = 'EQ' THEN v_definition_where = :v_definition_where || '"' || :cur_row.attribute || '" = ''' || :cur_row.low || ''''; END IF;

Listing 4.16: Konkatenation der Berechtigungsausprägungen

10. Nach der FOR-Schleife müssen Sie dafür sorgen, dass auch das letzte Privileg oder, falls Sie insgesamt nur ein Privileg generieren wollen, dieses eine Privileg angelegt wird. Dafür fügen Sie abschließend hinter der FOR-Schleife nochmal den Code zum Erzeu-gen eines Privilegs ein (vgl. Listing 4.17).

/* Letztes Privileg erzeugen */ IF :v_definition_view != '' THEN /* Where-Definition abschließen */ v_definition_where = :v_definition_where || ')'; SELECT COUNT(*) INTO v_count FROM "PUBLIC"."STRUCTURED_PRIVILEGES" WHERE "STRUCTURED_PRIVILEGE_NAME" = :v_privilege; IF :v_count = 0 THEN EXEC 'CREATE STRUCTURED PRIVILEGE "' || :v_privilege || '" FOR SELECT ON ' || :v_definition_view || ' WHERE ' || :v_definition_where; ELSE

Page 76: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

ZUSÄTZLICHE INFORMATIONEN UND BEISPIELE

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 76

EXEC 'ALTER STRUCTURED PRIVILEGE "' || :v_privilege || '" FOR SELECT ON ' || :v_definition_view || ' WHERE ' || :v_definition_where; END IF; END IF;

Listing 4.17: Abschließendes Erzeugen des letzten oder einzigen Privilegs

11. Sie aktivieren die Prozedur YEPM_CREATE_PRIVILEGES_AUTOMAED und führen diese aus. Da Sie mit dieser Prozedur reine Katalogobjekte erzeugen, finden Sie die er-zeugten Privilegien nicht in Ihrem Entwicklungspaket. Mit dem in Listing 4.18 gezeigten SQL Statement können Sie die Definition des Laufzeitobjekts der erzeugten Privilegien überprüfen und sicherstellen, dass alles korrekt generiert wurde.

SELECT "STRUCTURED_PRIVILEGE_NAME", "RESTRICTION_TYPE", "OPERAND" FROM "PUBLIC"."STRUCTURED_PRIVILEGES" WHERE "STRUCTURED_PRIVILEGE_NAME" LIKE 'EPM_GEN%' ORDER BY "STRUCTURED_PRIVILEGE_NAME"

Listing 4.18: Abfrage des Laufzeitobjekts eines analytischen Privilegs

12. Im Ergebnis (vgl. Abbildung 4.10) erhalten Sie verschiedene Informationen über das Laufzeitobjekt eines Privilegs. Die Spalte STRUCTURED_PRIVILEGE_NAME ent-hält den Namen des Privilegs, die Spalte RESTRICTION_TYPE verschiedene Attri-bute des Privilegs. Die Spalte OPERAND zeigt die jeweiligen Attributausprägungen. Das Attribut OBJECTS enthält die SAP-HANA-View, für welche das Privileg gültig ist. Falls Sie ein Privileg für mehrere Views verwenden, sehen wir hier entsprechend viele Einträge für das Attribut »OBJECTS«. Wir stellen fest, dass die beiden Privilegien EPM_GEN1 und EPM_GEN2 jeweils für die View YEPM_CP_SO gültig sind. Das Attribut CONDITION enthält entweder das SQL Statement (Option Attributes oder SQL Edi-tor) oder den Namen der im Privileg hinterlegten Prozedur. Sie sehen, dass der Filter in den beiden Privilegien korrekt hinterlegt wurde. Das Attribut ACTIONS enthält die er-laubten Zugriffsaktionen. In diesem Fall darf jeweils immer lesend auf die View zugegrif-fen werden. Zusätzlich enthält das Laufzeitobjekt noch eine Information über das Defaultschema (Attribut DEFAULTSCHEMA, ).

Abbildung 4.10: Definition des Laufzeitobjekts eines analytischen Privilegs

13. Sie erzeugen nun einen neuen Benutzer USER_14_HANA und weisen diesem die Rol-len REPORTING_USER und YEPM_CP_SO zu. Außerdem weisen Sie dem User direkt die beiden analytischen Privilegien EPM_GEN1 und EPM_GEN2 zu. Die Query liefert das gewünschte Ergebnis (vgl. Abbildung 4.11).

Page 77: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

ZUSÄTZLICHE INFORMATIONEN UND BEISPIELE

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 77

Abbildung 4.11: Ergebnis der Abfrage YEPM_CP_SO_001 für den Anwender USER_14_HANA

Das folgende Listing Listing 4.19 enthält noch einmal den gesamten Quellcode der Prozedur YEPM_CREATE_PRIVILEGES_AUTOMATED.

PROCEDURE "USER_DEV_HANA"."ESPRESSO_TUTORIALS::YEPM_CREATE_PRIVILEGES_AUTOMATED" ( ) LANGUAGE SQLSCRIPT SQL SECURITY INVOKER --DEFAULT SCHEMA <default_schema_name> -- READS SQL DATA AS AS BEGIN DECLARE CURSOR c_cursor FOR SELECT "PRIVILEGE", "ATTRIBUTE", "OPERATOR", "LOW", "HIGH" FROM "HANA_DEV"."PRIVILEGE_CREATION" ORDER BY "PRIVILEGE", "ATTRIBUTE"; DECLARE v_privilege NVARCHAR(255) = ''; DECLARE v_attribute NVARCHAR(255) = ''; DECLARE v_definition_view NVARCHAR(5000) = ''; DECLARE v_definition_where NVARCHAR(5000) = ''; DECLARE v_count INTEGER = 0; FOR cur_row AS c_cursor DO /* Neues Privileg verarbeiten */ IF :v_privilege != :cur_row.privilege THEN /* Vorheriges Privileg erzeugen */ IF :v_definition_view != '' THEN /* Where-Definition abschließen */ v_definition_where = :v_definition_where || ')'; SELECT COUNT(*) INTO v_count FROM "PUBLIC"."STRUCTURED_PRIVILEGES" WHERE "STRUCTURED_PRIVILEGE_NAME" = :v_privilege; IF :v_count = 0 THEN EXEC 'CREATE STRUCTURED PRIVILEGE "' || :v_privilege || '" FOR SELECT ON ' || :v_definition_view || ' WHERE ' || :v_definition_where; ELSE EXEC 'ALTER STRUCTURED PRIVILEGE "' || :v_privilege || '" FOR SELECT ON ' || :v_definition_view || ' WHERE ' || :v_definition_where; END IF; /* Variablen initialisieren */ v_attribute = ''; v_definition_view = ''; v_definition_where = ''; END IF; END IF;

Page 78: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

ZUSÄTZLICHE INFORMATIONEN UND BEISPIELE

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 78

/* Aktuelles Privileg merken */ v_privilege = :cur_row.privilege; /* Viewdefinition bestimmen */ IF :cur_row.attribute = '0TCAIPROV' THEN v_definition_view = '"' || :cur_row.low || '"."' || :cur_row.high || '"'; ELSE /* Where-Definition bestimmen */ /* OR-Verknüpfung einzelner Werte pro Attribut */ IF :v_definition_where != '' AND :v_attribute = :cur_row.attribute THEN v_definition_where = :v_definition_where || ' OR '; END IF; /* AND-Verknüpfung verschiedener Attribute */ IF :v_attribute != :cur_row.attribute THEN IF :v_attribute != '' THEN v_definition_where = :v_definition_where || ')'; END IF; IF :v_definition_where != '' THEN v_definition_where = :v_definition_where || ' AND '; END IF; v_definition_where = :v_definition_where || '('; END IF; /* Aktuelles Attribut merken */ v_attribute = :cur_row.attribute; /* Fallunterscheidung anhand des Operators */ IF :cur_row.operator = 'EQ' THEN v_definition_where = :v_definition_where || '"' || :cur_row.attribute || '" = ''' || :cur_row.low || ''''; END IF; END IF; END FOR; /* Letztes Privileg erzeugen */ IF :v_definition_view != '' THEN /* Where-Definition abschließen */ v_definition_where = :v_definition_where || ')'; SELECT COUNT(*) INTO v_count FROM "PUBLIC"."STRUCTURED_PRIVILEGES" WHERE "STRUCTURED_PRIVILEGE_NAME" = :v_privilege; IF :v_count = 0 THEN EXEC 'CREATE STRUCTURED PRIVILEGE "' || :v_privilege || '" FOR SELECT ON ' || :v_definition_view || ' WHERE ' || :v_definition_where; ELSE

Page 79: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

ZUSÄTZLICHE INFORMATIONEN UND BEISPIELE

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 79

EXEC 'ALTER STRUCTURED PRIVILEGE "' || :v_privilege || '" FOR SELECT ON ' || :v_definition_view || ' WHERE ' || :v_definition_where; END IF; END IF; END

Listing 4.19: Code der Prozedur YEPM_CREATE_PRIVILEGES_AUTOMATED

Beispiel: Dynamische Privilegienvergabe via SQL-Prozedur Im Folgenden sehen Sie ein Beispiel mit einer einfachen Datenbankprozedur, welche eine vor-gegebene Liste von Privilegien einer Liste von Anwendern zuweist. Dabei sehen Sie auch, wie Sie die Prozedur so aufbauen können, dass Sie Privilegien unterschiedlichen Typs oder auch Rollen angeben können, welche an Anwender vergeben werden sollen.

1. Zuerst erzeugen Sie in Ihrem Schema eine neue Tabelle »PRIVILEGE_ASSIGNMENT«. Die Tabelle besteht aus den vier Spalten »GRANTEE«, »OBJECT_TYPE« und »OB-JECT_NAME«, jeweils vom Typ NVCHAR der Länge 255 (vgl. Listing 4.20). Einträge in der Spalte GRANTEE können dabei Rollen oder Anwender sein, die restlichen zwei Spal-ten werden für die Spezifikation des Objekts oder Privilegs benötigt, welches wir der Rol-le oder dem Anwender zuweisen möchten. Eine zusätzliche Spalte zur Unterscheidung des Grantee-Typs ist nicht notwendig, da dies für das Erzeugen der SQL Statements ab-hängig vom Privilegientyp nicht von Belang ist.

CREATE COLUMN TABLE "USER_DEV_HANA"."PRIVILEGE_ASSIGNMENT" ( "GRANTEE" NVARCHAR(255) DEFAULT '' NOT NULL, "OBJECT_TYPE" NVARCHAR(255) DEFAULT '' NOT NULL, "OBJECT_NAME" NVARCHAR(255) DEFAULT '' NOT NULL, PRIMARY KEY INVERTED VALUE ( "GRANTEE", "OBJECT_TYPE", "OBJECT_NAME",));

Listing 4.20: Anlegen der Tabelle PRIVILEGE_ASSIGMENT

Die Berechtigungen, welche für den Zugriff auf die View YEPM_CP_SO benötigt werden, sollen an zwei neue Anwender USER_10_HANA und USER_11_HANA vergeben werden. Dabei wollen Sie das analytische Privileg YEPM_PC aus der Übung 2-8 wiederverwenden. Die entsprechenden Einträge schreiben Sie in die Tabelle PRIVILEGE

2. _ASSIGMENT. Dabei gehen Sie davon aus, dass Sie die Rolle REPORTING_USER und das analytische Privileg erst einer neuen Rolle »YEPM_DATA_AUTOMATED« zuweisen (vgl. Listing 4.21), welche Sie dann an die neuen Benutzer verteilen (vgl. Listing 4.22, exemplarisch für USER_10_HANA).

INSERT INTO "USER_DEV_HANA"."PRIVILEGE_ASSIGNMENT" VALUES ('ESPRESSO_TUTORIALS::YEPM_DATA_AUTOMATED', 'SQLANALYTICPRIVILEGE', 'ESPRESSO_TUTORIALS/YEPM_PC'); INSERT INTO "USER_DEV_HANA"."PRIVILEGE_ASSIGNMENT" VALUES ('ESPRESSO_TUTORIALS::YEPM_DATA_AUTOMATED', 'ROLE', 'ESPRESSO_TUTORIALS::REPORTING_USER');

Page 80: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

ZUSÄTZLICHE INFORMATIONEN UND BEISPIELE

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 80

Listing 4.21: Zuweisen des analytischen Privilegs und der Reportingrolle zur Rolle YEPM_DATA_AUTOMATED

INSERT INTO "USER_DEV_HANA"."PRIVILEGE_ASSIGNMENT" VALUES ('USER_10_HANA', 'ROLE', ' ESPRESSO_TUTORIALS::YEPM_DATA_AUTOMATED');

Listing 4.22: Zuweisen der Rolle YEPM_DATA_AUTOMATED zum Benutzer USER_10_HANA

3. Die folgende Abbildung 4.12 zeigt den Inhalt der Tabelle PRIVILEGE_ASSIGNMENT:

Abbildung 4.12: Inhalt der Tabelle PRIVILEGE_ASSIGNMENT

4. Nun legen Sie in Ihrem Entwicklungspaket und Schema eine neue Datenbankprozedur »YEPM_ASSIGN_OBJECTS_AUTOMATED« ohne Parameter an. Genau wie im Beispiel für das automatische Erzeugen von analytischen Privilegien müssen Sie auch für diese Prozedur im Header zuerst den Befehl READS SQL DATA entfernen. Im Body selektieren Sie in einer FOR-Schleife alle Daten aus der Tabelle PRIVILEGE_ASSIGNMENT. Dazu deklarieren Sie einen Cursor, vgl. Listing 4.23.

DECLARE CURSOR c_cursor FOR SELECT "GRANTEE", "OBJECT_TYPE", "OBJECT_SCHEMA", "OBJECT_NAME" FROM "USER_DEV_HANA"."PRIVILEGE_ASSIGNMENT";

Listing 4.23: Deklaration des Cursors zum Auslesen der Tabelle PRIVILEGE_ASSIGNMENT

5. Innerhalb der FOR-Schleife über den Inhalt der Tabelle PRIVILEGE_ASSIGNMENT ru-fen Sie abhängig vom angegebenen Objekttyp die entsprechende Prozedur für das Zu-weisen des Objekts zur angegebenen Rolle oder User auf (vgl. Listing 4.24).

FOR cur_row AS c_cursor DO IF :cur_row.object_type = 'ROLE' THEN CALL grant_activated_role(:cur_row.object_name, :cur_row.grantee); ELSEIF :cur_row.object_type = 'SQLANALYTICPRIVILEGE' OR :cur_row.object_type = 'ANALYTICALPRIVILEGE' THEN CALL grant_activated_analytical_privilege('"' || :cur_row.object_name || '"', :cur_row.grantee); END IF; END FOR;

Listing 4.24: Zuweisung der Rollen und Privilegien abhängig vom Objekttyp

Im folgenden Listing 4.25 finden Sie den gesamten Quellcode der Prozedur YEPM_ASSIGN_OBJECTS_AUTOMATED:

PROCEDURE "SAPKIW"."ESPRESSO_TUTORIALS::YEPM_ASSIGN_OBJECTS_AUTOMATED" ( ) LANGUAGE SQLSCRIPT SQL SECURITY INVOKER AS

Page 81: Berechtigungen in SAP BW, HANA und BW/4HANA · PDF fileI. NHALTSVERZEICHNIS Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 2 . Inhaltsverzeichnis . Übungen

ZUSÄTZLICHE INFORMATIONEN UND BEISPIELE

Bonusmaterial zum Buch »Berechtigungen in SAP® BW, HANA und BW/4HANA« 81

--DEFAULT SCHEMA <default_schema_name> BEGIN DECLARE CURSOR c_cursor FOR SELECT "GRANTEE", "OBJECT_TYPE", "OBJECT_SCHEMA", "OBJECT_NAME" FROM "KANNGIESSER"."PRIVILEGE_ASSIGNMENT"; FOR cur_row AS c_cursor DO IF :cur_row.object_type = 'ROLE' THEN call grant_activated_role('''' || :cur_row.object_name || '''', '''' || :cur_row.grantee || ''''); ELSEIF :cur_row.object_type = 'SQLANALYTICPRIVILEGE' OR :cur_row.object_type = 'ANALYTICALPRIVILEGE' THEN call grant_activated_analytical_privilege('"' || :cur_row.object_name || '"', '''' || :cur_row.grantee || ''''); END IF; END FOR; END

Listing 4.25: Code der Prozedur YEPM_ASSIGN_OBJECTS_AUTOMATED