Oracle10g:如何以DBA身份登陆iSQL*Plus
上一篇:Oracle10g新特性:使用DBMS_SQLTUNE优化SQL 下一篇:关于Restore Point

Oracle10g:如何以DBA身份登陆iSQL*Plus

一般用户登陆isqlplus的网址http://ip:port/isqlplus,进入该网址后会直接进入数据库用户登陆界面,使用数据库中的普通用户即可登陆。

DBA用户登陆isqlpus的网址http://ip:port/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

再进入网址http://ip:port/isqlplus/dba,在弹出的对话框中输入ning和pass,就可以进入到数据库登陆界面了,选择以sysdba或sysoper身份登陆了。

参考文章:
Oracle官方文档中关于如何启用dba身份登陆isqlplus:http://download-west.oracle.com/doc…h2.htm#CIHDEFBA

附录:
Oracle10g如何启用isqlplus

通过以下命令启动和停止isqlplus服务:
isqlplusctl start
isqlplusctl stop

通过查看$ORACLE_HOME/install/portlist.ini 文件可以找到当前的isqlplus application server的监听端口,默认是5560.
然后打开浏览器,输入地址http://youserverip:5560/isqlplus就可以访问isqlplus了
如果要修改isqlplus的默认端口,打开配置文件ORACLE_HOME/oc4j/j2ee/isqlplus/config/http-web-site.xml,将其中的行的端口号5560修改成新的端口号
默认情况下,sysdba用户无法通过isqlplus登入。如果要以sysdba身份登入isqlplus,则需要访问下面的网址http://youserverip:5560/isqlplus/dba,但是还需要进行一定的配置才可以访问,具体的配置过程参考http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14357/ch2.htm#CIHDEFBA

本文网址:http://www.ningoo.net/html/2007/how_to_login_isqlplus_as_a_dba.html

订阅到Google | 收藏到Del.icio.us | 推荐到鲜果

相关文章 随机文章

本文Tags: , ,

没有评论


(Required)
(Required, will not be published)