oracle何时需要orapwd,Oracle工具——ORAPWD

Oracle的ORAPWD工具用来创建密码文件。

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

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

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

这个命令很简单:

$ orapwd -h

Usage: orapwd file=password=entries=

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密码已经变为新设置的密码了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值