1.密码文件的作用
具有 sysdba/sysoper权限 远程登录时,需要用到密码文件
sqlplus / as sysdba //操作系统认证,用户密码即使不正确也可以登录,不安全
操作系统认证(只要可以登录这个操作系统,我就不管你的用户名和密码)
sqlnet.ora
sqlnet.authentication_services=(all|none)
none:关闭操作系统认证,使用密码文件认证
all:使用操作系统认证,关闭本机密码文件认证
关闭操作系统认证:
#cd /u01/oracle/11g/network/admin/samples
#vim sqlnet.ora
sqlnet.authentication_services=(none)
密码文件认证:
remote_login_passwordfile
SQL> show parameter remote
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_dependencies_mode string TIMESTAMP
remote_listener string
remote_login_passwordfile string EXCLUSIVE //该文件存放密码
remote_os_authent boolean FALSE
remote_os_roles boolean FALSE
result_cache_remote_expiration integer 0
SQL>
none:关闭密码文件认证,使用操作系统认证
exclive:使用独占的密码文件认证
shared:多个实例共享同一个密码文件 ---一般使用到集权环境中,不能用alter user 修改密码会出现问题
修改有sysdba 权限的用户密码都不能修改成功
关闭密码文件认证:
>>>alter system set remote_login_passwordfile=none scope=spfile;
sqlnet.authenication_services=(none) //多种组合
remote_login_passwordfile=none
2.创建密码文件
oracle$> orapwd //创建密码文件
[oracle@up12 ~]$ orapwd
Usage: orapwd file=<fname> entries=<users> force=<y/n> ignorecase=<y/n> nosysdba=<y/n>
where
file - name of password file (required),
password - password for SYS will be prompted if not specified at command line,
entries - maximum number of distinct DBA (optional),
force - whether to overwrite existing file (optional),
ignorecase - passwords are case-insensitive (optional),
nosysdba - whether to shut out the SYSDBA logon (optional Database Vault only).
There must be no spaces around the equal-to (=) character.
cd /u01/oracle/11g/dbs
orapwdORACLE_SID //linux系统中
pwdORACLE_SID //windows系统中
$ORACLE_HOME/dbs/orapeORACLE_SID
orapwd file=文件名 password=密码 entries=5(可以放的用户,一般不跟他,跟块的大小有关)
3.查看密码文件
select * from v$pwfile_users //查看密码文件
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP SYSAS //存放具有这三种权限的用户
------------------------------ ----- ----- -----
SYS TRUE TRUE FALSE
4.密码文件的限制
限制用户的远程登录
orapwORACLE_SID
5.密码文件丢失处理
只影响远程登录,不影响数据库运行
来源:oschina
链接:https://my.oschina.net/u/2918364/blog/801566