Ansicht
Dokumentation
VIEW_AUTHORITY_CHECK - Berechtigungsprüfung für Views/Tabellen (erweiterte Tabellenpflege)
CPI1466 during Backup CL_GUI_FRONTEND_SERVICES - Frontend ServicesDiese Dokumentation steht unter dem Copyright der SAP AG.
Funktionalität
Der Funktionsbaustein VIEW_AUTHORITY_CHECK prüft zu einer Tabelle oder View (Parameter VIEW_NAME) die Berechtigung zum generischen Tabellenzugriff. Der Prüfalgorithmus ist von der gewünschten Zugriffsart, den Tabelleneigenschaften und der Konfiguration des Systems abhängig und berücksichtigt die Berechtigungsobjekte S_TABU_DIS, S_TABU_NAM, S_TABU_CLI und S_TABU_LIN.
Mit dem Parameter VIEW_ACTIONwird die gewünschte Tabellenzugriffsart übergeben. Der Wert 'S' steht für den lesenden, der Wert 'U' für den ändernden Zugriff. Der Wert 'T' (Transport von Tabelleneinträgen) wird wie der ändernde Zugriff behandelt.
Wenn der Parameter CHECK_ACTION_ALTERNATIVE = 'X' gesetzt ist, wird nach fehlgeschlagener Berechtigungsprüfung für die gewünschte Zugriffsart, die jeweils andere Zugriffsart (Wechsel zwischen Anzeigen und Ändern) geprüft. Schlägt auch diese Prüfung fehl, wird die Ausnahme NO_AUTHORITY ausgelöst. Wenn dieser Parameter aktiv ist, wird in jedem Fall die erlaubte Aktivität über den Parameter GRANTED_ACTVT zurückgegeben. Mögliche Rückgabewerte sind:
- '00' - keine Berechtigung,
- '02' - Ändern erlaubt,
- '03' - Anzeige erlaubt.
Mit dem Parameter NO_WARNING_FOR_CLIENTINDEP kann das Warnpopup zur Pflege von mandantenabhängigen Tabellen unterdrückt werden.
Bedingung für die erfolgreiche Berechtigungsprüfung, ist die Existenz im ABAP-Dictionary oder dem View- bzw. Viewclusterverzeichnis. Wenn eine Tabelle oder View nicht existiert wird der Baustein mit der Ausnahme TABLE_NOT_FOUND beendet.
Wird der Baustein innerhalb eines RFC-Callstacks aufgerufen, wird das zu prüfende Objekt und die geplante Zugriffsaktivität im Security Audit Log protokolliert.
Beispiel
* Sample like note 1581786
DATA:
ld_auth_in TYPE c,
ld_auth_out TYPE activ_auth.
IF action = 'SHOW'.
ld_auth_in = 'S'. "check for display
ELSE.
ld_auth_in = 'U'. "check for update
ENDIF.
CALL FUNCTION 'VIEW_AUTHORITY_CHECK'
EXPORTING
view_action = ld_auth_in
view_name = 'TVARVC'
no_warning_for_clientindep = 'X'
check_action_alternative = 'X'
IMPORTING
granted_actvt
= ld_auth_out
EXCEPTIONS
invalid_action
= 1
no_authority = 2
no_clientindependent_authority = 3
table_not_found = 4
no_linedependent_authority = 5
OTHERS = 6.
IF sy-subrc <> 0.
action = 'SHOW'.
MESSAGE w107(tb) WITH 'TVARVC' . "no upd auth
ELSEIF ld_auth_in = 'U' AND ld_auth_out = '03'.
action = 'SHOW'.
MESSAGE w106(tb) WITH 'TVARVC'. "only show allowed
ENDIF.
Hinweise
Weiterführende Informationen
Für weitergehende Informationen zum Berechtigungskonzept beim generischen Tabellenzugriff nutzen Sie den FAQ-Hinweis 1434284.
Alternativ zu diesem Funktionsbaustein kann für die Implementierung der Berechtigungsprüfung
(ohne generellen Existenzcheck) auch die Klasse CL_SAIS_TABLE_AUTH mit der Methode TABLE_AUTHORITY_CHECK genutzt werden.
Parameter
CHECK_ACTION_ALTERNATIVECHECK_MAINFLAG
GRANTED_ACTVT
MAINFLAG
NO_WARNING_FOR_CLIENTINDEP
ORG_CRIT_INST
VIEW_ACTION
VIEW_NAME
Ausnahmen
INVALID_ACTIONNO_AUTHORITY
NO_CLIENTINDEPENDENT_AUTHORITY
NO_LINEDEPENDENT_AUTHORITY
TABLE_NOT_FOUND
Funktionsgruppe
SVIXROGBILLS - Synchronize billing plans rdisp/max_wprun_time - Maximum work process run time
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 6311 Date: 20240523 Time: 073328 sap01-206 ( 75 ms )