Das klingt auf den ersten Blick schlüssig, ist es aber leider nicht.
Nehmen wir folgende Situation:
Ein SAP User hat SAP_ALL (um die von euch vorgeschlagenen Berechtigungsobjekte beschränkt). nun schreibt er ein kleines ABAP Programm, welches direkt die HR-Tabellen ausliest. Dieses kann er dann in jedem SAP-System starten, in dass er transportieren kann und in dem er z.B. über die SE38 Programme starten kann (oder er erfindet eine Transaktion, deren Zweck der Start des Proggis ist).
So wird die Berechtigungsprüfung ausgehebelt. Ich habe auch eine SAP-Meldung zu diesem Thema aufgemacht und folgende Antwort bekommen:
Frage an SAP:
Gibt es eine Möglichkeit dem SAP_ALL Profil die Sicht auf HR-Daten so zu
entziehen, dass ein Benutzer mit SAP_ALL Berechtigung sich diese auch
nicht mehr selbst zuteilen kann? s geht z.B. um die Informationen zu
Gehältern, Arbeitszeiten von Angestellten/Mitarbeitern. Liegen diese
Daten alle im HR-Cluster?
Antwort:
nein eine solche Möglichkeit gibt es nicht, einzelnen Profilen bestimmte
Berechtigungen wegzunehmen.
Wenn ein User die Berechtigung hat in einer produktiven Umgebung den
Daten-Browser zu verwenden, so kann er sich die Daten über die PA-
Tabellen selektieren.
Hier müssen Sie schon organisatorisch sicherstellen dass eben
der Zugang zur SE16 entsprechend eingeschränkt wird; insbesondere
wenn es sich um eine produktive Umgebung handelt.
Endanwender sollten sowieso keine SE11/SE16 Berechtigung erhalten.
Unterstützt werden Sie hierbei auch vom Berechtigungsobjekt
S_TABU_DIS. Dieses Objekt wird nicht nur in der SM30/SM31 geprüft,
sondern auch im Data-Browser.
Wenn also SE16 Berechtigung vergeben wird, muß über das Basis Berechtig-
ungsobjekt S_TABU_DIS der Zugriff über Berechtigungsgruppen entsprechend
gesteuert werden. Über die HR Berechtigungsobjekte (z.B. PLOG, P_ORGIN)
klappt das leider nicht.
Nur über das Berechtigungsobjekt S_TABU_DIS können Sie
entsprechende Einschränkungen für den Zugriff auf HR-Tabellen
vornehmen.
Standardmäßig werden die HR-Tabellen mit der Tabellenklasse "PA"
ausgeliefert. Diese Klassifizierung erfolgt über die geschützte
Tabelle TDDAT. Entwickler, die keine Berechtigung auf diese
Tabellenklasse haben, können selbst mit SE16 nicht auf HR-
Tabellen zugreifen.
Der Zugriff auf einzelne HR-Tabellen kann also über die Pflege der
Tabelle TDDAT weiter verfeinert werden kann.
Hier können also auch spezielle HR-Tabellen für einen bestimmten
Mitarbeiterkreis lesend oder schreibend zugänglich, für andere
Mitarbeiter dagegen aber gesperrt werden.
Meine 2. Frage:
Ich beziehe mich auf die bereits quittierte Anfrage:
XXXXXXXXXXX. Wenn es gelingt, mit dem Berechtigungsobjekt
S_TABU_DIS den Zugriff auf HR-Daten mittels der TK SE16 zu unterbinden.
Verhindert dass auch, dass ein Entwickler mit Hilfe eines einfach ABAP
Programms die HR-Tabellen direkt ausliest und deren Inhalte erhält,
obwohl er über die SE16 nichts sehen kann?
Antwort SAP:
das wird natürlich nicht verhindert. Allerdings sollte es dem
Entwickler im Produktivsystem ja gar nicht möglich sein, solche
ABAPs zu erstellen, bzw. solche ABAPs ins Entwicklungssystem zu
transportieren.
Ergänzend lege ich noch folgenden Hinweis bei:
#13202 Aspekte der Sicherheit bei ABAP-Programmierung
Man muss demnach systemweit ein differenziertes Berechtigungskonzept ausarbeiten, welches diese Nebenbedingungen berücksichtigt.
Gruesse
Guido