Welcome 微信登录

首页 / 数据库 / MySQL / Oracle EBS - 利用PLSQL取得apps密码和EBS中的用户密码

版本:Tested on R12.0.6/R12.1.1注意:请根据具体环境调整GUEST用户密码,默认情况都是Oracle。 GUEST用户的密码可以在$CONTEXT_FILE文件中找到:view $CONTEXT_FILE   51          <oa_user type="GUEST">
   52           <username oa_var="s_guest_user">GUEST</username>
   53           <password oa_var="s_guest_pass">ORACLE</password>
   54          </oa_user>用法:编译package,调用函数即可。CREATE OR REPLACE PACKAGE apps.xxdba_fnd_security 
 AUTHID CURRENT_USER 
AS 
 -- guest login can be retrieved from profile GUEST_USER_PWD(Guest User Password) or $CONTEXT_FILE 
 FUNCTION get_user_pass (p_fnd_user        IN VARCHAR2 
                          ,p_guest_login   IN VARCHAR2 DEFAULT "GUEST/ORACLE") 
      RETURN VARCHAR2; 
 FUNCTION get_apps_pass (p_guest_login IN VARCHAR2 DEFAULT "GUEST/ORACLE") 
      RETURN VARCHAR2; 
 FUNCTION encrypt (key            IN VARCHAR2 
                    ,VALUE          IN VARCHAR2) 
      RETURN VARCHAR2; 
 FUNCTION decrypt (key            IN VARCHAR2 
                    ,VALUE          IN VARCHAR2) 
      RETURN VARCHAR2; 
END xxdba_fnd_security; 

 
CREATE OR REPLACE PACKAGE BODY apps.xxdba_fnd_security 
AS 
 FUNCTION encrypt ( 
      key            IN VARCHAR2 
   ,VALUE          IN VARCHAR2) 
      RETURN VARCHAR2 
 AS 
      LANGUAGE JAVA 
      NAME "oracle.apps.fnd.security.WebSessionManagerProc.encrypt(java.lang.String,java.lang.String) return java.lang.String"; 
 FUNCTION decrypt ( 
      key            IN VARCHAR2 
   ,VALUE          IN VARCHAR2) 
      RETURN VARCHAR2 
 AS 
      LANGUAGE JAVA 
      NAME "oracle.apps.fnd.security.WebSessionManagerProc.decrypt(java.lang.String,java.lang.String) return java.lang.String"; 
 
 FUNCTION get_apps_pass (p_guest_login IN VARCHAR2 DEFAULT "GUEST/ORACLE") 
      RETURN VARCHAR2 
 IS 
      l_apps_encrypted_pass VARCHAR2 (200); 
      l_apps_decrypted_pass VARCHAR2 (200); 
 BEGIN 
      -- get apps encrypted pass 
      SELECT encrypted_foundation_password 
      INTO l_apps_encrypted_pass 
      FROM apps.fnd_user 
      WHERE  user_name = "GUEST"; 
 
      --decrypt apps pass 
      SELECT decrypt (p_guest_login 
                   ,l_apps_encrypted_pass) 
      INTO l_apps_decrypted_pass 
      FROM DUAL; 
       
      RETURN l_apps_decrypted_pass; 
 END get_apps_pass; 
 
 FUNCTION get_user_pass (p_fnd_user      IN VARCHAR2 
                          ,p_guest_login IN VARCHAR2 DEFAULT "GUEST/ORACLE") 
      RETURN VARCHAR2 
 IS 
      l_user_encrypted_pass VARCHAR2 (200); 
      l_user_decrypted_pass VARCHAR2 (200); 
 BEGIN 
      -- get fnd user encrypted pass 
      BEGIN 
       SELECT encrypted_user_password 
       INTO l_user_encrypted_pass 
       FROM fnd_user 
       WHERE  user_name = p_fnd_user; 
      EXCEPTION 
       WHEN NO_DATA_FOUND 
       THEN 
            RETURN "User " || p_fnd_user || " is not exist in FND_USER table"; 
      END; 
       
      --decrypt user pass 
      SELECT decrypt (get_apps_pass (p_guest_login) 
                   ,l_user_encrypted_pass) 
      INTO l_user_decrypted_pass 
      FROM DUAL; 
 
      RETURN l_user_decrypted_pass; 
 END get_user_pass; 
 
END xxdba_fnd_security; 

 
/* 
select xxdba_fnd_security.get_user_pass("SYSADMIN") from dual; 
 
select xxdba_fnd_security.get_apps_pass from dual; 
 
drop package apps.xxdba_fnd_security; 
*/  EBS R12.1.1 on Oracle Linux 64 5.7安装过程中碰到的两个问题Oracle EBS DBA常用SQL - 安装/补丁相关资讯      Oracle EBS  plsql 
  • PLSQL 经常自动断开失去连接的解决  (09/19/2015 15:57:43)
  • PLSQL Developer 不能连接 64位   (03/30/2015 15:56:21)
  • PLSQL连接远程数据库  (12/12/2014 16:53:57)
  • Oracleclient+PLSQL Developer实现  (05/09/2015 10:55:10)
  • 64位Oracle客户端上PLSQL无法识别  (03/30/2015 15:22:13)
  • 登录Oracle EBS系统遭遇Tomcat页面  (06/06/2014 19:49:49)
本文评论 查看全部评论 (0)
表情: 姓名: 字数