Summary
Sometimes you need to find the SYSADMIN password, or any other user password, in order to login and check something.
If you have the APPS password for the database, then you can follow 2 simple steps and find the password for any E-Business suite user.
1. Login as APPS to the database and create the package
CREATE OR REPLACE PACKAGE APPS.get_pwd AS
FUNCTION decrypt (KEY IN VARCHAR2, VALUE IN VARCHAR2)
RETURN VARCHAR2;
END get_pwd;
/
CREATE OR REPLACE PACKAGE BODY APPS.get_pwd
AS
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';
END get_pwd;
/
2. Run as APPS the query
SELECT usertable.user_name,
(SELECT get_pwd.decrypt(UPPER((SELECT(SELECT get_pwd.decrypt(
UPPER((SELECT UPPER(fnd_profile.VALUE('Guest_User_Pwd'))FROM DUAL)),
usertable.encrypted_foundation_password) FROM DUAL) AS apps_password
FROM applsys.fnd_user usertable
WHERE usertable.user_name LIKE UPPER((
SELECT SUBSTR(fnd_profile.VALUE('Guest_User_Pwd'),1,INSTR(fnd_profile.VALUE('Guest_User_Pwd'),'/')- 1)
FROM DUAL)))), usertable.encrypted_user_password)
FROM DUAL) AS PASSWORD
FROM applsys.fnd_user usertable
WHERE usertable.user_name LIKE UPPER ('SYSADMIN');