Der Generic Table Browser (GTB) – Tabellenberechtigungen zeilen- und spaltenweise einschränken

| Autor/in:hokomedia

Möchte man Daten auf Tabellenebene analysieren, braucht man für den Zugriff entsprechende Berechtigungen im zu prüfenden SAP®-System. Diese werden mit den Berechtigungsobjekten S_TABU_DIS und S_TABU_NAM realisiert. Mit diesen beiden Berechtigungsobjekten wird gesteuert, auf welche Tabellen ich zugreifen und ob ich die Daten der Tabelle ändern oder nur lesen kann. Diese Berechtigungsobjekte wirken wie „An/Aus-Schalter“. Entweder man hat keinen Zugriff auf die Tabelle oder man kann die Tabelle mit allen Feldern und Datensätzen sehen. Das führte häufig zu Problemen. Zwei Beispiele:

  1. Die Tabelle USR02 enthält u.a. auch die gehashten Passwörter, also hoch sensible Informationen. Daher sollte der Lesezugriff nur an einen sehr kleinen Benutzerkreis vergeben werden. Diese Tabelle ist aber für datenanalytische Untersuchungen sehr interessant, da sie für jede Benutzerkennung u.a. den Benutzertyp, die Benutzergruppe, das letzte Logindatum und Sperrkennzeichen enthält.
  2. Über die Tabelle BKPF können die Belegköpfe der Finanzbuchhaltung gelesen werden. Teilen sich zwei Firmen ein SAP®-System, die organisatorische Trennung erfolgt über unterschiedliche Buchungskreise, kann ein Mitarbeiter der Lesezugriff auf die Tabelle BKPF hat, die Beleginformationen seines Buchungskreises, aber auch die Beleginformationen der anderen Firma lesen.

Es ist also wünschenswert, den Zugriff auch innerhalb einer Tabelle einzuschränken.

Die Lösung hierfür: Der Generic Table Browser (GTB) – mit ihm ist es möglich, Zugriffsrestriktionen für Spalten und Feldwerte zu definieren. In der SAP-Note 2140958 „Restricting authorization to column and field values” ist die Vorgehensweise beschrieben.

Folgende Schritte sind notwendig, um Restriktionen für Tabellenzugriffe einzurichten und zuzuweisen.

  1. Über die Transaktion S416N_ROLE werden die Restriktionen in einer GTB-Rolle definiert.
  2. In einer weiteren Rolle wird das Berechtigungsobjekt S_GTB_CUS zugeordnet und die Verbindung zu GTB-Rolle hergestellt.
  3. Diese Rolle wird einem Benutzer zugeordnet.

Das nachfolgende Beispiel soll die Schritte verdeutlichen.

Es soll für die Tabelle USR02 der Datenzugriff auf die Felder BCODE, OCOD1 – OCOD5, PASSCODE und PWDSALTEDHASH unterbunden werden (Einschränkung auf Feldebene). Außerdem sollen in der Tabelle USR02 nur die Dialogbenutzer (Einschränkung auf Datensatzebene) angezeigt werden.

Außerdem soll für die Tabellen ACDOCA, BKPF, BSEG und VBKPF nur der Zugriff auf die Daten des Buchungskreises 1010 gestattet sein (Einschränkung auf Datensatzebene).

 

Schritt 1: Über die Transaktion S416N_ROLE werden die oben aufgeführten Restriktionen in zwei GTB-Rollen ZIBS_USR02_NO_PW und ZIBS_BUKRS_1010 definiert.

Aus den beiden folgenden Abbildungen wird ersichtlich, wie einfach die Definition der Rollen ist. Im oberen Block „Definition von Spalten OHNE Berechtigung“ werden die Tabellenfelder definiert, die nicht angezeigt werden dürfen (Einschränkung auf Feldebene). Im unteren Block „Definition zulässiger Werte“ werden die Datensätze definiert, die angezeigt werden dürfen (Einschränkung auf Datensatzebene).

Abbildung 7: Definition der Rolle ZIBS_USR02_NO_PW über die Transaktion S416N_ROLE

Abbildung 8: Definition der Rolle ZIBS_BUKRS_1010 über die Transaktion S416N_ROLE

Schritt 2: In der Berechtigungsrolle, die dann den Benutzern zugeordnet wird, wird das Berechtigungsobjekt S_GTB_CUS aufgenommen. In unserem Beispiel wurde es in die Rolle ZIBS_TAB_RESTRICTED aufgenommen. Das Berechtigungsobjekt S_GTB_CUS besteht aus den Feldern. Im Feld GTB_NAME werden die mit der Transaktion S416N_Role definierten Rollen aufgeführt.

Abbildung 9: Einfügen des Berechtigungsobjektes S_GTB_CUS in die Berechtigungsrolle für Benutzer ZIBS_TAB_RESTRICTED

Wichtig: Der Zugriff auf die Tabelle generell muss weiterhin über die Berechtigungsobjekte S_TABU_DIS oder S_TABU_NAM berechtigt werden

Schritt 3: Nun wird die Rolle ZIBS_TAB_RESTRICTED Benutzern zugeordnet, deren Zugriffsmöglichkeiten auf bestimmte Felder oder Datensätzen eingeschränkt werden soll.

Ein Benutzer, dem diese Rolle zugeordnet wurde, hat nun eine eingeschränkte Sicht auf die Tabelle USR02. Diese Einschränkung wird schon in der Definition der Selektionskriterien sichtbar. Die Felder mit den gehashten Passwörtern werden nicht angezeigt.

Abbildung 10: Tabelle USR02 – Einschränkungen in den Selektionskriterien

In der Datenansicht werden die Felder mit den gehashten Passwörtern ebenfalls nicht angezeigt. Ferner werden nur die Dialogbenutzer angezeigt.

Abbildung 11: Tabelle USR02 – Einschränkungen in der Datenansicht