oracle10G下在isqlplus中啟用sys賬戶的解決辦法

topinking發表於2008-07-23

oracle10G下在isqlplus中啟用sys賬戶的解決辦法

 

一般使用者登陸isqlplus的網址http://ip:5560/isqlplus(或是點選http://573b95830e0143a:5500/em中的相關連線下的iSQL*Plus),進入該網址後會直接進入資料庫使用者登陸介面,使用資料庫中的普通使用者即可登陸。

DBA使用者登陸isqlpus的網址http://ip:5560/isqlplus/dba,進入該網址後首先會彈出一個登陸框,要求先輸入iSQL*Plus DBA的使用者和密碼,注意這裡不是資料庫使用者,而是isqlplus應用伺服器要求的使用者和密碼。
要以DBA身份登陸isqlplus,必須先配置好oc4j使用者。

採用xml配置檔案認證的方式。該配置檔案位於%ORACLE_HOME%/oc4j/j2ee/isqlplus/application-deployments/isqlplus/config

但是該配置檔案中的密碼是加密過的,所以我們不能手動修改該檔案,而是通過JAZN(Java AuthoriZatioN)來配置。JAZN是oracle提供的一個JASS(Java Authentication and Authorization Service)工具.

通過JAZN,可以完成以下任務
如何進入JAZN命令環境

0.開啟CMD命令視窗先;

1.進入到目錄%ORACLE_HOME%/oc4j/j2ee/isqlplus/application-deployments/isqlplus/

2.確保JAVA_HOME環境變數指向了正確的jdk(需要1.4以上)路徑,可以使用oracle自帶的jdk,位於%ORACLE_HOME%/jdk

3.執行以下命令
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

當ORACLE_HOME設定不正確時,就直接採用路徑比較安全(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的預設密碼是welcome,但是admin使用者預設沒有webDba許可權,不能直接用於登陸isqlplus。
進入JAZN命令環境後,可以執行所有的任務:

1.新建使用者ning,密碼pass
JAZN:> adduser "iSQL*Plus DBA" isqluser  pass

2.列出使用者
JAZN:> listusers
iSQL*Plus DBA/admin
iSQL*Plus DBA/isqluser
3.授予使用者登陸isqlplus DBA的許可權
JAZN:> grantrole webDba "iSQL*Plus DBA" isqluser
4.退出JAZN命令環境
JAZN:> exit
假設上面我們建立了一個使用者isqluser,密碼為pass,並且已經授予webDba許可權。

接下來在CMD下重新啟動isqlplus應用伺服器
isqlplusctl stop
isqlplusctl start
再進入網址http://ip:5560/isqlplus/dba,在彈出的對話方塊中輸入isqluser和pass,就可以進入到資料庫登陸介面了,選擇以sysdba或sysoper身份登陸了。

相關文章