BASIS忘記了SAP*和DDIC的密碼……
多方查詢資料
多是直接連接數據庫,對USR02表里的數據進行操作。
研究了一下午,找到了一個辦法。前提是在其他CLIENT有能登陸的用戶,權限為SAP_ALL,並且可以進行開發。
SE38,自建程序,復制下面的代碼。激活。執行,完成。
原理是 將SAP中 USR02 ust04 usrbf2 的數據拷貝至000集團。
這樣就將用戶和權限復制到了000集團,可以直接使用該用戶名和密碼登陸000了。
代碼如下:
*&---------------------------------------------------------------------*
*& Report Z_CHANGE_DDIC_PASSWD
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT Z_CHANGE_DDIC_PASSWD.
data t_usr02 like usr02 OCCURS 0 WITH HEADER LINE.
data t_ust04 like ust04 occurs 0 with HEADER LINE.
data t_usrbf2 like usrbf2 occurs 0 with HEADER LINE.
tables usr02.
SELECTION-SCREEN BEGIN OF BLOCK BL_1 WITH FRAME TITLE TEXT1.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (10) TEXT2.
SELECTION-SCREEN POSITION 20.
PARAMETERS s_bname LIKE usr02-bname OBLIGATORY.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (10) TEXT3.
SELECTION-SCREEN POSITION 20.
PARAMETERS S_mandt like usr02-mandt OBLIGATORY.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK BL_1.
INITIALIZATION.
TEXT1 = '請輸入:'.
TEXT2 = '復制用戶名'.
TEXT3 = '目標客戶端'.
START-OF-SELECTION.
select * into t_usr02 from usr02 where BNAME = s_bname.
ENDSELECT.
t_usr02-mandt = S_mandt.
modify usr02 CLIENT SPECIFIED from t_usr02 .
commit work.
select * into table t_ust04 from ust04 where bname = s_bname.
loop at t_ust04.
t_ust04-mandt = S_mandt.
modify ust04 CLIENT SPECIFIED from t_ust04.
commit work.
endloop.
select * into table t_usrbf2 from usrbf2 where bname = s_bname.
loop at t_usrbf2.
t_usrbf2-mandt = S_mandt.
modify usrbf2 CLIENT SPECIFIED from t_usrbf2.
commit work.
endloop.
write: 'complete!'.
測試如下:
然后在000 client登陸,登陸成功修改密碼 即可。
wechat&Mobile: 18616021346 專注於SAP運維、升級、遷移