File $Oracle_HOME/network/admin/sqlnet.ora
这个是涉及oracle 是os 认证,还是密码文件认证
$ORACLE_HOME/network/admin/sqlnet.ora中的AUTHENTICATION_SERVICES参数:
1、在windows下,SQLNET.AUTHENTICATION_SERVICES必须设置为NTS才能使用OS认证;不设置或者设置为其他任何值都不能使用OS认证。
2、在linux下,在SQLNET.AUTHENTICATION_SERVICES的值设置为ALL,或者不设置的情况下,OS验证才能成功;
a、在linux下SQLNET.AUTHENTICATION_SERVICES参数:
1、值为all时,以sysdba身份无法登录
2、值为NTS时,用sys、system等用户作为sysdba管理身份可以登录,但不能直接用sysdba身份登录
b、在windows下SQLNET.AUTHENTICATION_SERVICES参数:
1、值为NONE时,以sqlplus / as sysdba身份无法登录
2、值为NTS时,用sqlplus / as sysdba可以登录;用sys、system等用户作为sysdba管理身份也可以登录
3、值为ALL时,用sqlplus / as sysdba身份无法登录,用sys、system等用户作为sysdba管理身份也不可以登录。
c、此外还有这个参数
spfile中的REMOTE_LOGIN_PASSWORDFILE参数:
1、值为exclusive时,远程能作为sysdba身份登录
2、值为none时,以sysdba身份无法登录
在windows下将Oracle安装完成后,发现随便输入用户名密码只要选择DBA身份就能登陆进去的,解决方法如下:
以sysdba身份登录既采用的是本地(系统)认证方式,将%ORACLE_HOME%\network\admin\sqlnet.ora中的SQLNET.AUTHENTICATION_SERVICES= (NTS)
改为SQLNET.AUTHENTICATION_SERVICES= (NONE),就要求必须采用数据库口令认证