文件位于$ORACLE_HOME/network/admin/sqlnet.ora
我的电脑上是D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\sqlnet.ora
想通过
sqlplus "/as sysdba"
登录时,应该这样设置:
SQLNET.AUTHENTICATION_SERVICES=(NTS)
上面这样是操作系统认证。
如果想通过
sqlplus sys/manager@orcl as sysdba
登录
那么,设置成上面或者下面都可以。
SQLNET.AUTHENTICATION_SERVICES=(none)
总结:
- 在windows下,SQLNET.AUTHENTICATION_SERVICES必须设置为NTS或者 ALL才能使用OS认证;不设置或者设置为其他任何值都不能使用OS认证。
- 在linux下,在SQLNET.AUTHENTICATION_SERVICES的值设置为ALL,或者不设置的情况下,OS验证才能成功;设置为其他任何值都不能使用OS认证。
sqlnet.ora完整内容:
# sqlnet.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.
# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
注意:不要把NTS写成TNS,本人因为看到下面一行有TNS,于是写错了,导致一直连不上,后来仔细研究才发现是这里的问题。