Das SAP-System basiert auf Tabellen. Die meisten Transaktionen, die User im Arbeitsalltag nutzen, greifen auf Daten aus Tabellen zurück. Doch während Tabellenberechtigungen einerseits notwendig sind, sind sie zugleich ein Sicherheitsrisiko. Deshalb schauen wir uns jetzt genauer an, wie Sie Tabellenzugriffe optimal berechtigen können.
Ein User will Gehälter anweisen, ein anderer ruft eine Query auf und ein Dritter bestellt Material bei einem Lieferanten. Jeder von Ihnen greift dabei auf Tabellen im SAP-System zu, weil sowohl Adress- und Bankdaten der Mitarbeiter als auch die Daten, die die Query anzeigt, und die Lieferantenstammdaten in Tabellen hinterlegt sind. Fast alle User brauchen also die Berechtigung, auf Tabellen zuzugreifen.
Doch gleichzeitig sollen diese teils sensiblen Daten nur den Usern zugänglich sein, die sie tatsächlich für Ihre Arbeit benötigen. Das ist nicht nur eine Datenschutzfrage. Wenn die falschen User zum Beispiel Zugriff auf Bank- und Adressdaten oder Daten zum Zahlungsverkehr bekommen, besteht auch ein reales wirtschaftliches Risiko für Ihr Unternehmen.
Deshalb müssen Sie als Berechtiger auch hier wieder den Spagat schaffen: Einerseits sollen die User möglichst reibungslos arbeiten können. Andererseits müssen Sie die Daten schützen und dafür sorgen, dass nur die Berechtigungen verteilt werden, die notwendig sind.
Wie werden Tabellen in SAP berechtigt?
Es gibt unterschiedliche Arten, auf Tabellen zuzugreifen. Die meisten User merken gar nicht, dass sie das tun, weil sie mit Transaktionen arbeiten, die nur im Hintergrund Daten aus Tabellen ziehen. Es gibt allerdings auch die Möglichkeit, Tabellen direkt aufzurufen. Die Transaktionen dafür gelten in den meisten Unternehmen als kritisch. Doch wirklich riskant wird die Vergabe erst, wenn die dahinter liegenden Berechtigungsobjekte nicht sauber ausgeprägt sind.
Direkter Tabellen-Zugriff über Transaktionen
Über die folgenden Transaktionen können Sie Tabellen direkt aufrufen:
- SE16 Data Browser
- SE17 General Table Display
- SM30 Standard Table Maintenance
- SM34 Viewcluster Maintenance
- SM31 Enhanced Table Maintenance
Damit Ihnen das System tatsächlich Daten aus den Tabellen anzeigt, die Sie aufrufen wollen, brauchen Sie zusätzlich Berechtigungen über die entsprechenden Berechtigungsobjekte.
Zugriff über Berechtigungsobjekte
S_TABU_CLI
Das Objekt S_TABU_CLI hat nur ein Feld: CLIIDMAINT. Ist das mit dem Wert „X“ ausgeprägt, hat der User die Berechtigung, Tabellen mandantenübergreifend zu pflegen. S_TABU_CLI greift im Zusammenspiel mit S_TABU_DIS oder S_TABU_NAM, die jeweils regeln, welche Tabellen der User konkret bearbeiten darf. Diese Berechtigung kann zum Beispiel für die Basis oder technische User hilfreich sein. In den Rollen für normale Dialoguser sollten Sie S_TABU_CLI deaktivieren.
S_TABU_DIS
S_TABU_DIS erlaubt oder verbietet den Zugriff auf Tabellen über Tabellenberechtigungsgruppen. Bereits im Standard der SAP sind viele Tabellen in solchen Gruppen zusammengefasst. Um nun nicht jede Tabelle einzeln berechtigen zu müssen, können Sie über S_TABU_DIS den Zugriff auf alle Tabellen einer Gruppe zulassen. Dabei haben Sie zwei Möglichkeiten: Sie können reine Display-Rechte vergeben oder die Bearbeitung der Tabellen erlauben (Feld: ACTVT).
Gut zu wissen: Welche Tabellen in den einzelnen Tabellengruppen stecken, können Sie in der Tabelle TDDAT einsehen.
Auch wenn der Einsatz von S_TABU_DIS zunächst komfortabel erscheint, ist er oft problematisch. Standard-Tabellengruppen enthalten mehrere 100 oder sogar mehrere 1000 Tabellen. Niemand kann wirklich sicher überblicken, ob die User all diese Tabellen brauchen bzw. welche Risiken bestehen, wenn Sie die Bearbeitung all dieser Tabellen erlauben.
Wie Sie S_TABU_DIS dennoch sinnvoll und sicher einsetzen können, erklären wir weiter unten.
S_TABU_NAM
S_TABU_NAM erlaubt den Zugriff direkt auf Ebene einzelner Tabellen. Über dieses Objekt können Sie ganz genau aussteuern, welche Tabellen die User sehen und welche sie bearbeiten dürfen. Das Objekt bietet dafür zwei Felder: ACTVT (02 für bearbeiten und 03 für anzeigen) und TABLE (Hier tragen Sie die Namen der Tabellen ein).
S_TABU_LIN
Wenn Ihr Unternehmen mit Organisationskriterien arbeitet, ist unter Umständen auch das Berechtigungsobjekt S_TABU_LIN interessant für Sie. Damit geben Sie nicht ganze Tabellen, sondern nur einzelne Zeilen für den User frei.
Gut zu wissen: S_TABU_LIN greift nur, wenn die Organisationskriterien, auf die Sie berechtigen wollen, in dem Mandanten aktiviert sind, in dem Sie arbeiten.
Das Objekt hat 10 Felder:
- ORGKRIT
- ACTVT
- ORG_FIELD1
- ORG_FIELD2
- ORG_FIELD3
- ORG_FIELD4
- ORG_FIELD5
- ORG_FIELD6
- ORG_FIELD7
- ORG_FIELD8
Die ORG_FIELD-Felder enthalten die Schlüsselfelder aus den Tabellenzeilen, die die User sehen dürfen. Im Feld ORGKRIT tragen Sie das Organisationskriterium ein, über das Sie berechtigen wollen. Und ACTVT erlaubt wieder die Werte 02 für bearbeiten und 03 für anzeigen.
Genauere Informationen zum Einsatz von S_TABU_LIN finden Sie direkt bei der SAP.
Tabellenberechtigungen absichern
Sie wissen jetzt also, welche Transaktionen und Berechtigungsobjekte Sie überprüfen müssen, um herauszufinden, wie Tabellenzugriffe in Ihrem System berechtigt sind. Doch wie können Sie die Berechtigungen nun optimieren?
Tabellen im Rollenkonzept berücksichtigen
Bevor Sie über die Ausprägung der Objekte nachdenken, brauchen Sie ein vernünftiges Konzept. Definieren Sie im Berechtigungs- und Rollenkonzept, welche Rollen mit der Berechtigung zum Bearbeiten von Tabellen ausgestattet werden und welche nur Sichtberechtigungen enthalten sollen. Spezifizieren Sie, welche Tabellen in welcher Rolle benötigt werden. Und unterscheiden Sie ggf. auch zwischen normalen Anwendern und Keyusern.
Ein Beispiel: Mitarbeiter im Personalwesen brauchen Zugriff auf diverse PA-Tabellen. Alle HR-Rollen bekommen Display-Berechtigungen für diese Tabellen. Aber für die Berechtigung zum Bearbeiten differenzieren Sie. So sehen Sie zum Beispiel nur für die Mitarbeiter der Lohnbuchhaltung Änderungsrechte für die Tabellen PA0003 (Abrechnungsstatus) und PA0008 (Basisbezüge) vor.
Tipp: Wenn Sie nicht sicher wissen, welche Tabellen benötigt werden, tracen Sie relevante User für einen bestimmten Zeitraum (STUSERTRACE). Sie können den Trace auch auf die Objekte S_TABU_DIS und S_TABU_NAM eingrenzen. Auf diese Weise sehen Sie genau, auf welche Tabellen der User im Arbeitsalltag zugreift und können die Rollen entsprechend ausstatten.
Tabellenberechtigungen einschränken
Wie bereits erwähnt, werden Tabellenzugriffe vor allem über die Objekte S_TABU_DIS und S_TABU_NAM berechtigt. Dabei ist die Berechtigung über S_TABU_NAM in der Regel vorzuziehen. In jedem Fall sollten Sie zurückhalten mit der Vergabe von Änderungsberechtigungen sein und diese nur in Rollen einbauen, in denen das tatsächlich gebraucht wird.
Gut zu wissen: Wenn Sie trotzdem mit Tabellengruppen arbeiten wollen, legen Sie kundeneigene Gruppen an und fügen Sie diesen nur die Tabellen hinzu, die wirklich gebraucht werden. Anschließend berechtigen Sie statt der Standard-Tabellengruppen Ihre eigenen.
Sie können S_TABU_NAM und S_TABU_DIS auch kombinieren. Um unser Beispiel von oben aufzugreifen: Sie könnten allen Mitarbeitern in der Personalabteilung Display-Berechtigungen für die Tabellengruppe „PA“ über das Objekt S_TABU_DIS zuweisen. Damit können die User mehr als 2000 Tabellen einsehen, die in dieser Gruppe zusammengefasst sind. Weil Sie keine Chance haben, bei dieser Menge einzuschätzen, wie groß das Risiko wäre, wenn die User auch Änderungsrechte für diese Tabellengruppe hätten, müssen Sie dafür einen anderen Weg finden. Sie könnten nun per Trace identifizieren, welche Tabellen konkret benötigt werden und diese über das Objekt S_TABU_NAM zur Bearbeitung (ACTVT: 02) freigeben.
Tabellenzugriff in Transaktion wandeln
Eine besonders sichere Methode, die Tabellenzugriffe zu regeln, sind kundeneigene Transaktionscodes. Über die Transaktion SE93 können Sie für einzelnen Tabellen, aber auch etwa für Queries eigene Transaktionscodes anlegen. User können dann diese Transaktionen nutzen, um die Tabellen aufzurufen.
Im Hintergrund müssen auch dafür die Tabellen-Berechtigungsobjekte entsprechend ausgeprägt sein. Aber Sie müssen potenziell kritische Transaktionen wie SE16 nicht vergeben.