85、正確修改 sysman 用戶的密碼

 

Oracle 10g 以上密碼失效問題
oracle em無法登錄,我自己遇到的問題總結如下:

其中有兩個用戶可能密碼失效
1、 sysman
2、 dbsnmp

首先,以SYS DBA身份進入sqlpuls
打開sqlpuls

SQL->請輸入用戶名:sys as sysdba
SQL->密碼:
登錄成功以後查詢DBA用戶狀態
SQL->
select username,account_status from dba_users;
查看其中常用的用戶狀態是否是EXPIRED 還是LOCKED
有的是LOCKED<TIME>
如果sysman狀態是過期,修改密碼方法:

1、首先 開始->運行 輸入 cmd
C:/>emctl stop dbconsole
【如果提示你環境變量ORACLE_SID沒有定義,可以在我的電腦的屬性,高級裏定義一個系統環境變量,變量名是ORACLE_SID,值就是你現在用的實例的SID,設置完成後重新打開CMD】
執行完成後再停止agent
C:/>emctl stop agent
停完以後一定要確認一下dbconsole和agent是否真的停了,用下面的命令:
C:/>emctl status dbconsole
C:/>emctl status agent
確認停止以後就可以在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 安裝路徑下搜索一下emoms.properties就可以

找到文件後用記事本打開找這兩句:

oracle.sysman.eml.mntr.emdRepPwd= [Your encrypted password]

oracle.sysman.eml.mntr.emdRepPwdEncrypted=True

找到後把[Your encrypted password]改成你這個用戶要改的密碼(明文哦,不過不用擔心,重新啓動後oracle會自己把False又改回去,而且會自動給你的密碼加密。哈哈這個還是比較智能的!),然後把下面的True改成False.
4、重新啓動dbConsole
在CMD中執行:
C:/>
emctl start dbconsole
C:/>emctl start agent
兩個都啓動了以後你再到emoms.properties裏看,是不是密碼給你加密了,而且emdRepPwdEncrypted變成了True!

如果用戶dbsnmp也失效的話,同樣的辦法,先停止dbconsole和agent然後在sqlplus裏確保他的狀態是open,修改密碼,然後再去文件中改,不過這次文件不一樣,變成了targets.xml ,它的路徑在
ORACLE_HOME/[HOST]_[SID]/sysman/emd
找到這個xml以後別用記事本打開,用記事本打開是一行,不好看,你可以選擇用寫字板打開,這樣節點都很清晰看起來比較方便,找到
<Property NAME="password" VALUE="<[Your encrypted password]>" ENCRYPTED="TRUE"/>
同樣把<[Your encrypted password]>改成你要改的密碼,把後面的TRUE改成FALSE,保存。重新啓動dbconsole和agent.

 

OK,以後sysman的密碼修改不能直接在數據庫裏修改。

應該使用:emctl setpasswd dbconsole

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章