版本: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)