1. 程式人生 > >Sap許可權相關設定、控制及傳輸

Sap許可權相關設定、控制及傳輸

1、許可權相關概念簡介

一、首先我們先來介紹以下這幅圖(PFCG),這裡麵包含幾個許可權相關的概念。

以上圖為例,我們來簡單的介紹上圖中的幾個概念:

1、Role一堆TCODE的集合,當然還包含有TCODE必備的“許可權物件”、“許可權欄位”、“欄位值”等。這個大家比較熟悉,使用者如果要新增某些許可權,那麼可以把相關的角色賦予相應的使用者。

2、Authorization Objects:包含了若干許可權欄位、允許的操作和允許的值。有一個特殊的許可權物件用來包含了若干事務碼,這個許可權物件叫“S_TCODE”,該許可權物件的許可權欄位叫“TCD”,該欄位允許的值(Field Value)存放的就是事務程式碼。

3、Authorization Group:顧名思義,這個就是若干個許可權物件的集合

4、Authorization Field:是AuthorizationObjects的相關元素,比如:操作、公司程式碼、一個事務等。有一種特殊的許可權欄位用來表示可以針對該許可權物件做哪些操作,是允許建立、修改、顯示、刪除或者其他。該許可權欄位叫“ACTVT,該欄位允許的值(Field Value)存放的就是允許操作的程式碼,01代表建立、02代表修改、03代表顯示等。

5、Field Value:確定可進行的操作或操作範圍,如:許可權欄位是工廠,許可權欄位的值是1010,那麼擁有該角色的使用者只能進行1010工廠的相關操作。

6、Profiles:當一個角色生成的時候,會生成一個相應的引數檔案,同樣的,該引數檔案也包含與相應角色一樣的許可權物件。(可以把一些非生成的引數檔案賦予相關的使用者)

介紹完以上幾個概念後,大家來看看我們平時用SU53得到的截圖(以下是在800用YLKJ_MM賬號操作ME21N的截圖)

就可以很清楚知道圖中的意思了(該使用者缺少許可權物件類MM_E中的許可權物件M_BEST_EKO下的欄位ACTVT的值01(建立)的許可權,後續會介紹怎麼根據該圖,查詢相應的角色)。

二、介紹以上幾個概念後,接下來介紹一下使用者組(User Group

使用者組,顧名思義就是使用者的集合,可以根據單位、部門對使用者進行分組,對相應的使用者組賦予相應的許可權。

2、許可權設定過程

下面以:為了控制事務程式碼ZMM100的使用,而建立ZMM_TEST角色的過程為例介紹角色的建立。

1、  許可權物件類的建立

輸入事務程式碼SU21,如下圖:

   

如上圖,點選“Object Class”,如下圖:

按上圖填寫許可權物件類的名稱及描述,填寫完後點擊儲存,彈出如下對話方塊:

點選“本地物件”,許可權物件建立成功(注意:如果是正式情況不能點選本地物件,要點選儲存)

2、  許可權欄位的建立

輸入SU20,如下圖:

點選上圖中的按鈕,進入如下圖:

如上圖,填寫欄位名及資料元素(注意:如果所需要的欄位已經存在,比如:WERKS或者ACTVT等,則不需要操作此步驟),點選儲存,彈出如下介面:

點選儲存,即可!

3、  建立許可權物件及欄位設定

選中建立好的許可權物件類,點選右鍵,選中“CreateAuthorization Object” ,如下圖:

彈出如下介面:

 

在上圖中填寫“物件名稱”、“物件描述”、“欄位名”填寫完後,點選儲存,彈出如下介面:

點選儲存,彈出如下介面:

點選,回到如下介面:

點選,許可權物件及欄位設定成功,如下圖:

4、  設定事務程式碼的許可權物件

輸入事務程式碼SU24,如下圖:

 

如上圖,輸入需要維護的事物程式碼,點選,如下圖:

如上圖,每個事務程式碼都有預設的一個相關許可權物件S_TCODE用於檢查事務程式碼,(大家平常可能會有疑問:有些自開發的程式,如果沒有對它設定許可權控制的時候,為什麼顧問的賬號可以操作該事務程式碼,而一般使用者的賬號卻不能操作呢??答案就在於顧問賬號中分配的Z_KEYUSER_DISP_NOHR(顯示許可權ALL-HR)角色中的S_TCODE許可權物件欄位值設定為如下:點選上圖中的按鈕,維護相關的事務程式碼,如下:

 

點選上圖中的按鈕,增加許可權物件(其它按鈕的作用,大家自己測試一下就知道了),彈出如下對話方塊:

如上圖,在對話方塊中輸入已經建立的許可權物件,點選回車,如下:

增加完許可權物件後點擊儲存,會提示設定請求號,大家可以隨便建立一個,到時候把其釋放即可。建立完請求號後,彈出下圖提示,說明維護沒有問題了。

5、  角色的建立(只介紹手工建立,複製、上載及繼承大家自己測試,還有種元件角色大家也可以去了解一下)

輸入事務程式碼PFCG,如下圖:

如上圖,輸入角色的名稱,點選“建立角色”按鈕,如下:

如上圖,輸入角色名稱,並點選儲存,然後點選“選單”分頁,如下:

點選按鈕,如下:

如上圖,輸入要分配的事物程式碼,點選按鈕,如下:

點選儲存,後點擊“許可權”分頁中的按鈕,如下圖:

點選選單欄上的“實用程式”——>“顯示技術名稱”再選擇角色,點選上圖中的,如下圖:

從上圖中大家可以清楚的發現SU24中“Proposal Status”的作用了(當然,S_TCODE是不受影響的)

這邊只帶出許可權物件ZMAT_CHECK,如果想繼續增加其他的許可權物件,則可以點選選單欄上的“編輯”——>“插入許可權”或者上圖中的按鈕進行許可權物件的增加(注意:“選擇標準”不能新增自定義的許可權物件)這邊點選,如下圖:

如上圖,輸入要增加的許可權物件,點選回車,如下圖:

點選,對許可權欄位值進行維護,如下:

設定完欄位值後,點選上圖中的按鈕,角色的許可權維護成功。

最後點選“使用者”分頁進行相應使用者的維護,並進行使用者的比較。(比較簡單不再詳細說明)

6、  程式中的許可權控制

如果有的人認為以上操作完就,就可以進行許可權控制了,那就錯了。其實以上的設定對許可權限制完全起不到任何作用,真正的許可權限制是在事務程式碼相應的程式中增加如下程式碼:

AUTHORITY-CHECK OBJECT 'ZMAT_CHECK'
           
ID 'ACTVT' FIELD '01'.
才能達到許可權的控制,即以上的操作才起作用。

3、角色傳輸(只介紹批量角色的傳輸,單個傳輸就點選即可)

1、請求號的生成:

輸入事務程式碼PFCG ,如下圖:

進入大量傳輸介面,如下:

如上圖輸入要傳輸的角色名,點選,如下圖:

 

點選回車,如下圖:

回車,進行相應請求號的建立,這邊不再詳細說明。請求號建立完後,跳轉如下介面:

到此,角色相應的請求號生成成功。

2、請求號傳輸:(沒有許可權操作,這邊不再詳細截圖)

跨集團傳輸:

STMS,在源系統操作,即如果要把120的角色傳輸至240,則在120系統執行STMS;

同一個集團不同客戶端傳輸:

SCC1,在統一集團的目的系統操作,即如果要把120的角色傳輸至160,則要在160系統進行SCC1的操作。

4、許可權相關表及事務程式碼(基本上所有的許可權問題都可以根據下面的表或事務程式碼進行處理,這邊留給大家自己研究吧)

1、相關事務程式碼

SU53

當一個賬號反映沒有某個應有的許可權時,可以輸入T-code:SU53,查詢系統出現沒有許可權的資訊。

SUIM

SUIM 其實就是Information 系統的一個集合介面。

最常用的功能是:已知某個 T-code查詢含有這個T-code的角色

輸入 T-code後執行,就可以得到含有這個T-code 的角色的列表。

注意:其判斷條件是角色的角色選單,而不是 Profile引數檔案。

(一)建立Role(角色)的相關T-code:

PFCG 建立角色

PFAC 建立系統模板標準角色

PFAC_CHG改變系統模板標準角色

PFAC_DEL刪除系統模板標準角色

PFAC_DIS顯示系統模板標準角色

PFAC_INS新建系統模板標準角色

PFAC_STR

ROLE_CMP比較

SUPC 批量建立角色引數檔案

SWUJ 測試

SU03 檢測 authorization data(授權資料)

SU25, SU26檢查 updated profile(更新的引數檔案)

(二)建立使用者的相關 T-code:

SU0

SU01 建立使用者

SU01D

SU01_NAV

SU05

SU50,SU51,SU52

SU1

SU10 批量建立使用者

SU12 批量修改使用者

SUCOMP維護使用者公司地址

SU2 修改使用者引數

使用者組

SUGR 維護使用者組

SUGRD顯示使用者組

SUGRD_NAV維護使用者組

SUGR_NAV顯示使用者組

(三)關於 profile & Authorization Data

SU02 直接建立角色引數檔案,不用角色建立

SU20 細分 Authorization Fields(授權範圍)

SU21(SU03)維護 Authorization Objects(授權物件)

對具體 transaction code(事務程式碼)細分

SU22,SU24維護事務許可權物件的分配

SU53 檢查缺失的 authorization objects(授權物件)

SU56 分析 authorization data buffers(授權資料緩衝器)

SU87 檢查使用者改變產生的 history(歷史記錄)

SU96,SU97,SU98,SU99

SUPC 批量產生角色

 

2、相關的表

TOBJ All available authorization objects

USR12使用者級 authorization(授權)值

USR01主資料

USR02密碼在此

USR04授權在此

USR03 User address data

USR05 User Master Parameter ID

USR06 Additional Data per User

USR07 Object/values of last authorizationcheck

USR08 Table for user menu entries

USR09 Entries for user menus (work areas)

USR10 User master authorization profiles

USR11 User Master Texts for Profiles (USR10)

USR12 User master authorization values

USR13 Short Texts for Authorizations

USR14 Surcharge able Language Versions perUser

USR15 External User Name

USR16 Values for Variables for UserAuthorizations

USR20 Date of last user master reorganization

USR21 Assign user name address key

USR22 Logon data without kernel access

USR30 Additional Information for User Menu

USR40 Table for illegal passwords

USR41當前使用者

USREFUS

USRBF3

UST04 User Profile在此

UST10CComposite profiles

UST10S Single profiles

AGR_1250角色與許可權物件的關聯表

AGR_1251角色與許可權物件及操作值關聯表

TSTC    事務程式碼表

UST12   引數檔案與許可權值的對應

AGR_1016角色與引數檔案對應表

USRBF2  這個表是對應到所用的authorzizationobjects的.

USOBX    事務程式碼與許可權物件