Ansicht
Dokumentation
CL_SAIS_TABLE_AUTH - Generische Tabellenberechtigungsprüfung
BAL_S_LOG - Application Log: Log header data ROGBILLS - Synchronize billing plansDiese Dokumentation steht unter dem Copyright der SAP AG.
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 <> 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 )