日期:2014-05-16  浏览次数:20448 次

Orapwd 初步认识 (转)

?

Orapwd 初步认识

今天看到DBA常用工具里有个orapwd,初次相识.在CMD里输入命令如下:

C:/Documents and Settings/Administrator>orapwd
??? 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.

?

?

?

例如:D:/oracle/ora92/database>orapwd file=orcl.ora password=orclsys entries=2
?
其中参数entries的含义是表示口令文件中可以存放的最大用户数,对应于允许以SYSDBA/SYSOPER权限登录数据库的最大用户数,如果用户数超过这个值只能重建口令文件,增大entries。
file后面可以指定口令文件的全路径和文件名,否则创建在当前目录下。
?
windows下oracle默认的位置是ora92/database目录,默认的文件名是pwdSID.ora,对于别的文件名是不认的。linux下oracle默认的位置是$ORACLE_HOME/dbs目录,默认的文件名是orapwSID,对于别的文件名是不认的。

?

?

1? 为什么需要口令文件?

在数据库没有启动之前,数据库内建用户是无法通过数据库来验证身份的.
口令文件中存放sysdba/sysoper用户的用户名及口令,允许用户通过口令文件验证,在数据库未启动之前登陆,从而启动数据库
如果没有口令文件,在数据库未启动之前就只能通过操作系统认证.
使用Rman,很多时候需要在nomount,mount等状态对数据库进行处理
所以通常要求sysdba权限如果属于本地DBA组,可以通过操作系统认证登陆
如果是远程sysdba登陆,需要通过passwordfile认证.

?

2、口令文件损坏或者丢失怎么办?

口令文件就是sysdba/sysoper用户的唯一口令文件,丢了就进不来,不管数据库启动没有。连接报错...

SQL> connect sys/oracle@fzlgfm as sysdba
ERROR:
ORA-01031: insufficient privileges