Ansicht
Dokumentation

CL_SAIS_TABLE_AUTH - Generische Tabellenberechtigungsprüfung

CL_SAIS_TABLE_AUTH - Generische Tabellenberechtigungsprüfung

BAL_S_LOG - Application Log: Log header data   ROGBILLS - Synchronize billing plans  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Sie können mit der Methode TABLE_AUTHORITY_CHECK die Berechtigungsprüfung für den generischen Tabellenzugriff implementieren. Die Methode arbeitet nach demselben Algorithmus wie der Funktionsbaustein VIEW_AUTHORITY_CHECK und unterstützt die Berechtigungsprüfung gegen die Objekte S_TABU_DIS, S_TABU_NAM und S_TABU_CLI.

Diese Methode eignet sich insbesondere für die Berechtigungsprüfung für mehrere Tabellen oder Views und die Berechtigungsprüfung für Objekte die nicht im ABAP-Dictionary hinterlegt sind. Für die Unterstützung der zeilenbasierten Berechtigungsprüfung ist der Funktionsbaustein VIEW_AUTHORITY_CHECK zu nutzen.

Mit der Constructor-Methode zur Klasse werden die Umgebungsparameter für die Berechtigungsprüfung gesetzt. Alle Parameter sind optional und mit Defaultwerten belegt. Folgende Einstellungen sind möglich:

ID_ACTVT- zu prüfende Tabellenzugriffsaktivität (Default: '03')

  • erlaubte Werte: '03' - Anzeige, '02' - Ändern

ID_SINGLE_ERR- Gebe Fehlermeldungen sofort aus (Default: Space)

  • erlaubte Werte: SPACE - keine Fehlermeldungen, 'X' - Fehlermeldungen sofort ausgeben

ID_LOG_ERR- Gebe Fehlermeldungen gesammelt aus (Default: Space)

  • erlaubte Werte: SPACE - keine Fehlermeldungen, 'X' - Fehlermeldungen für spätere Ausgabe sammeln

    Wenn sowohl ID_SINGLE_ERR als auch ID_LOG_ERR auf Space gesetzt sind (Default) werden keine Fehlermeldungen ausgegeben, die Fehlerbehandlung kann entsprechend dem Ergebnis der Methode TABLE_AUTHORITY_CHECK vom Aufrufer gesteuert werden.

    Wenn ID_SINGLE_ERR auf 'X' gesetzt ist, wird der Parameter ID_LOG_ERR ignoriert.

ID_ALTERN_CHECK- Prüfe gegebenenfalls auf Alternative Zugriffsaktivität (Default: Space)

  • erlaubte Werte: SPACE - keine zusätzliche Prüfung, 'X' - wenn die Berechtigungsprüfung mit der in ID_ACTVT übergebenen Aktivität fehlgeschlagen ist, prüfe zusätzlich, ob für die Alternativaktivität (Anzeigen <-> Ändern) die Berechtigung vorliegt.

Die Methode TABLE_AUTHORITY_CHECK liefert zu einem übergebenen Tabellen- oder Viewnamen den erfolgreich geprüften Aktivitätswert zurück. Falls keine Berechtigung vorliegt, wird der Intialwert zum Datenelement ACTIV_AUTH zurückgegeben.

Bezüglich der Existenz der zu prüfenden Tabellen oder Views verhält sich die Methode wie folgt:

  • Bei der Berechtigungsprüfung auf die Aktivität '03' (Anzeigen) werden die Attribute des ABAP-Dictionary nicht benötigt. Die Existenz des Prüfobjektes wird nicht betrachtet.
  • Bei der Berechtigungsprüfung auf die Aktivität '02' (Ändern) muss für die mandantenunabhängigen Tabellen zusätzlich auf die Berechtigung zum mandantenübergreifenden Ändern (S_TABU_CLI) geprüft werden. Wenn die Berechtigung für diese Aktivität nicht vorliegt, werden Tabellen die nicht im ABAP-Dictionary existieren, wie mandantenübergreifende Tabellen behandelt.
  • Wenn die Erweiterung zur Tabellenberechtigungsprüfung entsprechend der Tabellenkategorie (Hinweis 1381945) aktiviert wurde, wird für Tabellen der Auslieferungsklassen C, G und E anstatt der in der Tabelle TDDAT hinterlegten Berechtigungsgruppe, eine für diese Tabellentypen definierte Tabellenberechtigungsruppe geprüft. Falls die zu prüfende Tabelle/View im ABAP-Dictionary nicht existiert, wird die Prüfung wie bei einer Tabelle in einer beliebigen anderen Auslieferungsklasse durchgeführt.

Die Methode SHOW_MESSAGE_LOG gibt die ggf. in der CONSTRUCTOR- oder Prüfmethode gesammelten Meldungen aus.

Beziehungen

Beispiel

Beispiel für einfachen Aufruf zur Prüfung der Anzeigeberechtigung auf eine Tabelle (ohne Fehlermeldungen):

DATA: lo_auth TYPE REF TO cl_sais_table_auth.

CREATE OBJECT lo_auth.

IF lo_auth->table_authority_check( 'T100' ) = '03'.
  WRITE : / 'Authority check passed'.
ENDIF.
FREE lo_auth.

Beispiel für Berechtigungsprüfung für eine Menge von zu Ändernden Tabellen und die Nutzung der gesammelten Meldungsausgabe:

DATA:
  ld_tabix  TYPE sy-tabix,
  ld_return TYPE activ_auth,
  lo_auth   TYPE REF TO cl_sais_table_auth,
  ld_table  TYPE LINE OF viewnames,
  lt_table  TYPE viewnames..

CREATE OBJECT lo_auth
  EXPORTING
    id_actvt   = '02'
    id_log_err = 'X'.

LOOP AT lt_table INTO ld_table.
  ld_tabix = sy-tabix.
  ld_return = lo_auth->table_authority_check( ld_table ).
  IF ld_return &lt;&gt; p_actvt.
    DELETE lt_table INDEX  ld_tabix .
  ENDIF.
ENDLOOP.
lo_auth->show_message_log( ).

Hinweise

Weiterführende Informationen

Der FAQ-Hinweis 1434284 enthält weitere Informationen zum Thema "Berechtigungskonzept für den generischen Tabellenzugriff".






rdisp/max_wprun_time - Maximum work process run time   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 6202 Date: 20240419 Time: 011550     sap01-206 ( 84 ms )