ユーザIDと権限設定の目的
SAPに限らずあらゆるシステムでは、ユーザIDを設定し、各人がそれを使ってログインしてシステムを使用する。
ユーザID管理は、システムのセキュリティを高く保つ上で非常に重要だ。
誰がどのような操作をしたのかは、ユーザIDによって「変更者」を常にスタンプしておけば、不正な変更があった場合でも後から追うことが出来る。
不正と思われるログインがあった場合は、そのユーザIDを停止させることが出来る。
ユーザIDが所属している部署や職階により、ユーザIDごとにシステム内で出来る事の権限を分けておけば、業務分掌を保ち不正のない正当な企業活動を遂行できる。
ユーザIDが残らず、勝手に出金伝票を計上出来てしまったなら、実体のない取引で会社の金を引き出すことすらできてしまうことになり、システムのセキュリティは揺らいでしまう。
このような意味で、ユーザIDは適切に管理され、適切な権限を与えられなければならない。
SAPユーザID
設定方法(Tr:SU01)
ユーザIDの登録変更はTr:SU01から行う。
新規ID設定方法・変更方法
Tr:SU01で任意のIDを指定して、画面左上の登録ボタン(白紙のようなアイコン)を押下する。
そのままユーザ情報入力画面に遷移する。
変更の場合は、任意のIDを指定して、画面左上の変更ボタン(鉛筆のようなアイコン)を押下する。
ユーザ属性情報
Tr:SU01のユーザ情報には以下のような項目がある。(重要な項目を解説)
アドレスタブ
ユーザの属性情報を設定する 。
項目 | 用途 |
敬称 | Mr. Ms.などを設定できる |
姓・名 | 名前を設定する |
学位称号 | Dr.などを設定する。日本ではあまり使わなかろう |
職務・部署 | 業務上の所属情報を入力する |
電話番号・メールアドレス | 連絡先を設定しておく |
Logonデータタブ
ログオンに関する情報を設定する。
・パスワード
初期パスを設定する
ユーザがロックされている場合は南京錠のアイコンが表示される。
・有効期限
ここに記載した有効期限を過ぎると、ログオンできなくなる。
・ユーザタイプ
「ダイアログ」を選ぶと通常のユーザID(画面との対話型ユーザ)
「システム」を選ぶとシステム用途のユーザとなる。
画面との対話型で使用するものではなく、RFCによるログオンなどに使用される。
SNCタブ
シングルサインオンのための設定をしておく場所。
シングルサインオンとは、パスワード入力画面なしでサインオンするための機能。
証明書を用いたサインオン方法だが、有効期限が切れていると使えない。
証明書の有効期限はシングルサインオンのトラストマネージャ(Tr:STRUSTSSO2)から確認できる。
デフォルトタブ
以下のような項目を設定しておく。
・デフォルトのログオン言語
JA、ENなど言語を設定しておく。
・出力デバイス(印刷機のID)
・10進表記
数値の表示方法。
各国によって小数点や3桁区切りの記号が異なるので、個々人の見え方を設定できる。
・日付書式
日付の表記方法も各国によって異なるので、個々人の見え方を設定できる。
Systemタブ
当該のユーザがどのシステム(サーバー・クライアント)で有効なのかを示す。
CUA(Central User Administration)集中ユーザ管理システムのために必要な設定。
集中ユーザ管理システムとは、一つのマスタクライアントから集中的にユーザを管理するシステム。
マスタクライアントでユーザを作成すると、マスタクライアントとRFC接続でつながっている環境全てにユーザが反映される。
同じく、ユーザロックをするとすべての環境でロックされる。個別システムでユーザ管理をせずに済む。
ロールタブ
ユーザに対して権限ロールを割り当てるためのタブ。
プロファイルタブ
ユーザに対して権限プロファイルを割り当てるためのタブ。
ユーザに全権限を与える場合はSAP_ALLを設定する。
※よほどのことがない限り本番機でSAP_ALLは与えない
ライセンスタブ
ユーザの契約ユーザタイプを表す。
SAPはユーザ数に応じたライセンス料を支払う必要がある。
ユーザのカウント方法は、SAPとユーザ企業の契約内容による。
Tr:USMMから基本設定を行う。
ユーザロック
不要なユーザや、使用を停止すべきユーザは、ロックによりシステムを使わせないように設定できる。
ロックステータス
SAPのユーザIDに付与されるロック状態にはいくつかの種類があり、それぞれにロックステータス番号が設定されている。
・ロックステータス:0
ロックされていない状態
・ロックステータス:32
グローバルアカウントロック。CUAによりロックされた状態。
・ロックステータス:64
ローカルアカウントロック。個別環境の管理者によりロック処理をされたときに付与される。
・ロックステータス:128
ログオン不正ロック。ログオン画面で連続して複数回、ログオンに失敗した場合に付与される。
・複数タイプのロックがかかった場合は?
複数種類のロックが複合的にユーザIDに付与された場合、ロック番号は個々のロック番号の合計が設定される。
つまり、ログオン不正ロックがかかりつつ、管理者からもロックされた場合、下記のような状態となる。
ローカルアカウントロック(64)+ログオン不正ロック(128)=192
この数値はテーブルUSR02で確認できる。
ロックステータスの確認方法
データベーステーブルUSR02にユーザごとのロック状態が記録される。
ステータスに関わらず単にロックされているか否かだけならば、Tr:SU01で南京錠のアイコンの有無で確認できる。
シングルサインオンとユーザロックの関係
シングルサインオンでは、ロックステータス128は無視される。
(128ロック状態であってもシングルサインオンだとログオン可能。)
ロック方法・ロック解除方法
ユーザロックを行うまたは解除するには、Tr:SU01の画面で解除したいユーザIDを指定し、画面上部のロック/ロック解除ボタン(南京錠のアイコン)を押せば良い。
汎用モジュールBAPI_USER_LOCKを使って、自動での一括付与・解除などをアドオン実装することもできる。
開発者キー
技術者用のユーザIDでは、開発機で開発作業を行うことが必要となる。
プログラム変更を行うとき、開発者キーの入力が求められるため、ユーザにつき一つ、開発者キー(オブジェクトキー)の申請と発行が必要となる。
開発者キーはユーザごとに申請してSAPから発行してもらうことが必要。
2020年現在、SAP support portalのページより【My Support(画面左上メニュー) >開発者キー&オブジェクトキー(SSCR) >SSCRアプリケーションを使用する】で、現在取得済みのSAPユーザと開発者キーの一覧が表示される。
Registerボタンを押下し、ユーザIDと対象システムを選択し、申請する。
開発者キーは待つことなく一瞬で発行される。
SAPにおける権限管理
権限ロールの概要
権限ロールとは
SAPでは権限の設定単位として「権限ロール」というオブジェクトを用いる。
ロールとはRole:役割のことで、業務上の職位職階を表す。
購買業務担当者の権限ロール ⇒発注の起票は出来るが、それを承認する権限を持たない。
購買業務責任者の権限ロール ⇒発注の起票は出来ず、承認するのみに権限を限定する。
この権限ロールをユーザに対して割り当てることで、ユーザは実行権限を与えられることとなる。
ユーザへの割当はTr:SU01から行う。
集合ロール/単体ロール
権限ロールは親子関係として設定することもでき、単体ロールの中に種々の権限を設定した後、複数の単体ロールをまとめた集合ロールを作成することが出来る。
単体ロールを細かい機能単位で作成しておき、組み合わせて付与したい場合に集合ロールを使うような運用が有効となる。
・例えば先の例でいうと、集合ロールを職位職階を表す単位で定義する
集合ロールA:購買業務担当者
集合ロールB:購買業務責任者
・さらに、単体ロールとして以下のようなロールを定義する。
単体ロール1:購買伝票参照権限
単体ロール2:購買伝票登録権限
単体ロール3:購買伝票承認権限
・集合ロールに単体ロールを割り当てる
単体ロール1は参照権限なので、両集合ロールに共通的に付与する。
単体ロール2の登録権限は、購買業務担当者(集合ロールA)のみに割り当てる。
単体ロール3の承認権限は、購買業務責任者(集合ロールB)のみに割り当てる。
ユーザへの付与
集合ロールと単体ロールのどちらもユーザに割り当てることが出来る。
また、ロールは複数、ユーザに割り当てることが出来る。割当はTr:SU01から行う。
ユーザには基本的に集合ロールを付与するのが望ましい。単体ロールをユーザに個別に複数付与してしまうと、付け外し作業が面倒となる。
また、ユーザが今どの権限を持っているかを調べるとき、集合ロール単位での把握の方が容易となるし、ユーザが部署移動しても集合ロールを付け替えるだけで済む。
集合ロールと単体ロールを混在してユーザに付与する運用は、権限把握が煩雑になるので、やむを得ない場合を除き避けるべき。
権限ロール設定(Tr:PFCG)
権限ロールはTr:PFCGから作成・設定可能
作成するRoleのIDを入力し「ロール登録」または「集合ロール登録」のボタンを押す。
Descriptionにはロールの名称(購買業務担当者、など)を定義する。
メニュータブ
当該のロールが割り当たっているユーザ向けに表示する、トランザクションメニューツリーをデザインできる。
権限タブ
権限データ変更(鉛筆のアイコン)から権限の実体をデザインする画面に遷移する。
ロール変更:権限
ここでは権限オブジェクトごとに設定値を割り当てる。
・トランザクション権限の割当
トランザクション権限を付与したい場合、「マニュアル」ボタンから権限オブジェクト「S_TCODE」を追加する。
画面上に「トランザクション開始時のトランザクションコードチェック」というオブジェクトが追加されるので、ツリーを開く。
※画面上部メニューの【ユーティリティ >技術名称オン】を選択しておくと、オブジェクトIDなどが表示される。
トランザクションコードに、Tr:ME23Nを割り当てる。すると、このロールは「ME23N」を実行する権限が与えられたことになる。
・伝票タイプ権限の割当
例えば『購買発注伝票タイプ「AAA」で変更参照ができる権限』という権限を設定する。
購買発注伝票タイプの権限オブジェクト「M_BEST_BSA」を先ほどと同様の手順で画面に追加する。
すると、ツリーを掘り下げると「アクティビティ」と「購買伝票タイプ」という2つの項目が表れる。
①購買伝票タイプには「AAA」を設定する。
②次にアクティビティを設定する。アクティビティとは、その伝票タイプ(対象オブジェクト)に対してどのような操作が出来るかを定義するコードである。
アクティビティは、「01:登録 02:変更 03:照会」などとなっている。今回は変更・参照権限なので、02および03をチェックする。
これで目的の設定は完了となる。
保存を押した後、生成ボタンを押して画面から離れる。これで権限プロファイルが生成され、権限ロールの設定が有効になる。
権限設定のアプローチ
上記のように権限を一つ一つ設定していくのだが、SAPは権限オブジェクトが大量にあり、かなり事細かな設定作業が必要となる。
例えば、上記の設定だけでは購買発注を変更したり紹介することは出来ない。
購買発注には様々な項目があり、例えば購買組織、購買グループ、プラントといったものだ。
これらには全てチェック用の権限オブジェクトがあり、すべての設定を満たさなければ伝票操作ができない。
・M_BEST_EKO 購買発注の購買組織
・M_BEST_EKG 購買発注の購買グループ
・M_BEST_WRK 購買発注のプラント
SAPコンサルタントは必要な権限オブジェクトをざっくりと概念的に覚えているものの、コードまで含めて覚えているわけではない。(そういう記憶力が良い人もいるかもしれないが)
権限を設定するときは、まずTo-beの業務および組織設定、それに基づく業務分掌設定(職位職階に応じたやっていいことと悪いことの切り分け)を行い、それに応じて使用可能なトランザクションとトランザクション内の挙動を設計し、それに応じた権限オブジェクトの設定を行っていくというように、上流から下流への過程を踏む必要がある。
ただし、落とし込む途中でも、ちょくちょく要件が実現可能かの動作確認は挟んだ方が良い。後になって実現できない権限設計だったと判明しても、手戻りが大変難しいためだ。
権限オブジェクトの調べ方
Tr:SU21 権限オブジェクトを一覧で調べることが出来る。
Tr:SU24 トランザクションコード内でチェックされる権限オブジェクトを確認できる。
権限エラーの調べ方
権限エラーが起きた際には、Tr:SU53を入力する。
権限エラー直後に入力することで、どの権限オブジェクトのどの値でエラーになったか(不足権限)がわかる。
ユーザ・権限の管理の諸機能
ユーザ/権限に関連するトランザクション
・ユーザ情報システム(Tr:SUIM)
様々な切り口からユーザ情報や権限情報を検索できる。
例えば特定のトランザクションを使用可能なユーザ一覧、特定の伝票タイプの伝票変更権限を持つユーザの一覧、といった形で検索一覧化が可能。
※このTr:SUIMは、検索や比較用トランザクションの一覧メニューである。
・ロール比較(Tr:S_BCE_68001432)
ロール同士の権限内容の比較を行うことが出来る。
左右で保有オブジェクト単位で一覧化が出来、設定値に差異があるところを赤く表示する。
ある程度共通の設定の権限ロールを作成し、特定の権限のみに差異を付けたい場合、この機能を使って比較検討するといった用途に使用できる。この画面にはTr:SUIMから遷移することも出来る。
・ユーザ照会(Tr:SU01D)
Tr:SU01から編集機能を除外し参照のみに限定した機能。
ユーザ情報の閲覧は一般ユーザにも可能とする場合に、Tr:SU01不許可、Tr:SU01D許可として設定しておく。
・ユーザ管理:一括変更(Tr:SU10)
ユーザ情報の一括変更を行う。一斉ロック解除などに便利。
ユーザ/権限に関連するDBテーブル
ユーザID管理で使用するテーブル
・USR01 ユーザマスタデータ(実行時間データ)
・USR02 ログオンデータ
・USR21 ユーザ名アドレスキーの割当
・ADR6 SMTP番号(アドレス管理)
メールアドレスを一覧で抽出するにはいくつかのテーブルを経由する。
まずUSR21でユーザIDごとの個人番号を抽出し、個人番号を用いてADR6を抽出する。ADR6にメールアドレスが格納されている。
・USER_ADDR ビュー:USER_ADDR
ユーザ情報を一覧で取り出したければ、USER_ADDRを使用するのが便利。
権限管理で使用するテーブル
・AGR_USERS ユーザへのロール割当
ユーザIDに何のロールが割り当たっているか確認可能。集合ロールかそうでないかも検索条件で切り分け可能。
・AGR_DEFINE ロール定義
ロールの名称一覧を取得したいときに使用する。
・AGR_1251 活動グループの権限データ
ロールに対し割り当たっている権限オブジェクトとその設定値を取得できる。
・AGR_AGRS 集合ロール内のロール
集合ロールに割り当たっている単体ロールを一覧抽出する際に使う。
SAPの基礎を学びたい場合の参考書
・図解入門 よくわかる最新SAPの導入と運用
初学者がなぜかみんな行き着いて買っている本がこれ。モジュールを広くカバーしており、まずSAPの全体感を掴むという意味では有効だ。
SAPの参考書事情については以下の記事もご参考に。