Bei Zugriffen auf sequentielle Dateien auf dem Anwendungsserver mit den Anweisungen
· OPEN DATASET
· READ DATASET
· TRANSFER
· DELETE DATASET
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 Allgemeine Verprobung bei Dateizugriffen).
Das Objekt S_DATASET besteht aus folgenden Feldern:
· ABAP-Programmname
Name 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ät
Die 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)
· Dateiname
Name 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.
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:
· PROGRAM
Name des ABAP-Programms, aus dem der Dateizugriff erfolgt. Falls kein Programmname angegeben wird, wird das aktuelle Programm angenommen.
· ACTIVITY
Zugriffstyp, die möglichen Werte sind:
¡ READ: Datei lesen,
¡ WRITE: Datei ändern,
¡ READ_WITH_FILTER: Datei über Filterfunktion lesen,
¡ WRITE_WITH_FILTER: Datei über Filterfunktion ändern,
¡ DELETE: Datei löschen.
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'.
· FILENAME
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.