[SAP] S/4HANA 1909 SAP_ALLプロファイルから全照会権限ロールを作った

SAPシステムを運用していく上で本番環境にあってほしいSAP全機能の照会ONLY権限。全機能を実行可能なSAP_ALLという権限プロファイルは有名ですが、それでは登録・更新・削除・実行・etcと何でもできてしまいます。そうじゃなくて欲しいのはただ照会のみの権限プロファイル。ところがそういったものが見当たりません。ググってもACTVT=03でどや!程度しか見つからない始末。
じゃあひとつ権限ロールとして作ってみよう、というのがこの記事です。

この記事で書かれていること

SAP_ALLプロファイルをもとに作成した照会権限ロールの設定内容の考え方・作り方・権限ロールの実物です。
作成環境はS/4HANA 1909 FP02(2020/05リリース)です。

対象読者

メインターゲットは「SAP_ALLの照会権限とかググってもACTVT=03にしろとしか出てこなくて、そーじゃないんだよなぁ」と考えているベーシス系コンサルタントの方々です。ただ照会権限のACTVTに何を与えたのかは業務系の権限ロールにも跳ねる内容なので業務系のコンサルタント・エンジニアにとっては参考になると考えています。

SAP権限の作成方法

標準機能で作るとマウスでポチポチ。1000をゆうに超える権限項目に対してポチポチ。。。
コンサルタントは体力勝負なところもありますが、これではさすがに腱鞘炎になります。
そう、SAP権限はホワイトリストを作成するが如く、許可する権限(技術的には権限オブジェクトと呼びます)を一つずつ付与していきます。また個々の要件に合わせて各権限オブジェクト配下にあるできることの詳細(権限項目と各項目の権限値)を設定します。

筆者がこんな記事を出そうと思った理由

昔、この記事で書かれている手順を知らずにマウスでポチポチやって腱鞘炎になったからです。
知ってる・知らずでは身体への負担が大違い。ベーシス系で権限触る人は絶対マスターしたほうが良いのに、自分の周りで知らない人が多かったのです。

SAPのアクティビティ権限項目(ACTVT)の値一覧

下表はS/4HANA 1909 FP02における各機能の操作に関わる権限値です。
「照会権限へ設定してよい値」は、責任取れないのですが(笑)「X」の入っている値を使います。
ぜひ参考にしてみて下さい。
いわゆる「03(照会)」だけでは照会権限と称するには足りず、変更文書やアーカイブ情報など参照できません。辛いですね。

アクティビティ(技術名称)テキスト(英語)テキスト(日本語)照会権限へ設定してよい値
01Add or Create追加または登録
02Change変更
03Display照会X
04Print, edit messages印刷、メッセージ編集
05Lockロック
06Delete削除
07Activate, generate有効化、生成
08Display change documents変更文書照会X
09Display prices価格照会X
0ACheck Documents for Processプロセスの文書のチェック
0BStatus Change in Substitute代理ユーザのステータス変更
10Post転記
11Change number range status番号範囲ステータス変更
12Maint.and gen.change document変更伝票の更新および生成
13Initialize number levels番号レベル初期化
14Field select.:Generate screen項目選択: 画面生成
15Field select.:Assign table項目選択: テーブル割当
16Execute実行
17Maintain number range object番号範囲オブジェクト更新
18Deliveries from coll. proc.一括出荷処理
19Invoices from coll. proc一括請求処理
20Transport without translation翻訳なしで移送
21Transport移送
22Enter, Include, Assign入力、取込、割当
23Maintain更新
24Archiveアーカイブ
25Reloadリロード
26Change customer account group得意先勘定グループ変更
27Display totals records全レコード照会X
28Display line items明細照会X
29Display saved data保存済データ照会X
30Determine設定
31Confirm確認
32Save保存
33Read読込X
34Write書込
35Output出力
36Extended maintenance拡張更新
37Accept受入
38Perform実行
39Checkチェック
40Create in DBDB に登録
41Delete in DBDB から削除
42Convert to DBDB に変換
43Releaseリリース
44Flagフラグ
45Allow許可
46Mergeマージ
47Borrow借用
48Simulateシミュレーション
49Request依頼
50Move移動
51Initialize初期化
52Change application startアプリケーション開始変更
53Display application startアプリケーション開始照会X
54Display application archiveアプリケーションアーカイブ照会X
55Change application archiveアプリケーションアーカイブ変更
56Display archiveアーカイブ照会X
57Save archiveアーカイブ保存
58Display takeover引継ぎ照会X
59Distribute配信
60Importインポート
61Exportエクスポート
62Create automatic Ledger自動元帳作成
63Activate有効化
64Generate生成
65Reorganize再編成
66Refreshリフレッシュ
67Translate翻訳
68Modelモデル
69Discard破棄
70Administer管理者
71Analyze分析
72Plan計画
73Execute Digital Signatureデジタル署名実行
74Revoke approval承認取消
75Remove解除
76Enter入力
77Pre-enter事前入力
78Assign割当
79Assign Role to Composite Role集合ロールへのロールの割当
80Print印刷
81Schedule計画
82Supplement補足
83Counterconfirm取引先確認
84Settle決済
85Reverse取消
86Rebook再予約
87Returnリターン
88Perform実行
89Force Posting強制転記
90Copyコピー
91Reactivate再有効化
92Create from Templateテンプレートから登録
93Calculate計算
94Override上書き
95Unlockロック解除
96Reject却下
97Set設定
98Mark for releaseリリースマーク
99Create Invoice List請求書一覧登録
A0Receive受信
A1Accrue利子
A2Pay支払
A3Change statusステータス変更
A4Resubmit再実行
A5Display reportsレポート照会X
A6Read with filterフィルタによる読込みX
A7Write with filterフィルタによる書込み
A8Process mass dataプロセス一括データ
A9Send送信
AAPrint Again再印刷
ABSettle決済
ACChange Outbound Status送信ステータス変更
ADChange Inbound Status受信ステータス変更
AEChange User-Definedユーザ定義の変更
AFPromptsプロンプト
AGRecord
AM
B1Display permitted values有効値表示X
B2Complete Technically技術的完了
B3Derive派生
B4Deactivate無効化
B5Display History履歴照会X
B6Create Fileファイル登録
B8Execute Again再実行
B9Post Parked Document未転記伝票の転記
BDMaintain obj. in non-OwnerSys.非 OwnerSys のオブジェクト更新
BEIMG projectionIMG 計画立案
C1Maintenance of payment cards支払カード更新
C2Display of payment cards支払カード表示X
C3Maintenance of manual auth.マニュアル権限更新
C4Close Out処分
C5Reopen再開
C6
C8Confirm change変更確認
CACreate Ad Hoc Eventアドホックイベント登録
CDChange Drug薬品変更
CN
COComplete完了
CPChange Planned Total Dose計画総投与量の変更
CSChange Cash Flow Statusキャッシュフローステータス変更
D1Copyコピー
D3Detailed Display詳細表示X
D4Fulfill履行
D5Processプロセス
D6Cancel中止
D7Create AGRAGR 登録
D8Complete完了
D9Exit終了
DDDelete Draftドラフト削除
DE
DF
DGChange Goal Contribution個別目標値変更
DIChange Incentiveインセンティブ変更
DLDownloadダウンロード
DPDelete planプラン削除
DRRel. frm Rej. When Elig. Fail適格時の却下からのリリース失敗
E0Save extract抽出保存
E6Delete own extracts自分の抽出削除
E7Delete external extracts外部抽出削除
ECExecution Without Check
EPPrioritise extract抽出優先
EUExecute Unit Tests
F1Approve承認
F4Display in Value Help入力ヘルプで表示X
FACancel中止
FBMaintenance of Header Dataヘッダデータの更新
FPChange customer field selectnカスタマ項目選択変更
FS
G1Maintain Budget予算更新
G2Billing請求管理
G3Maintain Overhead Costs間接費更新
G4Maintain Reevaluation再評価更新
G5Pre-enter事前入力
G6Transfer Budget予算振替
G7Reverse取消
GLGeneral overview一般概要
H1Deactivate無効化
H2Activate Loggingロギング有効化
H3Deactivate Loggingロギング無効化
HDHold保留
I1Submit送信
I2Rebook再予約
IAInactive無効
KAActivate notice通知有効化
KIKnock Inノックイン
KOKnock Outノックアウト
KSReverse notice通知取消
KUGive notice解約通知
L0All functions全機能
L1Function range level 1機能範囲レベル 1
L2Function range level 2機能範囲レベル 2
LMChange LDAP MappingLDAP マッピングの変更
LSChange LDAP Sync. SwitchLDAP 同期化スイッチの変更
MADeactivate mod.assistantMod. 割当無効化
MBExit終了
MSSchedule Task Listタスクリストスケジュール
N1Release DBCDBC リリース
N2Block and Release DBCDBC のブロックとリリース
N3Validate DBCDBC のチェック
N4Reopen DBCDBC 再オープン
N5Process Rejected DBC拒否された DBC の処理
N6Bill DBC Without Validatingチェックなしで DBC 請求
N7Process Special Dummy DBC特殊ダミー DBC の処理
N8DBC Type Changes in Process処理中の DBC タイプ変更
NO
NP
O1Overbookオーバーブッキング
O2Overbook Appt Always Possibleオーバーブッキングが常に可能
OAOCS-AOF FunctionsOCS-AOF 機能
OC
OMCall Surgery Monitor手術モニタ
ONCreate Secondary Surgery二次手術の登録
OPStart Surgery手術開始
OR
OVExit Material Entry Function品目入力機能の終了
P0Accept CCMS CSM dataCCMS CSM データ受領
P1Edit CCMS CSM dataCCMS CSM データ編集
P2Maintain CCMS CSM methodsCCMS CSM メソッド更新
P3Register CCMS CSM remote systmCCMS CSM リモートシステム登録
P4Release Plan計画リリース
PAOpen Period期間オープン
PBClose Period会計期間締め
PCOpen Consolid. Grp Processing連結グループ処理のオープン
PDClose Consolid. Unit Processng連結グループ処理のクローズ
PPSet Productive本稼動設定
PQPropose
PRProcess Correspondence連絡文書を処理
PS
PUPublishパブリッシュ
PZPersonalizeパーソナライゼーション
RERestart再実行
RF
RLReloadリロード
RORoll Outロールアウト
RSSend to New Recipient新規受信者への送信
RTResetリセット
S1Edit templateテンプレート編集
S2Edit specification仕様編集
SESearch検索X
SKSkipスキップ
SOEdit in Sourcingソーシングの編集
SPExit終了
STStart開始
SZAssign Switch Framework Switch切替フレームワークスイッチ割当
T0Display Time Slotsタイムスロット表示X
T1Maintain Time Slotsタイムスロット更新
T2
T3
T4
T5
T6
T7
U2Compare business volumes取引量比較
U3Change business volume comp.取引量比較変更
U4Add business volume data取引量データ追加
ULUploadアップロード
US
V1Create versionバージョン登録
V2Change Versionバージョン変更
V3Display Versionバージョン照会X
V4Delete Versionバージョン削除
V5Transport Versionバージョン転送
V6Delete Version Headerバージョンヘッダ削除
VECreate an Enhancement ID拡張 ID 登録
VFExpired期限終了
VPVIPVIP
W1Debugデバッグ
W2External Start外部起動
W3Enter Expunge Date抹消日入力
W4Forwardフォワード
W5Redo Role Resolutionロール決定のやり直し
W6Start Workflows with Errorsエラーのあるワークフロー開始
W7Cancel Workflowワークフロー中止
W8Restart After Errorエラー後再実行
W9Workflow BRF+ Generationワークフロー BRF+ 生成
WAConfigure Scenarioシナリオ設定
WBEdit Workflow Instanceワークフローインスタンス編集

他にも制御系の権限項目が…

上記のACTVTのみが動作制御を実施している権限項目ではありません。ERP6.0やS/4HANAを使っている人ならご存知SM36/SM37のジョブなんぞは、JOBACTIONという権限項目で制御されており、値は下表の通りです。他にも複数の権限項目があります。。。
これらの権限項目も変更することで、本当の照会権限を作ることができます。

アクティビティ(技術名称)テキスト(英語)テキスト(日本語)照会権限へ設定してよい値
DELEDelete Background Jobsバックグラウンドジョブ削除
LISTObsolete無効X
MODIModify Other Users’ Jobs他のユーザのジョブを修正
PLANCopy or repeat jobs.ジョブをコピーまたは反復
PROTDisplay Job Processing Logジョブ処理ログの照会X
RELERelease Jobs (Released Automatically When Scheduled)ジョブのリリース (スケジュール時に自動リリース)
SHOWDisplay Job Queueジョブキューの照会X

作成方針

ACTVTだけでも90点は取れそうなので、上述の照会権限に付与しても良い値を設定していきます。
(実際に作る際には、ちゃんと各権限項目ごとに設定をポチポチやっていきましょう。やり方はACTVTと同じです。)
ロール名は「Y_BC_DISPLAY_ALL」とし、SAP_ALLからロールを生成して各権限項目の値を設定します。このあたりはTrCD:PFCGを触ったことのあるベーシスな方はご存知と思いますので飛ばします。問題はその先の手順ですので。

権限項目に設定済みの権限値の一括置換

これが今回のキモです。ACTVTを例に権限値を一括置換する手順を記載します。他の権限項目も同様に置換できます。

1.TrCD:PFCGにて、予めSAP_ALLをテンプレートとして作成した「Y_BC_DISPLAY_ALL」をロールに入力した状態で、ユーティリティから「一括更新権限」を開きます。

2.オプションを設定します。記載している項目のみ触るようにして下さい。
■標準選択
ロール:Y_BC_DISPLAY_ALL
実行モード(そんなこと書いてないですが便宜上):直接実行
■項目変更のタイプ
項目に対する権限の項目値の変更(オブジェクト非依存)
■項目に対する権限の項目値の変更(オブジェクト非依存) ※ここは項目変更のタイプの選択内容で変わります
変更:すべて置換
項目名:ACTVT
 ※ここで「ACTVT」や「ACTION」のキーワードを使って、その他の権限項目を探します。
■オプション
すべてチェックを外す


(上図の続き)

3.項目名の右にある「値」をクリックします。

4.上述の表に従って照会系の権限値を選択し、「保存」ボタンをクリックします。

5.実行します。

6.変更結果が表示されるので「プロファイル生成」をクリックします。
画面下部にエラーログが出ていますが、「この権限オブジェクトに対しては”xx”という権限値は無効だよ」という意味のメッセージです。権限オブジェクトそれぞれのなかで、権限項目ACTVTで使用可能な権限値が決まっているので当たり前です。こちらとしては照会系の権限値として使える値を全部指定しているので、使えないものを無視してくれるのは狙い通りです。
他方、画面上部ではACTVT「*」が削られ新たに「03」が追加されていることが値比較・開始値の列から分かります。

7.プロファイル生成が完了したら、おしまいです。

実物の権限ロール

実物の権限ロールのテキスト内容を貼ろうとしたら、なんとQiitaの文字数制限に引っかかってしまい貼れませんでした。
仕方ないのでGoogle Driveで共有します。
こちらは今回作成した権限ロールの実物です。TrCD:PFCGにてアップロードできます。
実は内容としては、ACTVT以外にも、XXX_ACTVTやXXX_ACTIONといった権限項目は一通り洗って照会権限にしています。ヤバそうな項目は「’ ‘」と指定して無効化しています。
ただ、テストしてないのでそのまま使って何か起きても責任は取れませんのでご注意下さい。

カテゴリー:

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中