关于Oracle数据库密码文件的一点学习


1.创建密码文件的命令
orapwd file=<> password=<> entries=最大数目
这里的file命名规则在unix/linux下 orapw,在windows下为 pwd.ora
具体资料看下面的描述(这是pub中一个网友的总结)
1. unix 环境:
查了Administrator’s Reference 10g Release 2 (10.2) for UNIX-Based Operating Systems.

1. Log in as the Oracle software owner.
2. Use the orapwd utility to create the password file as follows:
$ $ORACLE_HOME/bin/orapwd file=filename password=password entries=max_users
...

filename The name of the file in which password information is written

The name of the file must be orapwsid, and you must supply the full
path name. Its contents are encrypted. Typically, the password file is
created in the $ORACLE_HOME/dbs directory.

请注意黑体字, 所以unix环境中, password file 一定是要用 orapw, 没有例外.

2. windows 环境:
查了Platform. Guide 10g Release 2 (10.2) for Microsoft Windows (32-Bit) (没查64-bit)

To create and populate a password file:
(1). Create a password file with the Password Utility:
C:> orapwd FILE=PWDsid.ora PASSWORD=password ENTRIES=max_users
where
¦ FILE specifies the password filename.
¦ SID identifies the database instance.
¦ PASSWORD sets the password for account SYS.
¦ ENTRIES sets maximum number of entries in password file. This corresponds
to maximum number of distinct users allowed to connect to the database
simultaneously with either the SYSDBA or the SYSOPER DBA privilege.

(2). Set initialization parameter file parameter REMOTE_LOGIN_PASSWORDFILE to
exclusive, shared, or none.

In search of the password file, Oracle Database looks in the registry for the value of parameter
ORA_SID_PWFILE. If no value is specified, then it looks in the registry for the
value of parameter ORA_PWFILE, which points to a file containing usernames,
passwords, and privileges. If that is not set, then it uses the default:
ORACLE_BASEORACLE_HOMEDATABASEPWDsid.ORA.
The default value is shared.

请注意黑体字, windows 环境中, 很大的部分是基于 registry 中变量 ora_sid_pwfile 或者 ora_pwfile 的设置, 缺省的值, 正如paulyibinyi兄弟指出的, 是 pwd.ora (unix中是没有这个.ora后缀的).

二,在windows下对于connect /as sysdba及其它用户可以不用密码就能登录的问题
1.这是因为oracle采用了 OS认证的方式,具体的可以查看 sqlnet.ora具体同容如下
SQLNET.AUTHENTICATION_SERVICES= (NTS)
将其改成
SQLNET.AUTHENTICATION_SERVICES= (NONE)
这样就是oracle认证方式了
2.因为用的OS认证方式,可以在操作系统->控制面版->计算机管理->用户 将当前用户的属性组 ORA_DBA去掉,
这时如果没有用户名及密码则不可以。
如下:
SQL> connect /as sysdba
ERROR:
ORA-01031: insufficient privileges

SQL> connect sys/oracle as sysdba
已连接。

三,利用alter user identified by .....来修改密码
alter user sys identified by abc一下,就连数据库中的密码和密码文件中的密码一起改成abc了;

四,如果密码文件丢失了如何办?
利用 orapwd重新创建一个就可以了

相关内容