直觀的說,許可權就是「某人能幹某事」和「某人不能幹某事」之合。在sap系統中,用事務碼(也稱交易**、或者tcode、或者transaction code)表示乙個使用者能幹的事情。比如mm01這個tcode是用來維護物料資料的、migo是用來收貨的、fs00是用來維護會計科目的等。
用su01
新建乙個id時,預設的許可權是空白,即這個新建的id不能做任何事情,不能使用任何事務**。這樣只需要為相應的id賦上相應的tcode,即可實現「某人能幹某事」了,其補集,則是「某人不能幹的某些事」。
但是我們不能直接在su01裡面給某個id賦上tcode,要通過role中轉一下。即:一堆tcode組成了乙個role,然後把這個role分給某個id,然後這個id就得到一堆tcode了。
上面這些,僅僅是sap許可權控制的初級概念,要理解sap許可權控制的全部,必須還要明白下面的概念。
1、角色(role)、通用角色(common role)、本地角色(local role)
上面講了,角色,即role,是一堆tcode的集合,當然還包含有tcode必備的「許可權物件」、「許可權字段」、「允許的操作」及「允許的值」等。我們使用pfcg來維護角色。
為了系統的測試與sap實施專案的階段性需要,進一步將角色分為「通用角色」和「本地角色」。
舉 個例子便於理解:通用角色好比「生產訂單製單員」,本地角色對應就是「長城國際組裝一分廠生產訂單製單員」。所以,本地角色較之通用角色的區別就是,在同 樣的操作許可權(事務**們)情況下,前者多了具體的限制值。這個限制值可能是組織架構限制,也可能是其他業務的限制。如,一分廠的製單員不能維護二分廠的 製單員;一分廠的製單員甲只能維護型別為a的單據,而不能維護型別為b的單據,諸如此類。
具體請看下面的概念。
2、許可權物件(authorization object)、許可權字段(authorization field)、允許的操作(activity)、允許的值(field value)
上文粗略說了構成role的是若干tcode。其實,在role和tcode之間,還有乙個中間概念「許可權物件」:
sap的許可權控制是控制到字段級的,換句話說,其許可權控制機制可以檢查你是否有許可權維護某張透明表的某乙個字段。
sap系統自帶了若干許可權物件、預設控制了若干許可權字段(對應到透明表的某些字段)。可以用事務碼su20來檢視系統有哪些許可權字段,用su21來檢視系統有哪些預設的許可權物件。
於是我們知道了事務**與許可權物件的區別。從許可權控制的範疇來看,事務**屬於一種特殊的許可權物件;乙個事務**在執行過程中,為了判斷某個id是否有許可權執行此事務**,還可能檢查其他若干普通的許可權物件。使用su22來檢視某個事務**包含了哪些許可權物件。在透明表usobx中,存放了事務碼與許可權物件的對應關係。
3、自定義許可權物件
上文所說的系統自帶許可權物件與許可權欄位僅能滿足有限的需要,其許可權審核的邏輯也是系統硬編碼了的,我們能做的只是是否啟用某項許可權物件的檢查(使用su22)。如果需要自定義,通過su20、su21定義即可。呼叫的時候在程式中加入類似**:
authority-check object 'z_vkorg' id 'vkorg' field 'rec_vkorg-vkorg'.
if sy-subrc <> 0.
message 'no authorization!' type 'e'.
endif.
結語:
本文僅對系統本身做了技術性敘述,並未結合業務實際,但是我們有勾勒出了乙個大致的許可權矩陣,縱向是操作人(id),橫向是某些許可權物件,許可權物件再細分成若干事務**、允許動作、許可權字段及其允許的值等。
而實際業務中是否需要將許可權劃分的如此細緻,完全取決於某領導的喜好、跳不過的律法、和企業內部的規章制度。
SAP 許可權與角色設計
原文 角色 通用角色 本地角色 許可權物件 mm x 物件 許可權字段 欄位一 負責增刪改 欄位二 負責字段級准入 允許操作 01 03 05 07 允許值 factory1,factory2,factory5 factory7 直觀的說,許可權就是 某人能幹某事 和 某人不能幹某事 之合。在sap...
SAP中SPRO許可權控制
最近越到業務上的需求,需要將spro的許可權控制為只能顯示,不能修改。我的做法是單獨做乙個角色,裡面只含有spro這個事務碼,然後在裡面做如下的限制 其中比較關鍵的是s tabu cli和s tabu dis以及s tcode的控制。如果不手工在s tcode中加入相關事務碼的話,spro中的選單還...
平實語言講解SAP許可權
角色 通用角色 本地角色 許可權物件 mm x 物件 許可權字段 欄位一 負責增刪改 欄位二 負責字段級准入 允許操作 01 03 05 07 允許值 factory1,factory2,factory5 factory7 直觀的說,許可權就是 某人能幹某事 和 某人不能幹某事 之合。在sap系統中...