EBS用户密码sql语句

这个博客介绍了如何在Oracle EBS系统中通过PL/SQL包cux_fnd_web_sec获取并解密用户密码。包含两个函数get_user_pass和get_apps_pass,用于获取指定用户或APPS的加密密码,并提供了加密和解密的辅助函数。通过示例查询展示了如何使用这些函数来获取'EBS-YC'用户和APPS用户的密码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CREATE OR REPLACE PACKAGE cux_fnd_web_sec IS
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 cux_fnd_web_sec;
 

 

CREATE OR REPLACE PACKAGE BODY cux_fnd_web_sec IS
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 cux_fnd_web_sec;
 

 

--先执行上面的代码------
--获取EBS用户密码
SELECT cux_fnd_web_sec.get_user_pass('EBS-YC' ) FROM dual;
--获取APPS用户的密码
SELECT cux_fnd_web_sec.get_apps_pass FROM dual;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值