Posted on 2008-06-09 08:47
詩特林 閱讀(1907)
評論(0) 編輯 收藏 所屬分類:
Oracle
oracle10G下在isqlplus中啟用sys賬戶的解決辦法
一般用戶登陸isqlplus的網(wǎng)址http://ip:5560/isqlplus(或是點(diǎn)擊http://573b95830e0143a:5500/em中的相關(guān)連接下的iSQL*Plus),進(jìn)入該網(wǎng)址后會直接進(jìn)入數(shù)據(jù)庫用戶登陸界面,使用數(shù)據(jù)庫中的普通用戶即可登陸。
DBA用戶登陸isqlpus的網(wǎng)址http://ip:5560/isqlplus/dba,進(jìn)入該網(wǎng)址后首先會彈出一個(gè)登陸框,要求先輸入iSQL*Plus DBA的用戶和密碼,注意這里不是數(shù)據(jù)庫用戶,而是isqlplus應(yīng)用服務(wù)器要求的用戶和密碼。
要以DBA身份登陸isqlplus,必須先配置好oc4j用戶。
采用xml配置文件認(rèn)證的方式。該配置文件位于%ORACLE_HOME%/oc4j/j2ee/isqlplus/application-deployments/isqlplus/config
但是該配置文件中的密碼是加密過的,所以我們不能手動修改該文件,而是通過JAZN(Java AuthoriZatioN)來配置。JAZN是oracle提供的一個(gè)JASS(Java Authentication and Authorization Service)工具.
通過JAZN,可以完成以下任務(wù)
如何進(jìn)入JAZN命令環(huán)境
0.打開CMD命令窗口先;
1.進(jìn)入到目錄%ORACLE_HOME%/oc4j/j2ee/isqlplus/application-deployments/isqlplus/
2.確保JAVA_HOME環(huán)境變量指向了正確的jdk(需要1.4以上)路徑,可以使用oracle自帶的jdk,位于%ORACLE_HOME%/jdk
3.執(zhí)行以下命令
java -Djava.security.properties=%ORACLE_HOME%/sqlplus/admin/iplus/provider -jar $ORACLE_HOME/oc4j/j2ee/home/jazn.jar -user "iSQL*Plus DBA/admin" -password welcome -shell
當(dāng)ORACLE_HOME設(shè)置不正確時(shí),就直接采用路徑比較安全(java -Djava.security.properties=G:\oracle\product\10.1.0\Db_2/sqlplus/admin/iplus/provider -jar G:\oracle\product\10.1.0\Db_2/oc4j/j2ee/home/jazn.jar -user "iSQL*Plus DBA/admin" -password welcome -shell)
其中realm=iSQL*Plus DBA,user=admin,這些可以從xml配置文件中看到,admin的默認(rèn)密碼是welcome,但是admin用戶默認(rèn)沒有webDba權(quán)限,不能直接用于登陸isqlplus。
進(jìn)入JAZN命令環(huán)境后,可以執(zhí)行所有的任務(wù):
1.新建用戶ning,密碼pass
JAZN:> adduser "iSQL*Plus DBA" isqluser pass
2.列出用戶
JAZN:> listusers
iSQL*Plus DBA/admin
iSQL*Plus DBA/isqluser
3.授予用戶登陸isqlplus DBA的權(quán)限
JAZN:> grantrole webDba "iSQL*Plus DBA" isqluser
4.退出JAZN命令環(huán)境
JAZN:> exit
假設(shè)上面我們創(chuàng)建了一個(gè)用戶isqluser,密碼為pass,并且已經(jīng)授予webDba權(quán)限。
接下來在CMD下重新啟動isqlplus應(yīng)用服務(wù)器
isqlplusctl stop
isqlplusctl start
再進(jìn)入網(wǎng)址http://ip:5560/isqlplus/dba,在彈出的對話框中輸入isqluser和pass,就可以進(jìn)入到數(shù)據(jù)庫登陸界面了,選擇以sysdba或sysoper身份登陸了。