Berechtigungsprüfung für bestimmte Programme und Dateien
Bei Zugriffen auf sequentielle Dateien auf dem Anwendungsserver mit den Anweisungen
führt das System automatisch eine Berechtigungsprüfung über das Berechtigungsobjekt S_DATASET durch.
Mit diesem Objekt können Sie die Berechtigung von bestimmten Programmen zum Zugriff auf bestimmte Dateien erteilen und auch die Berechtigung zur Benutzung von Betriebssystemkommandos als Dateifilter vergeben.
Die generelle Zugriffserlaubnis aus ABAP auf Dateien und benutzerabhängige Berechtigungsprüfungen steuern Sie nicht mit dem Berechtigungsobjekt S_DATASET, sondern mit der Tabelle SPTH (siehe
Das Berechtigungsobjekt S_DATASET
Das Objekt S_DATASET besteht aus folgenden Feldern:
·
ABAP-ProgrammnameName des ABAP-Programms, aus dem der Zugriff erfolgen darf. Hiermit können Sie den Zugriff auf die Dateien auf einige bekannte Zugriffsprogramme beschränken.
·
AktivitätDie möglichen Werte sind:
33: Normales Lesen einer Datei
34: Normales Schreiben oder Löschen einer Datei
A6: Lesen einer Datei mit Filter (Betriebssystemkommando)
A7: Schreiben einer Datei mit Filter (Betriebssystemkommando)
·
DateinameName der Betriebssystemdatei. Hiermit können Sie die Dateien einschränken, auf die zugegriffen werden darf.
Weitere Informationen zu Berechtigungsobjekten finden Sie in der Dokumentation
BC - Benutzer und Rollen.Ist das Ergebnis der automatischen Berechtigungsprüfung negativ, erfolgt ein Laufzeitfehler
Führen Sie deshalb die Berechtigungsprüfung vor dem Dateizugriff mit dem Funktionsbaustein AUTHORITY_CHECK_DATASET im ABAP-Programm durch.
Der Funktionsbaustein AUTHORITY_CHECK_DATASET
Mit diesem Funktionsbaustein können Sie in ABAP-Programmen die Berechtigung zum Zugriff auf eine Datei vor dem Öffnen der Datei prüfen. Damit greifen Sie einem Laufzeitfehler bei der automatischen Berechtigungsprüfung vor.
Der Funktionbaustein hat folgende Importparameter:
Name des ABAP-Programms, aus dem der Dateizugriff erfolgt. Falls kein Programmname angegeben wird, wird das aktuelle Programm angenommen.
Zugriffstyp, die möglichen Werte sind:
Diese Werte sind in der Typgruppe SABC wie folgt als Konstanten vordefiniert:
TYPE-POOL SABC .
CONSTANTS:
SABC_ACT_READ(4) VALUE 'READ',
SABC_ACT_WRITE(5) VALUE 'WRITE',
SABC_ACT_READ_WITH_FILTER(16) VALUE 'READ_WITH_FILTER',
SABC_ACT_WRITE_WITH_FILTER(17) VALUE 'WRITE_WITH_FILTER',
SABC_ACT_DELETE(6) VALUE 'DELETE',
SABC_ACT_INIT(4) VALUE 'INIT',
SABC_ACT_ACCEPT(6) VALUE 'ACCEPT',
SABC_ACT_CALL(4) VALUE 'CALL'.
Name der Datei, auf die zugegriffen wird.
TYPE-POOLS SABC.
.....
CALL FUNCTION 'AUTHORITY_CHECK_DATASET'
EXPORTING PROGRAM = SY-REPID
ACTIVITY = SABC_ACT_READ
FILENAME = '/tmp/sapv01'
EXCEPTIONS NO_AUTHORITY = 1
ACTIVITY_UNKNOWN = 2.
......
Dieser Aufruf des Funktionsbausteins fragt ab, ob das laufende Programm lesend auf die Datei '/tmp/sapv01' zugreifen darf.