以下的文章主要介紹的是Oracle10g以DBA身份來登陸SQL*Plus的實際操作,我前兩天在網上看到過好幾篇相關的文章,和此步驟做實驗,悟出如何在Windows XP Pro上安裝實際操作步驟,下面的文章路徑改一下就可以實現了。
Oracle10g:如何以DBA身份登陸iSQL*Plus
一般用戶登陸isqlplus的網址http://iport/isqlplus,進入該網址後會直接進入數據庫用戶登陸界面,使用數據庫中的普通用戶即可登陸。
DBA用戶登陸isqlpus的網址http://iport/isqlplus/dba,進入該網址後首先會彈出一個登陸框,要求先輸入iSQL*Plus DBA的用戶和密碼,注意這裡不是數據庫用戶,而是isqlplus應用服務器要求的用戶和密碼。
要以DBA身份登陸isqlplus,必須先配置好oc4j用戶。oc4j可以使用兩種身份認證方式:基於xml配置文件(jazn-data.XML)
基於LDAP(Oracle Internet Directory)
本文只涉及第一種方式,也就是采用XML配置文件認證的方式。該配置文件位於$Oracle_HOME/oc4j/J2EE/isqlplus/application-deployments/isqlplus/config.
但是該配置文件中的密碼是加密過的,所以我們不能手動修改該文件,而是通過JAZN(Java AuthoriZatioN)來配置。JAZN是Oracle提供的一個JASS(Java Authentication and Authorization Service)工具,Java的東西我不太懂,所幸這裡只要照著文檔一步步操作就ok.
通過JAZN,可以完成以下任務Create users List users Grant the webDba role Remove users Revoke the webDba role Change user passWords
以上任務,可以先進入JAZN命令環境後再執行,也可以直接通過一條完整的命令行實現。完整的命令行其實就是在進入JAZN的命令後面直接加上對應的任務選項即可,本文只以JAZN命令環境為例。
如何進入JAZN命令環境
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
其中realm=iSQL*Plus DBA,user=admin,這些可以從XML配置文件中看到,admin的默認密碼是welcome,但是admin用戶默認沒有webDba權限,不能直接用於登陸isqlplus.
注意該命令一定要先進入第一步的目錄後再執行,否則會報錯Oracle.security.jazn.JAZNRuntimeException: Configuration file "configjazn.XML" does not exist. Check your JAAS configuration settings.或者Realm [iSQL*Plus DBA] does not exist in system.
如果報以上的錯誤,請仔細檢查你的當前目錄是否和第一步中給出的目錄完全一致
進入JAZN命令環境後,可以執行所有的任務:
1.新建用戶ning,密碼pass JAZN:
- > adduser "iSQL*Plus DBA" ning pass
2.列出用戶JAZN:
- > listusers iSQL*Plus DBA/admin iSQL*Plus DBA/ning
JAZN:
- > listusers "iSQL*Plus DBA" admin ning
3.授予用戶登陸isqlplus DBA的權限JAZN:
- > grantrole webDba "iSQL*Plus DBA" ning
4.撤銷用戶登陸isqlplus DBA的權限JAZN:
- > revokerole webDba "iSQL*Plus DBA" ning
5.刪除用戶JAZN:
- > remuser "iSQL*Plus DBA" ning
6.修改用戶密碼JAZN:
- > setpasswd "iSQL*Plus DBA" ning pass newpass
7.退出JAZN命令環境JAZN:> exit
假設上面我們創建了一個用戶ning,密碼為pass,並且已經授予webDba權限。
接下來重新啟動isqlplus應用服務器isqlplusctl stop isqlplusctl start
在彈出的對話框中輸入ning和pass,就可以進入到數據庫登陸界面了,選擇以sysdba或sysoper身份登陸了,以上的相關內容就是對Oracle10g:如何以DBA身份登陸SQL*Plus的介紹,望你能有所收獲。