Oracle EBS 查询用户密码
程序包头:
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; --iven.lin 2018-01-01 FUNCTION encrypt(key IN VARCHAR2, VALUE IN VARCHAR2) RETURN VARCHAR2; --iven.lin 2028-01-01 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;
--使用
SELECT cux_fnd_web_sec.get_user_pass('用户名' ) FROM dual;
本文来自博客园,作者:Iven_lin,转载请注明原文链接:https://www.cnblogs.com/ivenlin/p/18119385
分类:
EBS
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了