前言:
众所周知Oracle数据库有个密码文件,这个密码文件的作用就是当数据库未启动的时候,可以通过密码验证的方式登录数据库并进行一系列的mount和open操作;
通过实验的方式来了解ORACLE密码文件的创建和一些相关特性;
1、密码文件的路径
Windows平台 $ORACLE_HOME\database
Linux平台 $ORACLE_HOME/dbs
2、密码文件的格式
windows平台 PWDsid.ora
Linux平台 orapwsid
3、密码文件的创建方式
ORAPWD FILE=<filename> PASSWORD=<password> [ENTRIES=max_users] [FORCE={Y|N}] [IGNORECASE={Y|N}]
相关参数:
Argument | Description |
FILE | Name to assign to the password file. You must supply a complete path. If you supply only a file name, the file is written to the current directory.(密码文件名,需要根据上面的格式命名) |
ENTRIES | (Optional) Maximum number of entries (user accounts) to permit in the file. (有多少个sysdba,sysoper权限用户放到密码文件中去) |
FORCE | (Optional) If y, permits overwriting an existing password file. (如果已经存在了密码文件,可以覆盖) |
IGNORECASE | (Optional) If y, passwords are treated as case-insensitive.(忽略大小写,这个参数还需要跟SEC_CASE_SENSITIVE_LOGO参数关联) |
例子:
C:/Documents and Settings/>orapwd file=D:/oracle/product/10.1.0/Db_1/database/PWDorcl.ORA password=admin entries=40 force=y;
4、密码文件的认证方式有两种,分别如下:
使用与操作系统集成的身份验证
使用Oracle数据库的密码文件进行身份认证
通过这两种密码认证的时候,涉及到两个参数:
4.1 remote_login_passwordfile = none | exclusive |shared 位于$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora参数文件中
none : 不使密码文件认证,需要通过操作系统认证,即数据库的特权用户只能从操作系统进行登录
exclusive :要密码文件认证,自己独占使用(默认值)
shared :要密码文件认证,不同实例dba用户可以共享密码文件
4.2 $ORACLE_HOME/network/admin/sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES = none | all | ntf(windows)
none: 表示关闭操作系统认证,只能密码认证
all : 用于linux或unix平台,关闭本机密码文件认证,采用操作系统认证,但远程<异机>可以使用密码文件认证
nts : 用于windows平台
注意:当1和2都是none的情况下sys用户将登陆不了(虽然不合理,但是经过实验的验证也确实如此)