众所周知Oracle数据库有个密码文件,这个密码文件的作用就是当数据库未启动的时候,可以通过密码验证的方式登录数据库并进行一系列的mount和open操作;
通过实验的方式来了解ORACLE密码文件的创建和一些相关特性;
在CentOS 6.4下安装Oracle 11gR2(x64)
1、密码文件的路径
Windows平台 $ORACLE_HOME\database
Linux平台 $ORACLE_HOME/dbs
2、密码文件的格式
windows平台 PWDsid.ora
Linux平台 orapwsid
3、密码文件的创建方式
ORAPWD FILE=filename [ENTRIES=numusers] [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参数关联)
例子: orapwd file=orapworcl password=oracle 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用户将登陆不了(虽然不合理,但是经过实验的验证也确实如此)