
SAPは全社共通で利用するシステムであるため、権限制御の考え方は非常に重要であり、複雑です。
部署、部門、役割に応じて適切な権限設定が行えていない場合、
平社員が全社の経理データを見ることができる・・・
給与データを操作できてしまう・・・
社長なのに、全社データを参照できない・・・
大阪支社メンバーが東京本社の伝票を計上できる・・・
など、多くの弊害が発生してしまいます。具体的に言えば監査上NGであり、もっと言うと、SAPの最終ゴールである財務諸表の正当性も薄れてくるため、会社全体の損害につながりかねません。
そのためSAPの開発者は、権限制御の仕組みを1から10まで正確に理解しておくことが求められるため、このページで解説する内容は全て把握しておく必要があります。
とはいえ基本を押さえれば難しくはありません。一つひとつ理解していきましょう。目次
SAPの権限設定の考え方
SAPの権限制御は、①「誰が」②「何をできるのか」の思想で設計されています。
①「誰が」の部分はユーザマスタで管理し、②「何をできるのか」の部分をロールという概念で管理します。
その後、ユーザマスタにロールを割り当てる形で権限の管理をするのがSAPの基本思想になります。
この基本思想と、2つの分類を軸にそれぞれの細かな設定を確認していきます。
SU01:ユーザマスタレコード管理
①「誰が」の部分はユーザマスタレコードで管理します。
ユーザマスタレコードはSAPを利用する全ての人間に割り振られます。経理部門、総務部門など実際のSAPユーザはもちろん、SAP開発者・管理者もすべからくこのマスタで管理されます。
ユーザマスタはトランザクションコード:SU01から登録します。(更新・削除も同様です。)
ユーザマスタにはロールを割り当てるだけなので、細かな知識は必要ではありませんが、イメージを持っておくと概要を眺めていきましょう。
ユーザ基本データ ①アドレス

ユーザマスタは3つの基本データから成り立ちます。
1つめが、アドレスデータです。
アドレスデータでは、ユーザの氏名や部署、職務、電話番号などを保持しています。他にも、職場やFAX番号などプロフィールを詳細に登録することができますが、いずれにせよユーザのプロフィールがメインです。
システム的にはあまり大きな意味を持ちません(アドオンしていなければ)。
どの項目を利用するのかといったルールは、会社ごとの運用方法によります。
ユーザ基本データ ②ログオンデータ
2つ目のログオンデータでは、SAPへログオンする場合のパスワードや、ユーザの有効期限を管理しています。
パスワードの変更やロック解除などはこちらの画面から行います。
運用保守の窓口業務で多いパスワードロック解除で利用している人も多いのではないでしょうか。
ユーザ基本データ ③デフォルト
デフォルトで設定するのは、ユーザのログオン言語や印刷設定、書式がメインです。
SAPから帳票を出力する際などにこのデフォルトの設定が効いてきます。また稀にですが、日付の書式設定などがプログラム実行時に参照される場合があるので正しく設定しないとプログラムが実行エラーになる(もしくはうまく動かない)場合も出てきます。
ユーザマスタレコード管理では、特にシステム的な制約が多いわけではありませんので、上記3つのレコード種別は完璧に理解できていなくでもOKです。
あくまでもSAPのユーザは個別に様々な設定を持っている、ということを押さえておいてください。
PFCG:ロール管理
ここからはロールの解説に移ります。
ロールは、①「誰が」②「何をできるのか」の②「何をできるのか」の部分を管理します。
先に述べた通り、ここで登録・設定したロールをユーザマスタに割り当てる形で権限制御を行います。
ユーザマスタは多少登録内容にミスがあっても大きな問題はありませんが、ロールの設定を誤ると「データを見れない」「業務が進まない」などの大きな弊害が出てくるので、確かな理解と注意が必要です。
実際に権限関連の問題が発生する際は、95%ロールの設定が誤っていることが原因です※ので、ロール設定は慎重に行う必要があります。
※残り5%はユーザへのロール割り当てミスなど。
事前に、ロールのイメージを大まかに頭に入れておきましょう。これが頭に入っていると、理解が進みます。

それぞれの用語とシステム的な仕組みを解説します。
集合ロール
最終的にユーザに割り当てられるのが「集合ロール」です。集合ロールに単一ロールが割り当てられ、単一ロールの中に利用可能なトランザクションコードや、権限が割り当たっています。
※後程解説しますが、単体ロールを直接割り当てることも可能です。
トランザクションコード:SU01 のユーザ管理画面で「ロール」タブがあり、そこに集合ロールを設定することで割り当てを実現します。
集合ロールは「単一ロール」の集合体であり、実際の細かい設定は「単体ロール」単位で設定を行います。
ここでは、「集合ロール」は「単一ロール」をまとめたものである、という理解だけしておきましょう。
単一ロール(単体ロール)
単一ロールとは「① 利用可能メニュー(トランザクションコード)と、② それに対する権限(登録・参照等)を定義したもの」です。
分かりやすく、単一ロール:経理担当1000(仮)の設定を例えると以下のようになります。
ロール名称:経理担当1000
① 利用可能なトランザクションコード:FS00
② 権限:「勘定コード表:1000」のみ編集可能
利用可能なメニューを定義し、そのメニューでできることを設定する、という順番です。
勘定コード登録画面である「FS00」を設定。更に細かい権限制御としては、会社コード「1000」に限定させます。これをどのように実現するのかを順に追って説明します。
※ 単に「ロール」という言葉が使われる場合は単体ロールのことを指す場合が多く、「単体ロール」と呼称されることもあります。
① 利用可能メニュー(トランザクションコード)の設定
(1)トランザクションコード:PFCGからロール管理画面に遷移し、登録・更新したいロール名称を選択します。
(2)メニュータブから対象のトランザクションコードを記入します。
(3)トランザクション割当ボタンを押下。
上記手順で、そのロール内で利用可能なトランザクションコードを登録することができ、追加したトランザクションコードは、「メニュー」タブに表示されていきます。
このロールをユーザに割り当てることで、登録したトランザクションコードが利用可能になります。ここで登録していないトランザクションコードは、利用できません。
② 権限の生成
トランザクションコードが利用できるようになると、そのトランザクションコード内での権限の生成が必要となります。
手順は4ステップです。
(1)権限タブの「権限データ変更」をクリック
(2)利用可能としたトランザクションコードに基づき自動的に権限が提案される
(3)権限値を設定する
(4)権限プロファイルの生成(Shift+F5)
これで、権限の生成が完了し、ロールの設定が終了します。このロールをユーザマスタに割り当てることで当該ユーザの権限制御が実現します。
ロールについては、「権限オブジェクト」「権限項目」「権限プロファイル」などSAP用語がややこしいので、以下の章では改めて整理して解説します。
権限オブジェクト
権限オブジェクトは、SAPにおける権限制御の最小単位です。
権限オブジェクトには後述する「権限項目」が1個以上含まれており、この権限項目に具体的な数値(登録⇒1、変更⇒2、照会⇒3など)が設定されています。
この権限オブジェクトは、直接ユーザに割り当てることはできません。権限オブジェクトをロールに割り当て、ロールがユーザマスタに割り当てられることで権限が制御されます。

権限オブジェクトは利用可能トランザクションコードから自動的に生成することができますが、マニュアル登録もできます。
RFCでSAPを利用する場合など(SAPの画面は利用しないが、SAPの機能を利用する場合)などにマニュアルで権限オブジェクトを生成します。
例)
権限オブジェクト ⇒ 「G_GLTP」特別目的元帳データベース
権限項目 ⇒ 「ACTVT」アクティビティ
設定内容 ⇒ 「02:変更」「03:照会」
権限項目
「権限項目」は「権限オブジェクト」ごとに固有に保持されている設定項目です。
上記例で言えば、権限オブジェクト :「G_GLTP」特別目的元帳データベースには、権限項目「ACTVT」アクティビティがぶら下がっており、「ACTVT」ごとに固有の値が保持されている、という仕組みです。
「ACTVT」 以外にも「GLRLDNR」元帳など複数存在します。トランザクションコード単位より一歩詳細な制御を「権限オブジェクト」と「権限項目」が担います。
権限プロファイル
先ほど権限の生成手順の4ステップ目で「権限プロファイル」の生成を説明しました。
実はこの「権限プロファイル」こそが、ユーザの権限制御の正体です。
ロールを作成するということは最終的には「権限プロファイル」の生成を意味しており、これは権限ロールの作成を行うことで内部的に生成される仕組みです。
権限の作成をすると、内部的に権限プロファイルが生成され、ロールをユーザマスタに割り当てると同時に、権限プロファイルも割り当てられる、という流れです。
「権限プロファイル」は、マニュアルで更新することも可能ですが、基本的には権限ロールからの自動生成で対応します。
※SAPが公式にマニュアル更新を避けるよう推奨しています。
SAP―権限制御のまとめ
・SAPでは、①「誰が」、②「何をできるか」という2つの次元から権限制御を行います。
・①「誰が」の部分をユーザマスタで、②「何をできるか」をロールで管理しており、ロールの正体は「利用可能なトランザクションコード」と「権限」でした。
・権限は「権限オブジェクト」から成り立ち、「権限オブジェクト」は複数の「権限項目」から成り立っており、これを設定することで「権限プロファイル」がシステム的に生成。

・ロールをユーザに割り当てることで、権限プロファイルがユーザに割り当てられ、ユーザの権限制御が実現する。