SAP 権限設定を始める方必見!

プロアクシアコンサルティングでビジネスソリューション事業部に所属しております J.D です。

SAP ERP (以下、SAP) の技術者として16年間業務に携わってきました。
SAP 業務に着任当時は SD、MM のアドオン開発が主担当でしたが、その後会計業務の知識を習得し、現在では財務会計 (FI) のコンサルタントとして活動しています。

今回のテーマを選んだ理由について

SAP の権限設定とは、システム利用ユーザの権限を制御する機能で、使用するメニューや実行可能な操作を設定することが可能です。SAP を導入する場合必須の設定になりますが、多くのプロジェクトでは設計方法・実装方法に詳しい技術者が意外と少ないという印象を持っています。

そこで今回は権限の設定方法、知ってると便利な権限関連の情報をご紹介したいと思います。

権限を設定する目的

SAP は企業の基幹システムであり、様々な部門や業務を行うユーザが使用するため、組織や役割に応じた権限の管理が必要となります。特に内部統制上の観点から、不正な処理が行えないようにするため、職務・職責以上の操作ができないよう権限を設定し、ユーザには自身の業務を行うために必要なロールのみを適切に割り当てます。
これによって、ユーザーの権限をコントロールします。

権限設定の流れ

それでは、プロジェクトで行われる一般的な権限設定の流れについて説明します。
SAP では権限をロールというオブジェクトで設計・実装を行います。

1.ロールの設計

まず最初のステップとして、ロールの設計を行います。
① 部門・職務ごとに必要となる機能やメニュー構成を整理します (以下、権限マトリックス)。
② 所属する会社・部門のデータにのみアクセスができるようにするため、組織の権限を整理します (以下、組織表)。
※筆者は財務会計コンサルタントであるため FI 機能が中心となる事をご了承ください。

メニューと組織表を分けて設計するメリットは、新会社の立ち上げや子会社展開の際に組織表のみ追加すれば、メニューと組み合わせることですぐに利用できるという点です。
詳しくは後述のロールの実装で説明します。

2.ロールの実装

次に、設計の内容に基づいてロールの実装を行います。

3.ロールのテスト

最後に、職務に必要な機能のみが使用できる事を確認します。
テストユーザを準備し、次の流れでロールのテストを行います。

実装方法について

流れが理解できたところで、具体的な実装方法についても紹介します。
あくまで筆者がこれまで携わってきたプロジェクトの経験に基づく実装方法であるということはご留意頂ければと思います。

1.ロールについて

SAP システムではユーザ ID に対してロールを割り当てる事により、システムの利用が可能となります。
ロールには主に単一ロールと集合ロールの2種類があります。単一ロール、集合ロールをユーザ ID へ割当てる事が可能ですが、集合ロールを直接割当てる方が一般的な使い方です。

単一ロール

使用できるトランザクションコードの制御、CRUD (登録・照会・変更・削除) の制御、扱える組織データの制御を行います。単一ロールでは次の2種類のロールを設定します。
プロジェクトによって呼び方は異なる事があります。

メニューロールユーザが SAP GUI にログオンした際に、画面上に表示されるメニュー構成と機能の一覧を設定します。
権限マトリックスの内容に基づいて実装を行います。
組織ロール特定の組織へのデータの登録・照会・変更・削除の権限設定を行います。
組織表の内容に基づいて実装を行います。
集合ロール

複数の単一ロールを組み合わせて1つの集合ロールを設定します。

2.ロールの実装方法

ロール更新機能を使用してロールの実装を行います。実装するロールは設計段階で作成した権限マトリックスの内容を元に行います。

使用するトランザクション
PFCG:ロール更新

① 単一ロールの登録
② ユーザメニューの登録
③ メニューの完成

ユーザメニューはこれで実装が完了です。次に権限オブジェクトを設定していきます。

④ 権限の設定を行う

『権限』タブから『権限データ変更』ボタンを押下する。

⑤ ロールの生成を行う
⑥ 組織ロールの実装

組織表を元に組織ロールを実装します。

■ 会社コードによる伝票登録の設定例

■ 部門によるデータの更新・照会の設定例

⑦ 集合ロールの登録

3.ロールのテスト方法

実装したロールから職務に必要な機能が正常に使用できるか、許可された部門のデータのみ更新・照会ができるかをテストします。
まれに予期しない権限エラーが発生し、権限設定の見直しが必要な事があります。

① 実装したロールをテスト用ユーザに割り当てる。

ここではトランザクションコード:PFCG を使用します。

② 権限テストの事例

権限テストでの確認ポイントをいくつかご紹介します。

■ 他社の会社コード:1520 で会計伝票を登録しようとしたケース

■ 他部門:総務部-人事課(1500110002)で会計伝票を登録しようとしたケース

■ 自部門:総務部-総務課(1500110001)で会計伝票を登録しようとしたケース

知っていると便利な機能

裏トランザクションコードの追加方法

ユーザメニューには表示させたくないけど、特定機能の実行権限だけ付与したい時に行います。

権限テストで使用するトランザクションコード

知っていると便利なトランザクションコード
SU21権限オブジェクトの更新権限オブジェクトに設定する値を調べる時に使用。
SU53権限データ照会予期しない権限エラーが発生した場合に使用。
ST01システムトレーストランザクションがどのような権限オブジェクトを参照しているか調べる時に使用。

権限関連のテーブル

知っていると便利な権限関連のテーブル
AGR_DEFINEロールの定義
AGR_TCODESトランザクションコードへのロール割当
AGR_AGRS集合ロール内のロール
AGR_USERSユーザへのロール割当
AGR_1251活動グループの権限データ
AGR_1252権限の組織要素

苦労した事

会社組織の変更による組織設定の見直し

SAP を導入している大手のお客様では、会社組織の変更が定期的に発生します。筆者の経験では上期・下期終了前の年2回のケースが多かったです。

その度に組織表の見直しと組織の権限設定を再度見直す必要があり、一旦確定した組織設定がお客様からの依頼で再度変更になる事もあったりして 「え、また?」 と思いながらもその度に実装・テストをくり返した事がありました。

その経験から、会社追加や組織変更などに柔軟に対応できるように、出来る限り変化に対応しやすい権限設計にしておく事が重要と感じました。

最後に

複雑な内部統制要件にも対応できる権限制御の機能が標準で搭載されていることは SAP の優れたところだといえます。SAP の新規導入に限らず、運用保守の場面においてもユーザメニューの更新の依頼は度々発生します。

ロールは使い始めると奥は深いですが、機能の概要や目的が分かれば実装自体は決して難易度の高いものではありません。本ブログがスキルアップや自身の市場価値の向上を目指す SAP エンジニアの手助けになればと思います。