一、Oracle的权限验证方式:
Oracle
的验证方式取决于三个属性:
*
SQLNET.ORA参数文件中的参数SQLNET.AUTHENTICATION_SERVICES设置
*
PFILE(SPFILE)参数文件中的参数REMOTE_LOGIN_PASSWORDFILE设置
*
口令文件orapw$SID(Linux) | PWD$SID.ora(Windows)
Oracle权限认证的基本顺序是这样的:先由SQLNET.AUTHENTICATION_SERVICES的设置值来决定是使用OS认证还是口令文件认证,如果使用口令文件认证的话就要看后面两个条件了:如果REMOTE_LOGIN_PASSWORDFILE参数设置为非NONE而且口令文件存在的话就能正常使用口令文件认证,否则将会失败。
1
、
OS
验证
①
为用户创建操作系统帐号
②
讲用户添加到
Oracle
安装时定义的组中(安装介质时创建)
③
设置REMOTE_LOGIN_PASSWORDFILE为
NONE
SQL> CONN / AS SYSDBA
SQL> CONN / AS SYSOPER
2
、密码文件验证
①
为用户创建操作系统帐号
②
创建密码文件:
ORAPWD FILE=file_name PASSWORD=password ENTRIES=max_users
③
将REMOTE_LOGIN_PASSWORDFILE设为
EXCLUSIVE
④
以
SYS
用户登陆,创建用户,并
GRANT SYSDBA to scott
* GRANT SYSDBA
语句即将用户加入密码文件中
SQL> CONN scott/password AS SYSDBA
详细的情况参见:
http://www.lansz.com/html/2008/06/oracle_os_pwfile_authentication.html
二、密码文件管理
1
、创建:
ORAPWD FILE=file_name PASSWORD=password ENTRIES=max_users
FILE
:指定完整路径名的文件,经过加密无法直接读取。
RAC
中多个实例必须指向一个密码文件。
PASSWORD
:
SYS
用户密码,使用
ALTER
修改
SYS
密码时,密码文件中随之修改。
ENTRIES
:密码文件可以接受的登陆个数,通常是
4
的倍数,可以超出,但最好有多。
2
、REMOTE_LOGIN_PASSWORDFILE:
NONE
:默认值,结果是返回密码文件不存在的结果。
EXCLUSIVE
:密码文件只能用于一个数据库,可以讲
SYSDBA/SYSOPER
权限授予个人用户
SHARED
:可用于多个数据库,但只能针对
SYS
用户
(
用于一个管理员管理多个数据库时
)
3
、密码文件用户查看
select
*
from
v$pwfile_users;
4
、增加密码文件的用户数目:
*
查找v$pwfile_users中的密码文件数目
*
关闭数据库
*
删除现有密码文件
*
用
ORAPWD
重新创建密码文件,将
ENTRIES
设置得大一点
*
重新将密码文件用户添加进去
*
注意删除和重新建立之后必须重新添加,因为时间标记和校验不同