這次因為設定權限,所以有機會接觸權限物件(Authority Object),利用這個機會從程式面整理一下 希望此文件對大家有所幫助,能更了解權限物件內部運作及機制,謝謝。 主要介紹整個應用流程如下(由於某些 t-code 需要 Basis 權限,所以在 IDES 上測試): ------------------------------------------------------------ ※●●自己畫的架構圖: ●●●首先建立一個 Domain ●●●定義資料型態為 Char1 ●●●在 Valu e Range 裡列舉 A、B、C 三類(會反映到我們設定 object Valu e 時,提供選單) ●●●接著設定 Data Element ●●●為 Data Element設定 Domain ●●●再來輸入交易代碼 SU20 設定權限欄位 ●●●新增權限欄位 ●●●其中 Search Help 會依據 Data Element 變化,若無也可自行設定 ●●●輸入權限欄位名稱及 Data Element,可看出 Search Help 已自動帶出(因為 Domain 有設定) ●●●輸入 SU 21,設定權限物件 ●●●如下圖,建立物件類別及權限物件 ●●●輸入物件類別名稱 ●●●設定權限物件,指定權限欄位 ●●●輸入 SU24,設定交易代碼 t-code 及權限物件關係 ※●●(此設定會影響那些權限物件及物件值自動帶入 PFCG,若沒有設定此步驟,則必須在 PFCG 手動加入) ●●●輸入 T-code ●●●如下圖,可設定 T-code 及 Authority Object、Value 關係 ※●●這就可以解釋為何某些 T-code 和值會自動帶入到 PFCG ●●●設定 PFCG-交易代碼 ●●●如下圖,可以看到 ZTESTAUTH、欄位 ZTESTFD 及建議值 B 皆自動帶出(當然也可不設定 SU24 而手動加入權限物件) ●●●此欄位帶出 Domain 的列舉值 ●●●指派 user ※●●程式撰寫,藉由 AUTHORITY-CHECK OBJECT 檢查權限物件欄位的值是否符合 PFCG 設定的值 ●●●登入測試 user ●●●執行測試程式 ●●●權限檢查成功 ●●●在設定時空值影響測試,下圖將值清空 ●●●權限檢查失敗 ●●●此時若將值改為 space ●●●權限檢查成功 ※●●這此可知某些空值是否會造成權限問題,還是要視程式寫法而定