Oracle 10g 以上密碼失效問題
oracle em無法登入,我自己遇到的問題總結如下:
其中有兩個使用者可能密碼失效
1、 sysman
2、 dbsnmp
SYSMAN和DBSNMP跟涉及到Oracle的EM,所以跟其他的使用者修改密碼方式有所區別。
DBSNMP是Oracle資料庫中用於智能代理(Intelligent Agent)的使用者,用來監控和管理資料庫相關效能的使用者,如果停止該使用者,則無法提取相關的資料資訊;
SYSMAN是Oracle資料庫中用於EM管理的使用者,如果你不用該使用者,也可以刪除;
首先,以SYS DBA身份進入sqlpuls
開啟sqlpuls
SQL->sqlplus /nolog
SQL->sys / as sysdba
登入成功以後查詢DBA使用者狀態
SQL->select username,account_status from dba_users;
查看其中常用的使用者狀態是否是EXPIRED 還是LOCKED
有的是LOCKED<TIME>
如果sysman狀態是到期,修改密碼方法:
1、執行emctl stop dbconsole
使用下面的命令來檢查是否缺失停止了:
emctl status dbconsole
確認停止以後就可以在sqlpuls裡改密碼了
2、執行下面的命令修改sysman密碼:
SQL->alter user sysman identified by <你要改的密碼>;
不過首先你得確認一下sysman是否被鎖定,就是執行
SQL->select username,account_status from dba_users;
看sysman的狀態,如果是LOCKED,那麼你先得解鎖:
SQL->alter user sysman account unlock;
解鎖完成後再修改密碼,或者修改後再解鎖都行,步驟可以顛倒,但是絕對不能少。
修改完成後
SQL->connect sysman/密碼
如果串連成功就可以進行下一步了。
3、修改emoms.properties
在路徑 ORACLE_HOME\[HOST]_[SID]\sysman\config下
找到檔案後編輯以下兩句:
oracle.sysman.eml.mntr.emdRepPwd= [Your encrypted password]
oracle.sysman.eml.mntr.emdRepPwdEncrypted=True
找到後把[Your encrypted password]改成你這個使用者要改的密碼(明文),然後把下面的True改成False.
4、重新啟動dbConsole
emctl start dbconsole
啟動後你再到emoms.properties裡看,是不是密碼給你加密了,而且emdRepPwdEncrypted變成了True!
如果使用者dbsnmp也失效的話,同樣的辦法,先停止dbconsole和agent然後在sqlplus裡確保他的狀態是open,修改密碼,然後再去檔案中改,不過這次檔案不一樣,變成了targets.xml ,它的路徑在
ORACLE_HOME\[HOST]_[SID]\sysman\emd
修改以下行:
<Property NAME="password" VALUE="<[Your encrypted password]>" ENCRYPTED="TRUE"/>
同樣把<[Your encrypted password]>改成你要改的密碼,把後面的TRUE改成FALSE,儲存。重新啟動dbconsole