a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 學院 > 操作系統 > 正文

SAP用戶權限控制設置及開發

2024-06-28 16:00:06
字體:
來源:轉載
供稿:網友

創建用戶SU01

事務碼:SU01,用戶主數據的維護,可以創建、修改、刪除、鎖定、解鎖、修改密碼等

 

缺省:可以設置用戶的起始菜單、登錄的默認語言、數字顯示格式、以及日期和時間的格式設置

image089

 

參數:SAP很多屏幕字段都會對應一個指定的參數ID,該參數ID及值一般存儲在SAP所劃分的內存區域中,在SAP GUI啟動時會自動讀取,并作為默認值自動賦值給屏幕上相關字段中,如SD中銷售組織參數ID為VKO,HR國家分組參數ID為MOL:

image090

 

image091

image092

注:一個角色只對應一個參數文件

image093

權限角色

用戶的權限菜單是通過權限角色分配來實現的

自定義權限角色 PFCG

事務碼:PFCG

SAP針對不同的功能模塊提供了很多內置的角色,如SD模塊的權限角色名都是以 SAP_SD 為前綴,HR模塊以 SAP_HR為前綴。

 

在實際應用中,往往會開發很多的工具和報表,并且需要對這些特定的程序進行權限分配,本節將通過新建一個自定義的角色來介紹用戶角色權限維護細節。

 

角色維護又分為單一角色和復合角色,單一角色是一個獨立的權限對象,而復合角色可以由多個單一角色組合而成,能夠同時繼承不同單一角色的權限。下面創建一個SD的角色:

image094

為角色分配菜單權限

image095

image096

為角色分配權限數據

上面分配完菜單后,就實現了在用戶菜單中能看到的相關事務碼菜單項,但是能否操作菜單中所對應事務的業務數據還得設置具體的權限數據:

image097

為某個角色分配具體的權限數據后,會自動產生一個參數文件,SAP在執行中會通過讀取該參數文件的數據來進行用戶權限的檢查及管控。

 

在進行更改“權限數據”前,先簡單了解一下SAP的權限對象(權限對象設置好后,需要綁定到事務碼上,然后在ABAP程序中是通過AUTHORITY-CHECK OBJECT語句來做權限檢查的,這樣權限對象就起作用了):

在SAP實際應用中,用戶所直接操作的是屏幕及屏幕所對應的字段,而這些具體字段都是由權限對象進行控制,包括該字段所允許的操作及允許的值(數據)。

本例中為角色分配了事務VA01——創建銷售訂單,在創建銷售單時需要輸入具體的組織級別,在“權限”頁簽中單擊“更改權限數據”按鈕,系統將自動抓取該角色菜單中所分配的所有事務碼所對應的權限對象,會彈出一個定義組織級別對話框,要求用戶輸入具體的業務數據控制范圍,如:

image098

為權限字段分配值可以是單個值,也可以是某個取值范圍,輸入符號“*”表示為該字段允許所有值,也可以單擊對話框右下角的“完全權限”按鈕,為還沒有分配的值的字段分配值。注:這個界面填充的值會帶到下一界面,也可以在這里什么不輸,而是直接到下一界面輸入,這里只是將所分配的事物碼所涉及的權限對象的權限字段集中在這是輸入值,只是為了方便

 

SAP角色的權限分配是從權限對象直接派生過來的,可以在不同的權限角色中同時調用同一權限對象,并為所生成對象分配定義不同的權限值。

 

點擊“保存”后,SAP會將權限對象以及所維護的權限值以樹狀結構分層列出,最頂級為對象類,對象類是同類屬性的權限對象的集合,一個對象類可以包含多個權限對象。在權限角色維護頁面的主菜單中執行“實用程序|技術名稱打開”命令,將在每個字段的右邊顯示所有的對象類名稱及權限對象名稱:

image099

該界面通過狀態燈來表示各權限對象維護狀態,綠燈代表激活,黃色表示未激活,紅色代表未給權限字段分配值,單擊權限字段前的鉛筆可以定義該字段的授權值:

image100

image101

image102

 

權限對象維護完成后,節點的狀態燈會變為綠色,單擊“保存”按鈕后會彈出一個“為生成權限參數文件分配參數文件名稱”對話框:

image103

再點擊image104,激活權限數據,返回到角色維護界面,可以看到生成的權限參數文件:

image105

將角色分配給用戶

先創建新的用戶 800USER02 但角色與參數文件都為空:

image106

(注:當角色創建好以后,除了在PFCG里分給其他用戶外,實質上可以直接通過SU01來對某用戶進行角色的分配:

image107,當分配好角色時,該角色所帶的參數文件也會自動帶過來放在參數文件Tab中,但你也可以在參數文件中還可以直接將其他的參數文件加進來,如SAP_ALL、SAP_NEW參數文件)

 

由于沒有賦任何權限,所以此時800USER02沒有任何權限:

image108

 

image109

 

單擊“用戶比較”按鈕,將彈出“比較角色用戶主數據記錄”對話框:

image110

點擊“完成比較”,該用戶所對應的權限角色將正式生效。

 

完成后,再去查看 800USER02 用戶的角色與參數文件頁簽,發現已關聯上了:

image111

image112

 

通過上面的設置后,800USER02用戶才有權執行VA01、VA02兩個事務碼,但是,由于前面數據權限字段“銷售憑證類型”沒有設置任何值,所以在創建時還是會報錯:

image113

可以將該憑證類型值加上即可:

image114

權限角色在系統間的傳輸

image115

自定義權限對象

前面已經介紹了如何在權限角色中維護SAP所提供的標準權限對象,本節介紹如何自定義權限對象。

 

SU20:權限字段清單,可以新增、修改、刪除權限字段,可以瀏覽該字段具體被哪些權限對象所調用。

SU21:維護權限對象,可以創建和維護權限類、權限對象,權限字段在該事務碼中被分配到權限對象

SU22:維護權限對象的分配,可以通過該事務碼為具體事務分配權限對象

權限字段的維護SU20

創建權限字段

image116

image117

image118

對象類及權限對象的維護SU21

對象類是多個權限對象的集合,而一個權限對象又可以分配多個權限字段,對象類和權限對象都是通過事務碼SU21來維護的。

一旦新增了用戶的自定義權限對象后,需要單擊工具欄中的image119按鈕,將把新增的權限對象賦值給 SAP_ALL 這個權限參數文件。

 

創建對象類

image120

 

創建權限對象

image121

 

image122

將權限對象分配到事務碼SU22

SU22:通過該事務碼還可以查詢某個事務有哪些權限對象

image123

image124

image125

image126

image127

 

為了下面的演示,創建一個HELLO程序事務代碼ZJZJ_HELLO:

image128

 

image129

輸入事務碼ZJZJ_HELLO后,執行該程序后進入權限對象分配頁面,對于新增的事務,SAP都會默認分配一個S_TCODE權限對象,用于管控用戶操作是否存在該事務的權限:

image130

 

可為權限字段設置默認值,這些值會在角色權限分配時自動帶出:

image131

image132

 

通過上面創建完自定義的權限對象ZS001,并將它與事務代碼ZJZJ_HELLO綁定,這樣就可以將該事務代碼分配到角色菜單中了(注:到目前為止,上面只是設置了某個事務碼具體的權限數據,要使用這些權限數據的起作用,還得要通過該事務碼所對應的ABAP程序來檢查所分配的權限對象的權限數據,標準的Tcod不需另寫ABAP,默認對應的ABAP程序已經實現了?)

 

 

  權限對象(Authorization Object),權限字段(Authorization Field),允許的操作(Activity),允許的值(Field Value)       角色包含了若干權限對象,在透明表AGR_1250中有存儲二者之間的關系;權限對象包含了若干權限字段、允許的操作和允許的值,在透明表 AGR_1251中體現了ROLE/Object/Field/Value之間的關系;有一個特殊的權限對象用來包含了若干事務碼。這個權限對象叫 “S_TCODE”,該權限對象的權限字段叫“TCD”,該字段允許的值(Field Value)存放的就是事務代碼;有一種特殊的權限字段用來表示可以針對該權限對象做哪些操作,是允許創建、修改、顯示、刪除或者其他呢,該權限字段叫 “ACTVT”,該字段允許的值(Field Value)存放的就是允許操作的代碼,01代表創建、02代表修改、03代表顯示等;SAP 系統自帶了若干權限對象、默認控制了若干權限字段(對應到透明表的某些字段)。可以用事務碼SU20來查看系統有哪些權限字段,用SU21來查看系統有哪些默認的權限對象。于是我們知道了事務代碼與權限對象的區別。從權限控制的范疇來看,事務代碼屬于一種特殊的權限對象;一個事務代碼在執行過程中,為了判斷某個ID是否有權限執行此事務代碼,還可能檢查其他若干普通的權限對象。使用SU22來查看某個事務代碼包含了哪些權限對象。在透明表USOBX中,存放了事務碼與權限對象的對應關系。

自定義權限對象

 上文所說的系統自帶權限對象與權限字段僅能滿足有限的需要,其權限審核的邏輯也是系統硬編碼了的,我們能做的只是是否啟用某項權限對象的檢查(使用SU22)。如果需要自定義,通過SU20、SU21定義即可。調用的時候在程序中加入類似代碼:

AUTHORITY-CHECK OBJECT 'Z_VKORG' ID 'VKORG' FIELD 'REC_VKORG-VKORG'.

IF SY-SUBRC <> 0.

MESSAGE 'No Authorization!' TYPE 'E'.

ENDIF.

 

image133

BW授權

BW標準授權(即操作授權)

控制用戶是否可以修改、創建、查看報表

通過角色模板生成權限數據

上面(為角色分配菜單權限/為角色分配權限數據)是根據你選擇的事務碼(菜單)后,再進“權限”Tab點擊“更改權限數據”時,會自動搜集該事務碼所用到的權限對象所用來的組織結構權限字段羅列出來,在彈出組織級別值維護框中輸入權限范圍,則在角色權限數據維護樹里,這會自動會使用這些值(當然也可以不在此框中進行設定,直接跳到角色權限數據維護樹里進行設置)。我們這里是給報表設置權限,沒有對應于哪個具體的TCD,所以只能過角色模板(角色模板其實就是為了控制某個應用功能所需要的權限對象集),或者在知道某個應用需要哪些權限對象時手動加入這些權限對象而不需要通過模塊來設置(請參考后面):

 

但點擊更改權限數據時,會彈出框,可以選擇一個角色模板,可以基于此模板進行權限數據的設定:

image134 image135

選擇S_RS_RREDE模板(該模板就是用來控制前端報表人員權限的),再點“采用參照”,就可以基于模板進行權限數據維護了(如果選擇“不要選擇模板”,則需手動加入所需要的權限對象,這個可以參考后面相應章節)。打開模板后,僅需對下面兩個權限對象(S_RS_COMP、S_RS_COMP1)進行權限數據設置即可,以下是模板默認值:

image136

image137

模板中S_RS_COMP權限數據有兩組,多組方便靈活控制權限數據,一般只有一組權限數據,如果需要多組,則可以通過以下方式來讓同一權限對象有多組權限數據:

image138

上面有兩組權限數據,當有多組數據時,如果某個權限在兩組都有,最終的權限是疊加的的

 

S_RS_COMP權限對象: 每個權限對象的每個權限字段的業務含義是不一樣的,但一般都會有ACTVT這個權限字段,該權限字段就是控制是否可以增、刪、改、查等這些權限的,其它權限字段的含義請通過SUIM事務碼來查看該權限對象的文檔說明:

image139

 

下面只可查詢報表(權限參數“報告組件的類型”“查詢”,即Query,表示報表組件)(注:一定要將執行勾上,否則查不出結果),不可新增、修改、刪除報表:

image140

image141  image142 image143

下面加上了可刪除、創建、修改報表功能權限:

image144

 

發現一個有趣現象:刪除權限包含了修改權限?只要你勾上了刪除,不勾修改,一樣可以修改;但反過來不行:只勾修改,不勾刪除,還是不能刪除:

image145 image146

 

下面權限情況下,不能通過報表工具創建、刪除、修改變量(但查詢時可以使用):

image147

image148

 

S_RS_COMP1權限對應是對 S_RS_COMP權限對象的一種補充:即限制只準操作哪些人創建的報表

image149

手動添加權限對象

前提是要知道該項功能需要用到哪些權限對象,可以使用SU22來查。上面模式權限用到了以下幾個主要的權限對象,手動將他們加進去即可:

權限對象:S_RS_COMP

                         S_RS_COMP1

                         S_RFC

                         S_TCODE

               事務代碼:RRMX  這個事務代碼是必須的,用它來打開查詢分析器的代碼。

               自定義的權限和基于模板的一樣。

 

image150 image151 

image152 

image153

BW分析授權

分析授權:限制報表用戶只能看那些數據?

image154

執行rsecadmin事務碼:

image155 image156 

image157 

image158 image159

image160 image161

 

回到報表設計工具,針對客戶字段創建權限變量(權限變量的作用就是說創建的變量的值不用在界面上輸入,而值是來自于分析權授權所分配的權限值):

image162 image163 

image164 image165

 

image166

注:如果你的標準授權是使用的是BW授權模板來創建的標準授權,則還是會查詢出所有數據,因為授權模板中S_RS_AUTH授權對應中BIAUTH權限字段默認的值就是0BI_ALL,這是一個系統提供的標準分析對象,是可以查看所有權限的分析對象:

image167

所以通過模板創建的標準授權是不行的,所以只能是手工加載一些必要的授權對象后來進行標準授權

 

注:分析授權除了通過rsecadmin將其分配個用戶外:

image160[1]image161[1]

也可以將分析權限直接分配到BW模板權限中的S_RS_AUTH中:

image168

并將用戶直接分配的分析授權刪除掉(rsecadmin),其結果還是可控:

image160[2] image169

這樣分析權限就沒有直接分配到某個人了,而是將其分配給標準授權,而標準授權是與用戶相關的,所以最終分析權限就會間接與用戶相關連了,下面是用戶所分配的標準授權:

image170 

在程序中調用權限對象

在很多SAP標準程序中,已經存在了對權限數據的調用及管控功能

 

在程序中可以通過ABAP程序編輯器快速插入調用權限的代碼:

image171

image172

權限代碼需要放在AT SELECTION-SCREEN.事件塊里

 

 

 

AUTHORITY-CHECK OBJECT '<object>'

ID '<name1>' FIELD <f1>

ID '<name2>' FIELD <f2>

.............

ID '<name10>' FIELD <f10>.

<object>為檢查的權限對象。你必須將所有的權限字段(<name1>,<name2> ...)列出來。<f1>,<f2>....為相應權限字段的值。AUTHORITY-CHECK語句會根據user’s PRofile來檢查權限對象的權限字段,看用戶是否對給出的<f1>,<f2>....權限字段值是否有權限。如果不想對某個權限字段進行權限檢查,可以使用DUMMY來代替FIELD <f>。

image173

AT SELECTION-SCREEN.  PERFORM frm_auth_check.

FORM frm_auth_check .  data: l_werks type werks,        c_text1(60) type c value 'You have no authorization in Plant:'.  select werks    from t001w    into l_werks    where werks in s_werks.    authority-check object 'ZDABAP'           id 'VKORG' dummy           id 'BUKRS' dummy           id 'WERKS' field l_werks           id 'EKORG' dummy           id 'KOKRS' dummy           id 'GSBER' dummy           id 'SEGMENT' dummy.    if sy-subrc <> 0.      message e001(00) with c_text1 l_werks.    endif.  endselect.

 endform. 

 

form frm_auth_check .  data: begin of lt_bukrs occurs 0,    bukrs type t001-bukrs,    end of lt_bukrs.  select bukrs from t001 into corresponding fields of table lt_bukrs  where bukrs in s_bukrs.  loop at lt_bukrs.    authority-check object 'ZDABAP'           id 'VKORG' dummy           id 'BUKRS' field lt_bukrs-bukrs           id 'WERKS' dummy           id 'EKORG' dummy           id 'KOKRS' dummy           id 'GSBER' dummy           id 'SEGMENT' dummy.    if sy-subrc <> 0."      message s001(00) display like 'E' with 'You do not have authorization to access company code:' lt_bukrs-bukrs.      stop.    endif.  endloop.endform. 

通過程序檢查是否有權執行某個Tcd

在ABAP代碼中所有調用SAP事務處理命令的地方,都需要事先進行詳細的授權檢查(調用S_TCODE權限對象來實現),以確認當前用戶是否擁有執行此命令所必須的權限:        CALL TRANSACTION ‘SU10’.增加一段AUTHORITY-CHECK代碼:        AUTHORITY-CHECK OBJECT 'S_TCODE               ID 'TCD'               FIELD 'SU10'. IF sy-subrc = 0.CALL TRANSACTION 'SU10'.ENDIF.這樣就可以在調用前確定當前用戶是否有權執行。

在程序中讀取權限對象所設定的權限值

GET_AUTH_VALUES

返回該權限對象中的所有權限字段以及該字段所對應的權限值。

image174

image175

用戶權限缺失檢查SU53

建議為所有用戶角色分配分配該事務的權限,以方便管理員在出現權限問題時及時核查。

image176

 

image177

在執行事務時出現權限檢查錯誤后,輸入事務代碼SU53,則會顯示權限評估檢查結果:

image178

image179

用戶、角色、權限對象、事務等之間的關系查看 SUIM

如:查看某個事務代碼被分配到了哪些角色:SUIM

image180

原文出自 SAP師太 技術博客,博客鏈接:www.CUOXin.com/jiangzhengjun
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产成人午夜 | 噜噜噜天天躁狠狠躁夜夜精品 | 国产激情网址 | 日韩a级免费视频 | 国产毛片在线 | 爱爱视频免费播放 | 日本精品视频在线观看 | 超碰97在线免费观看 | 一区不卡 | 99爱视频| 中文成人在线 | 性一级录像片片视频免费看 | 国产成人精品亚洲7777 | 国产乱码精品一区二区三区忘忧草 | 欧美午夜精品久久久久久浪潮 | 国产日韩精品一区二区在线观看播放 | 国产成人精品国内自产拍免费看 | 18久久久久久| 亚洲一区二区在线电影 | 日本一区二区精品 | 国产精品视频在线观看 | 日韩一区不卡 | 国产小视频在线播放 | 麻豆精品国产91久久久久久 | 国产精品一区二区不卡视频 | 99热精品在线 | 九一亚洲精品 | 九色网址 | 日本高清www | 看一级黄色大片 | 在线欧美视频 | 一区二区中文 | 午夜a v电影 | 国产在线一二三区 | 亚洲精品电影网在线观看 | 四虎影院观看 | 久久久精品一区二区 | 日本黄色一区二区 | 一区二区三区四区av | 精品日韩欧美一区二区在线播放 | 久久久久久久一区 |