在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已连接。