1. 程式人生 > >OEM無法登陸原因與ORACLE使用者密碼過期和鎖定的解決辦法(附上系統使用者預設密碼)

OEM無法登陸原因與ORACLE使用者密碼過期和鎖定的解決辦法(附上系統使用者預設密碼)

  今天登陸OEM的時候發現無法登陸,提示資訊為database is down,但ORACLE是正常狀態,OEM也正常啟動,經過檢查發現OEM使用者“sysman”與”dbsnmp“的密碼過期,重新修改密碼,並修改OEM配置檔案後,重啟OEM恢復正常。

  以下是恢復步驟:

         1.檢視使用者密碼狀態:

            SQL> select * from dba_users;

            發現使用者“sysman”與”dbsnmp“的狀態皆為“EXPIRED”。

         2.重新修改密碼:

            SQL> alter user sysman identified by xxxxx;

            SQL> alter user dbsnmp identified by xxxxx;

            鎖定狀態修改:

            SQL> alter user sysman account unlock;

            SQL> alter user dbsnmp account unlock;

         3.確認密碼被正確修改:

            SQL> conn sysman/xxxxx; 

            Connected.

            SQL> conn dbsnmp/xxxxx;

            Connected.

         4.修改配置檔案:

            (sysman使用者)

            切換$ORACLE_HOME/(HOSTNAME)_(SID)/sysman/config目錄下

            a.備份emoms.properties:

              $ cp emoms.properties emoms.properties.bak

            b.修改檔案emoms.properties:

               $ vi emoms.properties

               找到oracle.sysman.eml.mntr.emdRepPwd=把等於後的加密字串替換成剛才更改的密碼xxxxx;

               找到oracle.sysman.eml.mntr.emdRepPwdEncrypted=TRUE 把TRUE換成FALSE。

            (dbsnmp使用者)

            切換$ORACLE_HOME/(HOSTNAME)_(SID)/sysman/emd目錄下

            a.備份targets.xml:

              $ cp targets.xml targets.xml.bak

            b.修改檔案targets.xml:

               $ vi targets.xml
               修改下列程式碼中:
               <Property NAME="UserName" VALUE="6f5848a4f53a2d0a" ENCRYPTED="TRUE"/>
               <Property NAME="password" VALUE="829e1a25401de489" ENCRYPTED="TRUE"/>
               用新的dbsnmp的密碼代替上列password的Value值,ENCRYPTED的值修改成FALSE。

        5、重啟dbconsole,訪問OEM恢復正常
              $ emctl start dbconsole

  下面附上ORACLE系統使用者的預設密碼,和一些密碼相關的系統引數,可用於取消過期和錯誤鎖定等特性。

  1.系統使用者初始密碼:

        使用者名稱 / 密碼                      登入身份                               說明
 
  sys/change_on_install           SYSDBA 或 SYSOPER           不能以 NORMAL 登入,可作為預設的系統管理員
 
  system/manager                    SYSDBA 或 NORMAL            不能以 SYSOPER 登入,可作為預設的系統管理員
 
  sysman/oem_temp                SYSMAN                                 為EM的使用者名稱
 
  scott/tiger                               NORMAL                                 普通使用者
 
  aqadm /aqadm                      SYSDBA 或 NORMAL              高階佇列管理員
  
  dbsnmp/dbsnmp                   SYSDBA 或 NORMAL              複製管理員

  2.查詢密碼過期天數:

    檢視引數當前值

    SQL> select * from dba_profiles where profile='DEFAULT' and resource_name like 'PASSWORD%';

    設定密碼永不過期

    SQL> alter profile default limit password_life_time unlimited;

  3.密碼相關係統引數:

  FAILED_LOGIN_ATTEMPTS
  設定登入到Oracle 資料庫時可以失敗的次數。一旦某使用者嘗試登入資料庫的達到該值時,該使用者的帳戶就被鎖定,只能由DBA能解鎖.
 
  PASSWORD_LIFE_TIME
  設定口令的有效時間(天數),一旦超過這一時間,必須重新設口令。預設為180天(11g,10gUNLIMITED).
 
  PASSWORD_REUSE_TIME
  許多系統不許使用者重新啟用過去用過的口令。該資源項設定了一個失效口令要經過多少天,使用者才可以重新使用該口令。預設為UNLIMITED.
 
  PASSWORD_REUSE_MAX
  重新啟用一個先前用過的口令前必須對該口令進行重新設定的次數(重複用的次數).
 
  PASSWORD_LOCK_TIME
  設定帳戶被鎖定的天數(當登入失敗達到FAILED_LOGIN_ATTEMPTS時).
 
  PASSWORD_GRACE_TIME
  設定在口令失效前,給予的重新設該口令的寬限天。當口令失效之後回,在登入時會出現警告資訊顯示該天數。如果沒有在寬限天內修改口令,口令將失效.
 
  PASSWORD_VERITY_FUNCTION
  該資源項允許呼叫一個PL/SQL 來驗證口令。Oracle公司已提供該應用 的指令碼,但是隻要願意的話,使用者可以制定自己的驗證指令碼。該引數的設定就是PL/SQL函式的名稱。

  預設為NULL.