!--a11y-->
以下の命令でアプリケーションサーバ上の順次ファイルにアクセスすると、
テーブル
SPTH が自動的にチェックされます。テーブル
SPTH は、 ABAP からのファイルの読み込みと書き込みアクセス、およびファイルをバックアップルーチンに含めるかどうかを制御するためのものです。テーブル
SPTH のエントリでは、一般的にも、また R/3 権限コンセプトにも 関係なくファイルの読込と書込アクセスを禁止することができます。このファイルは総称的に指定できます。テーブル SPTH での読込および書込アクセスが可能なその他のファイルについては、 R/3 権限コンセプトにもとづいて権限チェックが行われます。それに合わせて、テーブル SPTH ではプログラム非依存ユーザ権限チェックのための権限グループを定義することができます。こうした目的で、テーブル
SPTH には以下のような列が入っています。
この列にはファイルの総称名が入っています。したがって、
SPTH の行に入力されたエントリはアプリケーションサーバ上のファイルに対して有効で、 PATH 列にある総称ファイル名に最も近似しています。
SPTH
に PATH 列の以下の3つのエントリが含まれている場合は、*
/tmp
/tmp/myfile
以下の行のエントリが有効です。
− 最初の行のエントリは、‘
− 2番目の行のエントリは、ファイル‘
/tmp/myfile ’を除く‘ /tmp ’パスにあるアプリケーションサーバ上のすべてのファイルに有効。− 3番目の行のエントリは、アプリケーションサーバ上のファイル
‘ /tmp/myfile ’に有効。
この列には‘
X ’のマークがついた場合に設定されるフラグが入っています。フラグを設定すると、
PATH 列で指定したファイルがすべてバックアッププロシージャの中に組み込まれます。
この列には‘
X ’のマークがついた場合に設定されるフラグが入っています。ABAP
プログラムでは、フラグを設定すると PATH 列で指定したファイルにアクセスできなくなります。このフラグにより、ユーザ権限はすべて無効になります。 FS_NOREAD フラグを設定すると、 FS_NOWRITE フラグも設定されます。フラグを設定しなかった場合、
ABAP プログラムに適切な権限があれば、ファイルにアクセスすることができます(列 FSBRGRU および 特定プログラムとファイルの権限チェックを参照してください)。
この列には‘
X ’のマークがついた場合に設定されるフラグが入っています。ABAP
プログラムでは、フラグを設定すると PATH 列で指定したファイルが変更できなくなります。このフラグにより、ユーザ権限はすべて無効になります。フラグを設定しなかった場合、
ABAP プログラムに適切な権限があれば、ファイルにアクセスすることができます(列 FSBRGRU および 特定プログラムとファイルの権限チェックを参照してください)。
この列には権限グループの名前が入っています。
権限グループは、権限オブジェクト
S_PATH の最初の項目( RS_BRGRU )に対応しています。権限オブジェクト S_PATH の2番目の項目( ACTVT )では、ユーザに権限グループのファイル読込(値3)やファイル変更(値2)を行う権限があるかどうかをチェックすることができます。列
FSBRGRU のエントリには権限グループ内のアプリケーションサーバのファイルが組み込まれています。権限オブジェクト S_PATH の権限を定義することにより、ユーザ別のファイルアクセスを制御することができます。
権限オブジェクト
S_DATASET ( 特定プログラムとファイルの権限チェックを参照してください)による権限チェックと比較すると、権限オブジェクト S_PATH に対する権限チェックとは ABAP プログラムとは無関係です。また、それらのチェックは個別ファイルに限定されるわけではなく、列 PATH で総称的に指定されたすべてのファイルに対して行われます。列
FSBRGRU が空の場合は、 PATH 列で指定したファイルは権限グループには属さないため、権限オブジェクト S_PATH に対する権限チェックは行われません。
テーブル
SPTH のチェック結果が不可の場合は、実行時エラーが発生します。
テーブル
SPTH に以下のエントリが入っているとします。
PATH |
SAVEFLAG |
FS_NOREAD |
FS_NOWRITE |
FSBRGRU |
* |
X |
X |
||
/tmp |
||||
/tmp/files |
X |
FILE |
ABAP
プログラムでは、これらの設定を使用すると、‘ /tmp ’パスのファイルを除いて、アプリケーションサーバ上のファイルにはアクセスできなくなります。また、すべての
ABAP プログラムでは、‘ /tmp ’パス内のファイルの読込と変更を行うことができます。パス‘
/tmp/files ’のファイルの読み込みと変更を行う ABAP プログラムは、権限グループ FILE の権限を持つユーザしか使えません。これらのファイルはバックアッププロシージャの中に含まれています。上記の設定を使用すると、以下のプログラム行はどのユーザにおいても実行時エラーとなります。
DATA: FNAME(60).
FNAME = '/system/files'.
OPEN DATASET FNAME FOR OUTPUT.