コンテンツフレーム起動

プログラムとファイルの権限チェック 文書を SAP ライブラリストラクチャに組み込む

ストラクチャのリンクBC - ユーザと権限

以下の命令を使用して、アプリケーションサーバ上の順次ファイルにアクセスします。

        OPEN DATASET

        READ DATASET

        TRANSFER

        DELETE DATASET

このとき、ユーザの権限が権限オブジェクト S_DATASET で自動的にチェックされます。

このオブジェクトを使用すると、特定のプログラムの特定のファイルに権限を割り当てることができます。権限を割り当てて、オペレーティングシステムコマンドをファイルフィルタとして使用することもできます。

 注記

ABAP ファイルへの一般的なアクセス権の制御、つまりユーザ依存の権限チェックには S_DATASET を使用しないでください。代わりに、テーブル SPTH を使用します ( ファイルアクセスの一般チェックを参照)

権限オブジェクトS_DATASET

オブジェクトS_DATASET は、以下の項目で構成されています。

        ABAP プログラム名

アクセスが許可される ABAP プログラムの名称。これにより、そのタスクの少数のプログラムにファイルアクセスを明確に限定することができます。

        アクティビティ

使用可能な値は以下のとおりです。

33: 通常のファイル読込

34: 通常のファイル書込または削除

A6: フィルタによるファイル読込 ( オペレーティングシステムコマンド)

A7: フィルタによるファイル書込 ( オペレーティングシステムコマンド)

        ファイル名

オペレーティングシステムファイルの名称これにより、アクセス可能なファイルを制限することができます。

権限オブジェクトの詳細については、「ユーザと権限」文書を参照してください。

 注意

自動権限チェックの結果が不可の場合は、実行時エラーが発生します。

そのため、ABAP プログラムで権限チェックを実行した後に、汎用モジュール AUTHORITY_CHECK_DATASET でファイルにアクセスするようにします。

汎用モジュール AUTHORITY_CHECK_DATASET

この汎用モジュールを使用すると、ファイルを開く前にそのファイルに対するユーザのアクセス権限の有無をチェックすることができます。この汎用モジュールによって、自動権限チェック時の実行時エラーの発生を回避することができます。

この汎用モジュールには、以下のインポートパラメータがあります。

        PROGRAM

ファイルを開く ABAP プログラムの名称。プログラム名を指定しない場合は、現在のプログラム名が使用されます。

        ACTIVITY

アクセスタイプ。使用可能な値は以下のとおりです。

-  READ: ファイル読込

-  WRITE: ファイル変更

-  READ_WITH_FILTER: フィルタ機能によるファイル読込

-  WRITE_WITH_FILTER: フィルタ機能によるファイル書込

-  DELETE: ファイル削除

これらの値は、データ型グループ SABC の定数として以下のように定義することができます。

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

アクセスするファイルの名称

 例

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.

......

この汎用モジュールコールでは、現在のプログラムがファイル '/tmp/sapv01' にアクセス可能かどうかがチェックされます。

 

 

 

 

 

コンテンツフレーム終了