共计 2005 个字符,预计需要花费 6 分钟才能阅读完成。
数据库版本:Oracle 11.2.0.4
1、官网概念
SQLNET.AUTHENTICATION 参数,官网给出一下解释说明
Purpose
To enable one or more authentication services. If authentication has been installed, then it is recommended that this parameter be set to either none or to one of the authentication methods.
Default
ALL
Note:
When installing the database with Database Configuration Assistant (DBCA), this parameter may be set to nts in the sqlnet.ora file.
Values
Authentication Methods Available with Oracle Net Services:
NONE for no authentication methods, including Microsoft Windows native operating system authentication. When SQLNET.AUTHENTICATION_SERVICES is set to none, a valid user name and password can be used to access the database.
ALL for all authentication methods.
NTS for Microsoft Windows native operating system authentication.
Authentication Methods Available with Oracle Advanced Security:
kerberos5 for Kerberos authentication.
radius for RADIUS authentication.
tcps for SSL authentication.
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),但是不会影响我们 plsql 登录数据库。
更多 Oracle 相关信息见 Oracle 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=12
: