Ansicht
Dokumentation

VIEW_AUTHORITY_CHECK - Berechtigungsprüfung für Views/Tabellen (erweiterte Tabellenpflege)

VIEW_AUTHORITY_CHECK - Berechtigungsprüfung für Views/Tabellen (erweiterte Tabellenpflege)

CPI1466 during Backup   CL_GUI_FRONTEND_SERVICES - Frontend Services  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

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_ALTERNATIVE
CHECK_MAINFLAG
GRANTED_ACTVT
MAINFLAG
NO_WARNING_FOR_CLIENTINDEP
ORG_CRIT_INST
VIEW_ACTION
VIEW_NAME

Ausnahmen

INVALID_ACTION
NO_AUTHORITY
NO_CLIENTINDEPENDENT_AUTHORITY
NO_LINEDEPENDENT_AUTHORITY
TABLE_NOT_FOUND

Funktionsgruppe

SVIX

ROGBILLS - 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 )