このページでは、SAPにおける権限制御の基本的な仕組み(ユーザマスタ/ロール)を1からわかりやすく初心者向けに解説します。

ユーザ管理の仕方や権限オブジェクト/単体ロール・集合ロールの仕組みなど、SAP初心者にとっては聞きなれない用語が多く、きちんと理解できている人が実は少ないのがこの分野です。
このページでは、ユーザマスタの仕組み→権限制御の方式の順にSAPにおける権限の考え方をわかりやすく図解します。
SAP:権限の考え方(ユーザ/ロール)
SAPの権限制御の仕組みはユーザマスタとロールの仕組みを理解できればOKです。


ユーザマスタとロール、この2つを設定することで例えば経理部の〇〇さんは「伝票登録」はできるけど「伝票削除」はできません―。といった権限制御が可能になります。
権限の設定(ユーザ/ロール)を誤ると、意図しない人が意図しない処理を行ってしまうなど会社全体への影響が出てしまうため注意が必要です。
まずは、SAPのユーザマスタについて1から解説します。
SAP:ユーザマスタとは?
ユーザマスタは、その名の通りSAPを利用するユーザに関する情報を一元的に管理したマスタです。


氏名や職位、所属する部署の情報や連絡先など。個人に関する情報はすべてユーザマスタから確認することが可能です。後述するロールをユーザマスタ上で指定することにより、当該ユーザが利用できる機能や参照できるデータ範囲が決まります。
ユーザマスタレコードはSAPを利用する全ての人間に割り振られます。経理部門、総務部門など実際のSAPユーザはもちろん、SAP開発者・管理者もすべからくこのマスタで管理されます。ユーザマスタが存在しない場合はSAPを利用することはできません。
SU01:ユーザマスタ登録/更新/削除
SAPのユーザ管理はトランザクションコード:SU01から登録します。
この章ではユーザマスタの主な項目を簡単に解説します。

ユーザマスタ①:アドレス
SU01:ユーザマスタのアドレスタブでは以下のような情報を設定できます。
主にそのユーザの基本情報を登録します。アドオン機能を開発していなければ、システム的にはあまり大きな意味を持たない項目が多く、最低限氏名だけを登録して運用している場合も多いです。
アドオンタブは個人情報に該当します。そのため、ユーザマスタの管理を行う担当者は最新の注意を払う必要があります。

そのため、電話番号やメールアドレスなどはあえて登録せずに利用する場合も多く存在。
ただし、電話番号やメールアドレスを登録しておくことで運用担当者から直接ユーザに連絡することも可能となるなと便利な側面もあるので、ユーザマスタ管理については種々検討したうえでしっかりと運用ルールを定めておく必要があります。
ユーザマスタ②:Logon Data
SU01:ユーザマスタのLogon Data タブでは、SAPへログオンする場合のパスワードや、ユーザの有効期限を管理しています。
SAPにログオンする際の基本設定を行う項目です。SAPでは通常5回パスワードを間違えるとユーザがロック(=ログオン不可)されてしまいますが、このタブからパスワードの変更やロックの解除を行うことができます。

SAPの運用が開始されるとパスワード誤りによるユーザロックは非常に多くなります。そのため、このLogon Dataタブを頻繁に利用することになるでしょう。
ユーザタイプは以下の5種類から選択します。基本的には、ダイアログユーザ/システムユーザのどちらかを利用することが一般的です。
一般のユーザはダイアログユーザを選択します。ダイアログユーザは、SAP GUIを利用してSAPを操作できるユーザを指します。
一方で例えば定期ジョブを実行するためのユーザを登録する場合はシステムユーザを選択します。

システムユーザの場合は、SAP GUIを利用することができなかったり、多重ログオンが許可されるなど様々な違いがあります。
ユーザマスタ③:SNC
SU01:ユーザマスタのSNCタブは、セキュアネットワーク通信 (SNC) を利用してSAPへシングルサインオンする際の設定を行うタブです。
ユーザマスタ④:デフォルト
SU01:ユーザマスタのデフォルトタブでは、主に以下のような設定を行うことができます。
帳票印刷などを行う際には、実はこのデフォルトタブの設定を参照する場合が多くあります。例えば日付で言えば「DD/MM/YYYY」なのか?「MM/DD/YYYY」なのか?この設定が異なると帳票や一覧を印刷する際にも異なる印字がされます。

例えばFIモジュールの自動支払いデータの作成などではこのデフォルトタブの設定が参照されるので誤った設定をしてしまうとエラーが発生してしまうこともあるので注意が必要です。
ユーザマスタ④:パラメータ
SU01:ユーザマスタのパラメータタブでは、ユーザパラメータを管理します。
SAPのユーザパラメータとは、ユーザ単位で保持しておける変数のようなもの。

例えば画面の初期表示をする際に、プログラムでユーザパラメータを読み込みその値を初期値として表示したりすることができます。
パラメータID | 説明 | 例 |
---|---|---|
BUK | 会社コード | 1000 |
KOS | 原価センタ | 1000 |
HNA | 管理会計グループ | 9000 |
アドオンでユーザパラメータを追加することもできます。このユーザパラメータを参照して、アドオンで権限の制御を行ったりすることも可能です。

続いては、ロールの仕組みについての解説に移ります。
SAP:権限ロールとは?
権限ロールとは、SAPで利用することができる機能や参照できるデータ範囲をまとめたものです。

例えば経理部ロールを作成する場合には、会計伝票の登録などを利用できるように設定しておきます。そして、このロールをユーザに紐づけることで、ロールを割り当てられたユーザが会計伝票の登録を行えるようにするという仕組みです。

ユーザマスタを登録しても何のロールも割り当たっていない場合は、SAPのどの機能を利用することもできません・・・。
ユーザマスタの登録とロールの登録は両方を適切に行うことが重要です。
単体ロール(単一ロール)と集合ロール
SAPの権限ロールは単体ロールと集合ロールの2つに大別されます。それぞれの関係を示したのが以下の図です。

簡単に言えば親子関係にあるのが単体ロールと集合ロールです。
ユーザには単体ロールと集合ロールのどちらも割り当てることが可能ですが、基本的には集合ロールを割り当てることが一般的です。

実際の設定内容を含めて、単体ロールと集合ロールの関係/ユーザマスタとの関係を表すと以下のような形になります。

単体ロールとしてどのような機能を利用できるのか?をまとめ、各集合ロールには単体ロールを割り当てていきます。この際、単体ロールは複数の集合ロールに割り当てることが可能です。

以上を踏まえて、実際に権限ロールを登録していく方法を解説します。
PFCG:権限ロールの設定
権限ロールの設定はトランザクションコード:PFCGから行います。


主要な設定項目に絞って解説します。
権限ロール①:利用可能メニュー(トランザクションコード)の設定
その権限ロールを割り当てられたユーザがSAP GUIにログオンした際に画面上に表示されるトランザクションの一覧を定義することができます。

SAPのメニューをそのまま利用するとメニューが膨大な数となってしまうため、そのロールで必要とされるトランザクションコードだけを指定することでユーザビリティが向上します。
次の章でも解説しますが、ここで追加したトランザクションコードはあくまでも「メニューを定義しているだけ」なので、まだそのトランザクションコードを利用することはできません(=トランザクションコードを利用する権限は与えられていません)。

そのため、以下のような作業が必要となります。
権限ロール②:権限オブジェクトの設定
権限オブジェクトとはSAPにおける権限制御の最小単位で、簡単に言えば「処理の単位」です。

具体的な権限オブジェクトの例を見たほうが理解が進むと思いますので、以下に権限オブジェクトのサンプルを例示します。
これらの権限オブジェクトを単体ロールに割り当てることによって、ファイルアクセス権限やユーザマスタ管理権限が付与される仕組みです。


権限オブジェクトは利用可能トランザクションコードから自動的に生成することができますが、マニュアル登録もできます。
RFCでSAPを利用する場合など(SAPの画面は利用しないが、SAPの機能を利用する場合)などにマニュアルで権限オブジェクトを生成します。
権限ロール③:権限項目
権限項目とは、権限オブジェクト(=処理内容)をさらに細かく指定できる項目のことです。
権限オブジェクト ⇒ 「G_GLTP」特別目的元帳データベース
権限項目 ⇒ 「ACTVT」アクティビティ
設定内容 ⇒ 「02:変更」「03:照会」
上記のように権限項目を設定することで、特別目的元帳に対する変更・照会処理が行えるようになります。

権限項目は権限オブジェクトの種類によって内容は異なります。「ACTVT(=処理の種類)」などはメジャーな権限項目ですが、例えばファイルアクセス権限オブジェクトの「S_DATASET」には「FILENAME(=どのファイルを編集できるか?)」といったものもあります。
このようにSAPでは非常に細かい権限制御を行うことができるというメリットがあります。
権限ロール④:権限プロファイル
権限プロファイルとは、権限オブジェクトから生成される権限の実態です。

上記のように説明されてしまうと分かりづらいですが「システムが理解しやすいようにした裏側の情報」と理解していればOKです。
よくある落とし穴として、権限オブジェクトを変更したのに利用できる機能が変わらない・・・!といったミスがあります。
これは権限オブジェクト変更後の「権限プロファイルの生成」を行っていないことが主な理由です。権限修正後は必ず権限プロファイルの生成を行うことを忘れないようにしましょう。

ちなみに、権限オブジェクトではなく権限プロファイルを直接修正することも可能です。権限プロファイルを直接修正することでユーザに割り当てる権限の内容を変更可能。
ただし、この方法はSAP社が公式に推奨しておらずかえって思わぬバグを生んでしまう可能性があるため十分注意しましょう。

アドオンプログラムでも権限項目や権限オブジェクトの基本知識は必須です。以下の記事ではABAPで権限チェックを行う方法や仕組みを詳しく解説しておりますので、ABAPerを目指す方は是非合わせて学習しておきましょう!
SAP / ABAPを1から学習したい方は

SAP / ABAPを1から学習したい初心者の方向けに、できるだけ網羅的にABAPが理解できるよう以下ページに知識体系を整理しています。
特に初心者のうちは、どこから学べばよいか?どう勉強すれば良いか?すらわからない状態になりがち。
ある程度の知識を持ったうえで、はじめて実践的な理解へとつながります。