EBS初始化用戶密碼腳本

摘自:https://www.cnblogs.com/toowang/p/6019886.html

https://blog.csdn.net/samt007/article/details/13287987

EBS初始化用戶密碼腳本
原創samt007 最後發佈於2013-10-28 09:12:32 閱讀數 1689  收藏
展開
---修改密碼,並且將限制用戶下次登錄的時候(第一次登錄),強制要換一個新的口令:
---此過程可以完全模擬我們在標準用戶的Form裏面初始化用戶的密碼的動作!
---最後要說明的是,這個處理過程是通過研究標準創建用戶的畫面得出來的結果,所以,如果有需要,請放心使用!

SELECT FU.USER_NAME,FU.DESCRIPTION,FU.ENCRYPTED_USER_PASSWORD
      ,LAST_LOGON_DATE, PASSWORD_DATE, LAST_UPDATE_DATE, LAST_UPDATE_LOGIN
  FROM FND_USER FU
 WHERE 1=1
   AND FU.USER_ID(+) >= 1110
   AND FU.END_DATE IS NULL
   AND FU.USER_NAME IN ('0041')
   --AND FU.ENCRYPTED_USER_PASSWORD = 'INVALID'
   ;

DECLARE
   P_USER_NAME FND_USER.USER_NAME%TYPE;
   P_INIT_PASSWORD VARCHAR2(30);---初始化密碼,非加密的。
   ---
   l_change_flag VARCHAR2(10);
   l_reason varchar2(2000);
BEGIN
    ---輸入參數(用戶名和初始化的密碼)
    P_USER_NAME := '0041';
    P_INIT_PASSWORD := 'PWD12345';
   
    ---------
    ---處理--
    L_change_FLAG := fnd_web_sec.change_password(P_USER_NAME,P_INIT_PASSWORD);
 
 
    IF L_change_FLAG = 'Y' THEN
        -- Bug 7016473 - During an administrative reset, set the last_logon_date to NULL
        -- instead of SYSDATE.  last_logon_date should reflect the date the user last
        -- logged in successfully, not the date the user's password was reset.
        -- This does not regress the fix for bug 4690441 because in fnd_web_sec.disable_user
        -- if last_logon_date is NULL, the last_update_date will be used which is the same
        -- date of the sysadmin reset, so the effect is the same.
        --
        -- Reset password_date field to null to force password
        -- expiration the next time user logs on.
        --
        UPDATE FND_USER
        SET last_logon_date= NULL
           ,password_date = NULL
           --,LAST_UPDATE_DATE = SYSDATE
           --,LAST_UPDATE_LOGIN = FND_GLOBAL.LOGIN_ID
         WHERE USER_NAME = P_USER_NAME;
       
        COMMIT;
        ----
        DBMS_OUTPUT.PUT_LINE('成功初始化用戶('||P_USER_NAME||')的密碼爲:'||P_INIT_PASSWORD);
    ELSE
        ---顯示爲什麼不可以修改
        l_reason := fnd_message.get;
        fnd_message.set_name('FND', 'FND_CHANGE_PASSWORD_FAILED');
        fnd_message.set_token('USER_NAME', P_USER_NAME);
        fnd_message.set_token('REASON', l_reason);
        app_exception.raise_exception;
    END IF;
END;

————————————————
版權聲明:本文爲CSDN博主「samt007」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/samt007/article/details/13287987

發佈了20 篇原創文章 · 獲贊 15 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章