権限管理
SAPにおける権限について。
概要 †
大きくは下記の二つの目的を充足するために定義する。
- 実行者に対し、処理の実行やアクセスの範囲をコントロールすること
- データに対して不正なアクセスやオペレーションを防ぎ、誤入力の機会を減少させること
基本コンセプト †
実際の設定 †
内部的には、ユーザマスタへの権限プロファイルの割当を基軸とする。 但し、後述するが権限プロファイルは権限ロールより生成されるため、実際は権限ロールが主、権限プロファイルが従と言える。
注意点 †
SAPの機能デザインコンセプトは、足し算である。 例えば、100のうち、1の機能のみ実行不可・・・といった引き算はできず、この場合は99を個別に割り当てることで充足する。 なお、プロジェクトサイドでは何をやってもよいSAP_ALLが一般に割り当てられる。 但し、アレコレ制限があっても仕事にならんというのは当然ではあるが、内部統制上は本番機のユーザに割り当てることは推奨されない。
構成 †
SAPの権限管理は、下記の要素で構成される。
Tips †
権限絡みの移送について †
ユーザマスタのコピー、権限ロールや権限プロファイルの移送についてだが、実際には「マスタの一つ」という認識のもと、本番環境で直接行われることが多い。 SAP自体には開発環境から移送する機能もあるし、開発機も本番機も共通で1ユーザ1ライセンスとしているだろうから、開発機からユーザマスタを登録してロールを割り当てて移送してもよい話とも思えるが、「ロールまでは移送・ユーザ割当は本番機で直接」という運用をしているユーザ企業が多いように思う。
権限チェックが走るタイミング †
ログオン時、トランザクションコードの開始時、データアクセス時の3つ。
なお、トランザクションコードでの判定について、ひとつのプログラムに値や必須チェックを設定したバリアントを複数用意し、それらを割り当てたトランザクションコードを用意し権限設定を住み分けるという手がよく使われる。 これは、権限オブジェクトでアクティビティを指定しコーディングでチェックするよりも明快だし簡単だという理由で採用されるのだが、その一方で、FIのチェックや代入・Open-FIおよびEXITなどで「トランザクションコードが○○だったら」という分岐を入れることもしばしばある。 実現手段が簡単だからという理由で冒頭の対応をした場合に抜け漏れが出やすいのがここで、会社コードの追加や同様のトランザクションコードを分けた際には注意されたい。
方法自体が間違っている・良くないという話ではなく、実現化で楽をした分ブラックボックス化や抜け漏れのリスクを孕む選択だということは、お忘れなく。
アドオンでの権限チェック †
AUTHORITY-CHECKという命令で、権限オブジェクトベースで実施する。
関連 †
権限管理/トランザクションコード 権限管理/関連テーブル 権限管理/分野メニュー
最新の10件を表示しています。 コメントページを参照