当前位置导航:炫浪网>>网络学院>>编程开发>>Oracle教程

11g Oracle ORAPWD的改进

    在11g中orapwd工具也有所改进。

    首先看看11g的orapwd的参数变化:

    bash-3.00$ orapwd help=y Usage: orapwd file=<fname> password=<password> entries=<users> force=<y/n> ignorecase=<y/n> nosysdba=<y/n>

    where file - name of password file (required),password - password for SYS (optional),entries - maximum number of distinct DBA (required),force - whether to overwrite existing file (optional),ignorecase - passwords are case-insensitive (optional),nosysdba - whether to shut out the SYSDBA logon (optional Database Vault only)。

    There must be no spaces around the equal-to (=) character.

    可以看到,除了9i的file、password和entries三个参数外,还增加了force、ignorecase和nosysdba三个参数。

    其实严格意义上说,force是10g就增加的功能,而nosysdba是VAULT DATABASE所带的功能,也是10.2所引入的,只有ignorecase是真正11g新增的功能。

    其中force参数很简单,就是允许orapwd工具覆盖已有的密码文件:

    bash-3.00$ cd $ORACLE_HOME/dbs

    bash-3.00$ ls -l orapwtest11g

    -rw-r—— 1 oracle oinstall 1536 Dec 23 00:09 orapwtest11g

    bash-3.00$ orapwd file=orapwtest11g password=test

    OPW-00005: 存在同名文件 - 请删除或重命名

    默认情况下,如果同名文件存在,ORAPWD会报错。如果指定了FORCE=Y,则可以避免这个错误:

    bash-3.00$ orapwd file=orapwtest11g password=test force=y

    而nosysdba只对于DATABASE VAULT有效,这里就不详细描述了,简单的说设置这个参数为true在VAULT中可以禁止SYSDBA权限通过密码文件验证方式登陆数据库。

    参数ignorecase是11g新增的,用于设置sysdba或sysoper权限通过密码文件登陆时是否区分大小写。

    bash-3.00$ sqlplus "/ as sysdba"

    SQL*Plus: Release 11.1.0.6.0 - Production on 星期六 4月 18 05:25:08 2009

    Copyright (c) 1982, 2007, Oracle. All rights reserved.

    已连接到空闲例程。

    SQL> startup ORACLE 例程已经启动。

    Total System Global Area 5279498240 bytes

    Fixed Size 2094528 bytes

    Variable Size 3192597056 bytes

    Database Buffers 2080374784 bytes

    Redo Buffers 4431872 bytes数据库装载完毕。数据库已经打开。

    SQL> conn sys/test@test11g as sysdba已连接。

    SQL> conn sys/TEST@test11g as sysdba

    ERROR:

    ORA-01017: invalid username/password; logon denied

    警告: 您不再连接到 ORACLE.

    SQL> exit

    可以看到,默认情况下,密码文件如果不指定ignorecase的话,会区分大小写,如果指定ignorecase=y,则Oracle会忽略密码验证时密码的大小写:

    bash-3.00$ orapwd file=orapwtest11g password=test force=y ignorecase=y

    bash-3.00$ sqlplus "/ as sysdba"

    SQL*Plus: Release 11.1.0.6.0 - Production on 星期六 4月 18 06:25:29 2009

    Copyright (c) 1982, 2007, Oracle. All rights reserved.

    连接到:

    Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production

    With the Partitioning, OLAP, Data Mining and Real Application Testing options

    SQL> shutdown immediate数据库已经关闭。已经卸载数据库。

    ORACLE 例程已经关闭。

    SQL> exit从 Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production

    With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开

    bash-3.00$ sqlplus "/ as sysdba"

    SQL*Plus: Release 11.1.0.6.0 - Production on 星期六 4月 18 06:26:14 2009

    Copyright (c) 1982, 2007, Oracle. All rights reserved.

    已连接到空闲例程。

    SQL> startup

    ORACLE 例程已经启动。

    Total System Global Area 5279498240 bytes

    Fixed Size 2094528 bytes

    Variable Size 3192597056 bytes

    Database Buffers 2080374784 bytes

    Redo Buffers 4431872 bytes数据库装载完毕。数据库已经打开。

    SQL> conn sys/test@test11g as sysdba已连接。

    SQL> conn sys/TEST@test11g as sysdba已连接。

相关内容
赞助商链接