Ansicht
Dokumentation

CL_SAIS_TABLE_AUTH - Generische Tabellenberechtigungsprüfung

CL_SAIS_TABLE_AUTH - Generische Tabellenberechtigungsprüfung

ROGBILLS - Synchronize billing plans   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".






Vendor Master (General Section)   Fill RESBD Structure from EBP Component Structure  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 6202 Date: 20240420 Time: 064715     sap01-206 ( 92 ms )