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.