使用口令文件验证的用户只能是被赋予SYSDBA或SYSOPER角色的用户。
1. 口令文件的创建
在使用Oracle Instance Manager创建一数据库实例的时侯,在$ORACLE_HOME/dbs目录下还自动创建了一个与之对应的密码文件,文件名为orapwSID.ora(WINDOWS环境下该文件通常位于ORACLE_HOME\database下,文件名为PWD.ORA)。在此之后,管理员也可以根据需要,使用工具orapwd命令手工创建密码文件。
$orapwd file= password= entries=
在口令文件丢失或被破坏的情况下,SYS用户仍然可以以本地sysdba身份验证登录到数据库中,但不能以sysdba远程登录了。
如果要将remote_logon_passwordfile的值设置为exclusive,且赋予用户 sysdba和sysoper权限,则entries参数是必须的。
一旦创建了口令文件,那么连接到数据库并使用alter user 语句来修改sys口令,将会改变存储在数据字典中的口令以及口令文件中的口令。
2. 维护口令文件
如果试图添加大于entries中指定数量的用户,会出现ORA-01996错误,表明sysoper或sysdba权限的用户过多了。这时,需要创建一个更大的口令文件,给已经存在的用户添加权限后再增加新的用户。
v$pwfile_users视图可以找出口令文件中的用户,将其保存后就可以关闭数据库,删除或重命名旧的口令文件,再新建一个符合要求的口令文件,确保entries参数设置比之前大,计算需要增加的用户并留有一定的buffer。再将之前存在的用户添加到新文件中(grant sysdba to olduser)。
3.修改口令文件的状态
口令文件的状态信息存放于此文件中,当它被创建时,缺省状态是SHARED,可以通过修改参数REMOTE_LOGIN_PASSWORDFILE的设置来改变口令文件的状态。该参数有以下几种状态:
NONE:指示Oracle系统不使用密码文件,特权用户的登录通过OS进行身份验证;
EXCLUSIVE:指示只有一个数据库实例可以使用此密码文件。只有在此设置下的密码文件可以包含有除SYS以外的用户信息,即允许将系统权限SYSOPER/SYSDBA授予除SYS以外的其他用户。
SHARED:指示可有多个数据库实例可以使用此密码文件。在此设置下只有SYS帐号能被密码文件识别,即使文件中存有其他用户的信息,也不允许他们以SYSOPER/SYSDBA的权限登录。此设置为缺省值。
4.删除口令文件
不要在数据库连接或打开和remote_login_passwordfile参数设置为exclusive或shared的情况下删除或修改(也不要通过grant sysdba,grant sysoper,revoke相同的权限或用户修改口令文件)口令文件。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10640532/viewspace-706267/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10640532/viewspace-706267/