一种是操作系统验证,一种是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密码验证。