ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle工具——ORAPWD

Oracle工具——ORAPWD

原创 Linux操作系统 作者:yangtingkun 时间:2009-04-09 23:44:50 0 删除 编辑

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

 

 

拥有SYSDBASYSOPER权限的用户,可以执行类似CREATE DATABASEDROP DATABASERECOVERSTARTUPSHUTDOWN之类的操作。这两个权限不但很高,而且很特殊。因为这些用户不能通过数据库进行验证。当数据库关闭后,如果一个拥有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密码已经变为新设置的密码了。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-586947/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1955
  • 访问量
    10455863