一种是操作系统验证,一种是oracle密码文件验证。


在文件C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\sqlnet.ora里:

# sqlnet.ora Network Configuration File: C:\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)


windows

SQLNET.AUTHENTICATION_SERVICES= (NTS)


是操作系统验证,此时,sys这样登录:

SQL> conn /as sysdba
已连接到空闲例程。



SQLNET.AUTHENTICATION_SERVICES= (NONE)


是oracle密码验证,此时,sys这样登录:

SQL> conn sys/manager as sysdba
已连接到空闲例程。




SQLNET.AUTHENTICATION_SERVICES= (NONE,NTS)


两种都可以:

SQL> conn /as sysdba
已连接到空闲例程。
SQL> conn sys/manager as sysdba
已连接到空闲例程。
SQL>



unix/linux

默认情况下Unix/Linux下的sqlnet.ora文件是没有SQLNET.AUTHENTICATION_SERVICES参数的,此时是操作系统验证和Oracle密码验证并存。

加上SQLNET.AUTHENTICATION_SERVICES这个参数后,不管SQLNET.AUTHENTICATION_SERVICES设置为NONE还是NTS还是(NONE,NTS),都是基于Oracle密码验证。