sap权限控制
如有轉(zhuǎn)載請注明出處:
http://blog.csdn.net/donkey2004112103/archive/2009/05/06/4156065.aspx今天終于了解了sap如何從技術(shù)的角度去實現(xiàn)權(quán)限控制,我覺得權(quán)限控制是這樣實現(xiàn)的,首先想想為什么不同的用戶可以有不同的權(quán)限了?因為有角色的概念,不同的用戶分配了不同的的權(quán)限,所以有不同的權(quán)限。而角色由參數(shù)文件(profile )組成,參數(shù)文件里添加了授權(quán)對象(authority object),授權(quán)對象又由授權(quán)字段(authorization field)構(gòu)成。這就從上到下的組成了權(quán)限控制的全部。如圖:
這些東西配置好之后,我們便可以在程序中通過代碼判斷用戶是否有該權(quán)限去執(zhí)行某項操作了。那從代碼開始一步一步講解吧。
代碼:
AUTHORITY-CHECK OBJECT 'ZEMPOBJ04'
???????????????????????????????? ID 'ACTVT' FIELD test.
????? IF SY-SUBRC = 0.
????????? WRITE:/ 'PASS'.
????? ELSE.
???????? WRITE:/ 'Sorry.'.
???? ENDIF.
上面這段代碼便完成了一次權(quán)限檢查,ZEMPOBJ04是權(quán)限對象,ACTVT是權(quán)限字段,test是我們要檢測的字段,有可能是公司代碼或者查看的權(quán)限等,然后通過sy-subrc字段取判斷,如果為0則有這個權(quán)限。
權(quán)限字段:
可以通過SU20來創(chuàng)建權(quán)限字段,如下:
字段名和數(shù)據(jù)元素為必輸,名字隨便可以輸入,數(shù)據(jù)元素可以自建,也可以參照創(chuàng)建。table name字段就是創(chuàng)建完成之后的check table,我們在創(chuàng)建權(quán)限對象添加字段的時候,如果這個權(quán)限字段有check table那么就會有一些值可供選擇,如ACTVT:
如果沒有輸入table的話這個時候便沒有,只能在profile里自己維護(hù)字段值了。
權(quán)限對象:
SU21進(jìn)入權(quán)限對象的界面,可以先建立一個object class,它相當(dāng)于一個目錄包含了若干個權(quán)限對象,這樣方便維護(hù)。我們創(chuàng)建好權(quán)限對象之后便可以添加剛才自己創(chuàng)建的字段了,或者系統(tǒng)標(biāo)準(zhǔn)的權(quán)限字段。然后選擇這個權(quán)限對象有哪些值可以使用。
參數(shù)文件:
pfcg進(jìn)入角色維護(hù)后可以先創(chuàng)建一個新的角色或者維護(hù)已經(jīng)存在的角色,進(jìn)入權(quán)限tab,選擇更改授權(quán)數(shù)據(jù)。如圖:
然后便可以添加若干權(quán)限對象,系統(tǒng)標(biāo)準(zhǔn)的或者自己創(chuàng)建的。在權(quán)限對象里就可以維護(hù)這個profile到底有哪些權(quán)限可以使用。
如圖就是一個例子,注意做完操作后要點擊生成,就是那個小圓圈的按鈕。
角色:
最后我們只要把這個角色添加給用戶,用戶變擁有這個權(quán)限了。最后點擊下”用戶比較”按鈕。
總結(jié)