SAPにおける権限管理の仕組み(ロール)や設定方法とは?(vol.104)

  • 公開日:2023.10.02

SAPシステムは、様々な部署/権限を持つユーザーが使用することになるため、業務/職務に応じた権限の管理が必要となります。適切な権限管理を行わないと、例えば、一部のユーザーのみが参照できるようにしたい情報へ誰でもアクセスできてしまう(その結果、企業で管理する情報が外部へ漏洩してしまう)、システムを勝手に更新されてしまう、といったリスクが生じます。

そこで本ブログ記事では、SAPシステムにおける権限管理の仕組みや設定方法について解説します。
*本ブログの「SAPシステム」は、「SAP ERP」および「SAP S/4HANA」を指します。

SAPにおける権限管理の考え方(ユーザーとロール)

SAPシステムの権限管理における重要な要素として、「ユーザー」と「役割(ロール)」の2点があります。
SAPシステムでは、「ユーザー」に対して「役割(ロール)」を割り当てることで、ユーザーのシステム利用が可能となります。

例えば、調達部門に所属する「ユーザー」に、購買登録の「役割(ロール)」を紐づけることで、購買登録が行えるようになります。
*例え、「ユーザー」を作成したとしても、「役割(ロール)」が紐づいていない「ユーザー」は、システムの利用ができないも同然の状態といえます。

「ユーザー」作成時は、その担当者がどういった業務を行い、どのような職務権限を与える必要があるかを事前に把握したうえで、「役割(ロール)」を割り当てる必要があります。

SAPにおける権限管理の仕組み・構成要素

続いて、SAPシステムの権限管理に関する仕組み・構造を解説します。
SAPシステムの権限は、次の3つの要素で構成されます。

1. トランザクションコード(Tr-Cd)
2. 権限オブジェクト
3. 権限項目

  1. トランザクションコード(Tr-Cd)
    「トランザクションコード」とは、SAPシステムの処理画面やプログラムを呼び出す文字列や数列のことです。もう少し噛み砕いて言うと、「トランザクションコード」とは、“特定の処理画面やプログラムを起動するためのコード“です。
    SAPシステムの処理画面は数多くあり、目的の処理画面にたどり着くまでに複数ページを遷移しなければならないケースも多々あります。そんな時、この「トランザクションコード」を入力すれば、直接、目的の処理画面へアクセスすることが可能となります。
    ユーザーは「トランザクションコード」を介してSAPシステムを操作するのですが、操作可能な内容は「権限オブジェクト」により管理されており、「権限オブジェクト」の内容は「権限項目」の設定に準じます。
  2. 権限オブジェクト
    「権限オブジェクト」は、SAPシステムにおける権限制御の最小単位であり、トランザクションコードによる処理の単位(例えば、S_DATASET:ファイルアクセス権限 や S_USER_GRP:ユーザーマスタ管理 などの単位)で作成されます
    「権限オブジェクト」は、「トランザクションコード」から自動的に生成することができる=「トランザクションコード」に紐づく「権限オブジェクト」が自動で登録されるため、ひとつひとつ覚える必要はありません。もちろん、個別のマニュアル設定も可能です。
  3. 権限項目
    「権限項目」では、実行可能なアクション(例えば、ACTVT:CRUD処理 や FILENAME:どのファイルを編集できるか など)の制御や、そのアクションを実行可能な組織の制御などを設定できます
    *CRUDとは、CREATE(生成)/READ(読み込み)/UPDATE(更新)/DELETE(削除)の頭文字で、例えば、マスタの登録/参照/変更/削除を行う画面を想像してもらうとわかりやすいかと思います。

例えば、購買伝票という「権限オブジェクト」があるとします。「権限項目」で、登録/参照/更新/削除の可否を設定します。特定のロールに購買伝票の「権限オブジェクト」を割り当てることで、ユーザーが「トランザクションコード」を実行した際、そのロールに紐づいた「権限オブジェクト」に応じた処理が可能となります。

<イメージ図>

このように、「権限項目」の設定が異なる「権限オブジェクト」をロールに割り当てることで、伝票の登録/参照/更新が可能なユーザーと参照のみ可能なユーザーを区別することが可能です。
また、同じ「トランザクションコード」を実行したとしても、ロール(に紐づいた「権限オブジェクト」)が異なれば、実行できる処理が異なることになります。上図では、わかりやすい例として、ロールに対して1つの権限オブジェクトのみが紐づいていることとしましたが、実際は複数の「権限オブジェクト」をロールに割り当てることが可能です。

SAPにおける実際の権限管理アプローチ(単体ロールと集合ロール)

ここまで、一通りSAPシステムにおける権限管理の仕組み・設定方法について解説して参りましたが、もう少し現実的な権限管理の方法についてご説明します。

実は、ロールには「単体ロール」と「集合ロール」の2つがあります。
一言で述べると、「集合ロール」は「単体ロール」の集まりです。
*各処理を直接、「集合ロール」に割り当てることも可能です。

通常、「単体ロール」がユーザーに割り当てられることは少なく、「集合ロール」がユーザーに割り当てられます。理由は、「単体ロール」をユーザーに対して多量に紐づけると、ユーザーごとに個別の管理が必要となり、運用が煩雑になって管理が難しくなるためです。そのため、ある程度のまとまりを持った「集合ロール」をユーザーに紐づけることが必要になります。SAPシステムで使用する機能や組織の数に応じて、ロールの数や組み合わせを決定する必要があります。

実際の導入や運用では、例えば、下図のようなロールと権限オブジェクトが設定されるイメージとなります。

SAP導入時の権限実装フロー

SAPシステムを導入する際は、次の流れで進めていくことが想定されます。

  1. 権限設計:メニュー一覧や権限一覧を作成する
  2. 権限設定:各メニューや機能開発が完了した後、結合テストで権限設定(ロール作成)を行う
  3. 権限単体テスト:結合テスト後期に、ロール別に想定している各種画面の使用可否を確認する
  4. 運用テスト:運用テストで、本番運用で想定されているロールを利用して各種業務マニュアル等に従い使用可能か確認する

SAPシステムの導入プロジェクトにおいてアドオン開発をする場合、アドオン開発が完了する前にロールの定義をすべて完了させることはできないため、システム設計のタイミングで権限の設計を並行して行います。

設計の際に重要になってくるのが、ユーザーに割り当てるロールの数です。なるべく少量のロールで管理することが望まれますが、冒頭に述べたように情報管理の観点を考慮したり、開発や結合テストの工程で結果的にロールの数が多くなってしまうことも少なくないでしょう。権限設定時に定めた内容から外れないように、なるべくロールを増やしすぎないような管理が必要になります。

まとめ

さてここまで、SAPシステムにおける権限設定の基本的な考え方や構成要素、設定方法について解説して参りました。
SAPシステムは重要な情報・業務を司る基幹システムだからこそ、きちんと権限を管理し、統制を図ることが非常に重要です。一人ひとりのユーザーがどういった業務を行い、どのような職務権限を与える必要があるかをきちんと把握したうえで、適切なロールを割り当てましょう。

※本記事は、2023年10月1日時点の情報をもとに作成しています。製品/サービスに関する詳しいお問い合わせは、電通総研のWebサイトからお問い合わせください。
https://erp.dentsusoken.com/inquiry/