sap資料--sap許可權解剖(二)
直觀的說,許可權就是“某人能幹某事”和“某人不能幹某事”之合。在SAP系統中,用事務碼(也稱交易程式碼、或者TCODE、或者Transaction Code)表示一個使用者能幹的事情。比如MM01這個TCODE是用來維護物料資料的、MIGO是用來收貨的、FS00是用來維護會計科目的等。
用SU01新建一個ID時,預設的許可權是空白,即這個新建的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之間,還有一箇中間概念“許可權物件”:
角色包含了若干許可權物件,在透明表AGR_1250中有儲存二者之間的關係;
許可權物件包含了若干許可權欄位、允許的操作和允許的值,在透明表AGR_1251中體現了ROLE/Object/Field/Value之間的關係;
有一個特殊的許可權物件用來包含了若干事務碼。這個許可權物件叫“S_TCODE”,該許可權物件的許可權欄位叫“TCD”,該欄位允許的值(Field Value)存放的就是事務程式碼;
有一種特殊的許可權欄位用來表示可以針對該許可權物件做哪些操作,是允許建立、修改、顯示、刪除或者其他呢。該許可權欄位叫“ACTVT”,該欄位允許的值(Field Value)存放的就是允許操作的程式碼,01代表建立、02代表修改、03代表顯示等;
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),橫向是某些許可權物件,許可權物件再細分成若干事務程式碼、允許動作、許可權欄位及其允許的值等。
而實際業務中是否需要將許可權劃分的如此細緻,完全取決於某領導的喜好、跳不過的律法、和企業內部的規章制度。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30745/viewspace-1043526/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SAP Basis DEBUG改表資料許可權角色設計
- SAP Business Application Studio的許可權控制APP
- SAP PLM文件許可權物件的控制級別物件
- SAP QM 許可權控制可以到Inspection Type上
- 許可權系統:一文搞懂功能許可權、資料許可權
- SAP生產機該不該開放Debuger許可權
- 使用註解 @requires 給 SAP CAP CDS 模型新增許可權控制UI模型
- SAP BTP Launchpad Service 打不開應用的許可權問題
- SAP 系統中F4在幫助中顯示的物料主資料許可權控制
- 資料庫的許可權管理資料庫
- 資料分析的許可權控制
- 【自然框架】許可權的視訊演示(二):許可權到欄位、許可權到記錄框架
- SpringSecurity許可權管理系統實戰—九、資料許可權的配置SpringGse
- 【專案實踐】一文帶你搞定頁面許可權、按鈕許可權以及資料許可權
- 往hdfs寫資料無許可權
- Mysql資料庫許可權問題MySql資料庫
- 資料許可權技術驗證
- 資料許可權驗證MyBatis版MyBatis
- 修改檔案、資料夾許可權
- 資料庫學習:許可權管理資料庫
- 基於RBAC做資料許可權
- linux 檔案、資料夾許可權Linux
- 許可權之選單許可權
- springboot-許可權控制shiro(二)Spring Boot
- js 許可權二進位制JS
- linux 檔案許可權 s 許可權和 t 許可權解析Linux
- SAP SU53許可權檢查時不能複製的解決辦法
- 如何用 Vue 實現前端許可權控制(路由許可權 + 檢視許可權 + 請求許可權)Vue前端路由
- 資料湖統一後設資料與許可權
- MySQL資料庫Root許可權MOF方法提權研究MySql資料庫
- 授權|取消授權MYSQL資料庫使用者許可權MySql資料庫
- django許可權之二級選單Django
- Django restframework 框架筆記 (二) 許可權DjangoRESTFramework框架筆記
- SAP CAP 專案 cds watch 生成的 index.html 的模板位置和許可權控制IndexHTML
- 怎麼控制報表的資料許可權
- 七、許可權管理和資料庫備份資料庫
- PostgreSQL資料庫使用者許可權管理SQL資料庫
- Mysql許可權管理以及sql資料備份MySql
- Oracle 資料庫安全許可權配置標準Oracle資料庫