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),就要求必须采用数据库口令认证