数据库版本:oracle 11.2.0.4
1、官方概念
SQLNET.AUTHENTICATION_SERVICES参数,官方给出的解释说明如下:
目的:启用一个或多个认证服务。如果已安装认证服务,建议将此参数设置为none或其中一种认证方法。
默认值:ALL
注意:使用数据库配置助手(DBCA)安装数据库时,此参数在sqlnet.ora文件中可能被设置为nts。有效值:Oracle Net Services提供的认证方法包括NONE(不使用任何认证方法,包括Microsoft Windows本机操作系统认证)。当SQLNET.AUTHENTICATION_SERVICES设置为none时,可以使用有效的用户名和密码访问数据库。ALL(所有认证方法)。NTS(Microsoft Windows本机操作系统认证)。Oracle高级安全性提供的认证方法包括kerberos5(Kerberos认证)、radius(RADIUS认证)和tcps(SSL认证)。
2、Windows平台
对于Windows平台,参数SQLNET.AUTHENTICATION_SERVICES主要有以下几种情况:
(1). sqlnet.ora文件为空,或用#注释掉 --密码文件验证通过,操作系统认证无法通过 (2). SQLNET.AUTHENTICATION_SERVICES = (NTS) --操作系统验证通过,密码文件认证也能通过 (3). SQLNET.AUTHENTICATION_SERVICES = (NONE) --密码文件验证通过,操作系统认证无法通过 (4). SQLNET.AUTHENTICATION_SERVICES = (NONE,NTS) --操作系统验证通过(前后顺序颠倒也一样),密码文件认证也能通过 (5). SQLNET.AUTHENTICATION_SERVICES = (ALL) --在Windows下,这种方式是错误的,会报以下错误:

3、Linux平台
对于Linux平台,参数SQLNET.AUTHENTICATION_SERVICES主要有以下几种情况:
(1). sqlnet.ora文件为空,或用#注释掉 --操作系统验证通过,密码文件认证无法通过 (2). SQLNET.AUTHENTICATION_SERVICES = (NTS) --操作系统验证无法通过,密码文件认证也无法通过 (3). SQLNET.AUTHENTICATION_SERVICES = (NONE) --操作系统验证无法通过,密码文件认证也无法通过 (4). SQLNET.AUTHENTICATION_SERVICES = (NONE,NTS) --基于操作系统验证(前后顺序颠倒也一样),密码文件认证也能通过 (5). SQLNET.AUTHENTICATION_SERVICES = (ALL) --操作系统验证通过,密码文件认证无法通过
4、总结
(1) 该参数的默认值为ALL,通过DBCA建库时,该参数可能为NTS。 (2) 在Windows中,sqlnet.ora文件中默认会包含SQLNET.AUTHENTICATION_SERVICES参数,设置方式如上所述;但是在Linux中,默认不包含SQLNET.AUTHENTICATION_SERVICES参数,因此我们刻意配置该参数没有必要。 (3) SQLNET.AUTHENTICATION_SERVICES参数只会影响我们在数据库服务器本地登录管理员账号(sys),但不会影响我们使用PL/SQL登录数据库。










