Oracle工具——ORAPWD

Oracle工具——ORAPWD
===========================================================

OracleORAPWD工具用来创建密码文件。

 


拥有SYSDBASYSOPER权限的用户,可以执行类似CREATE DATABASEDROP DATABASERECOVERSTARTUPSHUTDOWN之类的操作。这两个权限不但很高,而且很特殊。因为这些用户不能通过数据库进行验证。当数据库关闭后,如果一个拥有SYSDBA权限的用户要启动数据库,那么这个用户的验证肯定要放在数据库之外。

因此Oracle提高了操作系统验证和密码文件验证两种方式。而ORAPWD正是Oracle用来生成密码文件的工具。

密码文件一般放在ORACLE_HOME/dbs目录下,对于WINDOWS环境,则是ORACLE_HOMEdatabase目录。文件名称为orapw + $ORACLE_SID

这个命令很简单:

$ orapwd -h
Usage: orapwd file=<fname> password=<password> entries=<users>

where
file - name of password file (mand),
password - password for SYS (mand),
entries - maximum number of distinct DBA and OPERs (opt),
There are no spaces around the equal-to (=) character.

创建密码文件可以重新设置SYS用户的密码:

$ sqlplus /nolog

SQL*Plus: Release 9.2.0.4.0 - Production on 星期五 4 10 01:44:03 2009

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

SQL> conn sys/abc@bjtest as sysdba
ERROR:
ORA-01017: invalid username/password; logon denied


SQL> conn sys/test@bjtest as sysdba
已连接。
SQL> exit
Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production
中断开

可以看到指定bjtest服务名的时候,是没有使用操作系统验证的,可以看到目前SYS用户的密码是TEST

下面通过ORAPWD工具新建一个密码文件,指定一个新的密码:

$ cd $ORACLE_HOME/dbs
$ mv orapwbjtest orapwbjtest.bak
$ orapwd file=orapwbjtest password=newpasswd entries=100

其中password用来设置SYS用户密码,而entries表示密码文件中可以保存多少条记录。需要注意,这个值并不是一个确切的数量,真正可以保存的记录数可能会有所出入,这和1个操作系统块能保存多少条记录有关系。

下面看看新密码是否生效:

$ sqlplus /nolog

SQL*Plus: Release 9.2.0.4.0 - Production on 星期五 4 10 01:45:50 2009

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

SQL> conn sys/test@bjtest as sysdba
ERROR:
ORA-01031: insufficient privileges


SQL> conn sys/newpasswd@bjtest as sysdba
ERROR:
ORA-01031: insufficient privileges


SQL> conn / as sysdba
已连接。
SQL> shutdown immediate
数据库已经关闭。已经卸载数据库。
ORACLE
例程已经关闭。
SQL> startup
ORACLE
例程已经启动。

Total System Global Area 9432971568 bytes
Fixed Size 756016 bytes
Variable Size 838860800 bytes
Database Buffers 8589934592 bytes
Redo Buffers 3420160 bytes
数据库装载完毕。数据库已经打开。
SQL> conn sys/test@bjtest as sysdba
ERROR:
ORA-01017: invalid username/password; logon denied

警告: 您不再连接到 ORACLE
SQL> conn sys/newpasswd@bjtest as sysdba
已连接。

可以看到将原有的密码文件替换后,新的密码文件并不会当时生效,从返回的错误ORA-1031也可以看出这个问题。

需要Oracle重新启动,加载新的密码文件后才可以生效,这是SYS密码已经变为新设置的密码了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值