客户现场,有开发人员问我,他使用系统认证没有用密码登陆Oracle数据库,报错,提示用户名和密码无效,很疑惑,问我为什么他使用系统认证会报错。我登陆他的系统后,首先看他的系统认证是否是打开的,果然发现他的系统是关闭是操作系统认证功能的,打开后问题解决。现在总结一下Oracle的密码文件及操作系统认证知识点。
今天上班遇到相同的报错。
一、密码文件
作用:主要进行dba权限的认证。
位置:
Linux下的存放位置:$ORACLE_HOME/dbs/orapw$ORACLE_SID
即:ORACLE_HOME/dbs/orapw
二、是否操作系统认证
决定在两个参数中
1、remote_remote_login_passwordfile
位于$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora参数文件中。
none:关闭密码文件认证。
exclusive:打开密码文件认证,自己独占使用(默认值)。
shared:要密码文件认证,不同实例的dba用户可以共享密码文件。
2、SQLNET.AUTHENTICATION_SERVICES
位于$ORACLE_HOME/network/admin/sqlnet.ora 。
none:关闭操作系统认证,只能密码认证。
all:Linux和AIX系统,打开操作系统认证,关闭密码文件认证,但远程需要密码文件认证。
nts:用于Windows平台打开操作系统认证。
三、测试
1、在sqlnet.ora中追加SQLNET.AUTHENTICATION_SERVICES = none,尝试dba免密登陆。
2、将 SQLNET.AUTHENTICATION_SERVICES =all,再次尝试dba用户免密登陆。
或者注释掉也可以,默认是采用操作系统认证的。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31546994/viewspace-2637352/,如需转载,请注明出处,否则将追究法律责任。