権限ロールに紐づく情報を一括で取得したい場合、標準テーブルから落とすのが便利だ。
権限のテーブル構成は誰かに教えてもらわないとあまり知る機会もないので、権限の設計や保守に必要な主要テーブルおよび用途については本記事にまとめておく。
SAP権限ロール系テーブルまとめと用途解説
テーブル:AGR_AGRS(集合ロール内のロール)
単体ロールをまとめたロールが集合ロールだが、AGR_AGRSでは集合ロールと単体ロール間の割当関係を一覧化できる。
テーブル:AGR_DEFINE(ロール定義)
AGR_DEFINEはロールの名称をまとめて取得するときに活用できる。
テーブル:AGR_USERS(ユーザへのロール割当)
ユーザIDに対する権限ロールの割当が格納されているテーブル。
特定のロールの割当先ユーザを確認する際など便利。逆に、ユーザに割り当たっているロールを抽出することも出来る。
このテーブルではユーザに割り当たっている集合ロールと単体ロールの両方が取得できる。
検索条件で項目「フラグ:集合ロールからのロール」(COL_FLAG)を=空白指定することで、集合ロール配下の子ロールとして割り当たっているものを除外することが出来るので、このフラグ項目はユーザの集合ロールのみ取得したい時に活用できる。
テーブル:AGR_1251(活動グループの権限データ)
各ロールごとの権限オブジェクト、およびそれに紐づく設定値を照会できる。
権限オブジェクト、権限項目(ACTVTやTCD、WERKSなど)、権限値が格納されている。
このテーブルを使うことで、例えば「ある権限オブジェクトを保持し、かつACTVT(活動)02が可能なもの」という検索もできる。
ただ、この検索はTr:SUIMの「ロール >権限値別」の検索を使う方が良いかもしれない。
両方知っておけば、場合によってTr:SUIMとテーブル:AGR_1251を使い分けることができ、権限調査の自由度が上がる。
ちなみに、権限ロールのオブジェクトは、割り当たってはいるが無効化されているものも含まれる。
テーブルの項目「DELETED」で検索条件を絞ることで、そうしたオブジェクトを結果から除外できる。
テーブル:AGR_1252(権限の組織要素)
Tr:PFCG(ロール更新)で権限オブジェクトの編集を実施したことがあると分かるが、権限ロールごとに組織レベルの設定が可能。
(購買組織やプラント、会社コードといった組織項目を持つ権限オブジェクトを、ロールに対して割り当てた場合、「組織レベル」ボタンからそのロール全体に適用する組織レベルを設定できる)
この組織レベルが格納されているのがAGR_1251のテーブルとなる。
テーブル:AGR_HIER(メニュー用構造情報のテーブル)
ロールに対してはメニュー構造を定義できるが、そのメニュー構造が格納されているのがこのテーブル:AGR_HIER。
Tr:PFCGでメニュー編集をする際は、フォルダを階層化し、階層化したフォルダ下にトランザクションを割り当てていく。
テーブル:AGR_HIERからは、メニューのノード番号と、そのノードに割り当たっているもの(フォルダであったりトランザクションコードであったり)を取得することが出来る。
ちなみに、フォルダ名やメニュートランザクションに割り当てている名前(トランザクションの正式名とは別に、メニュー上で割り当てている名称)についてはテーブル:AGR_HIERT(ロールメニューテキスト)から取得できる。
AGR_HIERのテーブル主キーは「ロールID」と「ノードID」だが、AGR_HIERTではこの二つに加えて「言語」もテーブルキーとなっている。
テーブル:AGR_1016(活動グループプロファイル)
ロールに対して紐づいている権限プロファイルのIDが一覧化できる。
権限ロールを作成するときに権限プロファイルを生成することで、プロファイルIDが発番される。
テーブル:AGR_PROF(ロール用プロファイル名)
ロールに対して紐づいている権限プロファイルの名称を取得する。
テーブルAGR_1016と組み合わせて使う。
テーブル:UST04(ユーザマスタ)
ユーザ編集(Tr:SU01)からプロファイルにSAP_ALLなどを割り当てたりする場合があるが、そうして割り当てたプロファイルとユーザの紐づきは、このUST04から取得することが出来る。
テーブル:AGR_DATEU(ロールのパーソナル設定)
ユーザ固有の設定値について格納されているテーブル。(AGRテーブルだが、あまり権限とは関係ない)
例えばトップメニューの【補足 >設定】から、以下のような表示設定をフラグチェックでコントロールできる。
・「ピクチャ(トップメニュー画像)の表示/非表示」
・「ユーザ定義の表示位置」
・「メニューの表示/非表示(ユーザ定義のみ表示)」
このとき、例えば技術名称のみをオンにすると、テーブル:AGR_DATEUに格納されているBROWSER_OPT(とユーザIDとの組み合わせ)の属性値が「X」をとる。
逆に技術名称をオフにすると属性値は空白となる。
全部をオンにすると属性値は「XXXX」を取る。このように、フラグチェックそれぞれに対してx文字目が割り当てられており、オンオフをBROWSER_OPTの中に保持しているというわけだ。
おなじくテーブル:AGR_DATEUにあるMEN_FLG_STATというパラメータも少し面白い。
これはユーザメニューとSAP標準メニューの表示切替に関連しているパラメータだ。
ユーザメニューとSAP標準メニューとの切り替えは、トップメニュー画面の左上のボタン(ユーザメニュー Ctrl+F10、SAPメニュー Ctrl+F11)から実施できる。
ところで、新規画面立ち上げ時や、次回ログイン時などに、「前回表示していた方のメニュー」が常に表示されていることにお気づきだろうか。
この前回表示したメニューを覚えているのが、MEN_FLG_STATというパラメータだ。
メニューを切り替えるたびに属性値が切り替わるので、これは実際にポチポチ切り替えて試してみて頂きたい。
「こんな所にこんなパラメータがあったのか……」という感じ。