一直以来,我记住的一个知识点就是:SQLNET.AUTHENTICATION_SERVICES=(NTS)是使用OS认证的必须条件之一。
今天一个偶然的机会,才知道这个结论是不完全准确的。
在本文的测试中,remote_login_passwordfile的值都为EXCLUSIVE,相关用户所属组也设置正确。
先看windows下的测试:
--设置为NTS,OS验证成功
E:oracleora92in>cat .. etworkadminSQLNET.ORA
SQLNET.AUTHENTICATION_SERVICES= (NTS)
E:oracleora92in>sqlplus "/as sysdba"
SQL*Plus: Release 9.2.0.1.0 - Production on 星期三 8月 15 22:34:56 2007
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
连接到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
sys@ORACLE9I>
--下面把SQLNET.ORA的内容注释掉,OS验证成功
E:oracleora92in>cat .. etworkadminSQLNET.ORA
#SQLNET.AUTHENTICATION_SERVICES= (NTS)
再次登录:
E:oracleora92in>sqlplus "/as sysdba"
SQL*Plus: Release 9.2.0.1.0 - Production on 星期三 8月 15 22:36:09 2007
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
ERROR:
ORA-01031: insufficient privileges
--设置为 NONE,OS验证失败
E:oracleora92in>cat .. etworkadminSQLNET.ORA
SQLNET.AUTHENTICATION_SERVICES= (NONE)
E:oracleora92in>sqlplus "/as sysdba"
SQL*Plus: Release 9.2.0.1.0 - Production on 星期三 8月 15 22:50:33 2007
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
ERROR:
ORA-01031: insufficient privileges
--设置为ALL,OS验证成功
E:oracleora92in>cat .. etworkadminSQLNET.ORA
SQLNET.AUTHENTICATION_SERVICES= (ALL)
E:oracleora92in>sqlplus "/as sysdba"
SQL*Plus: Release 9.2.0.1.0 - Production on 星期三 8月 15 22:51:21 2007
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
连接到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
sys@ORACLE9I>
登录失败,说明当前设置不允许操作系统认证。
这个例子也说明了:在windows下,SQLNET.AUTHENTICATION_SERVICES必须设置为NTS或者ALL才能使用OS认证。
接着再看看在linux下的情况:
--设置为NTS,OS验证失败
[oracle@primary admin]$ cat sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES= (NTS)
[oracle@primary admin]$ sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.3.0 - Production on Wed Aug 15 23:08:53 2007
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
ERROR:
ORA-01031: insufficient privileges
--注释掉,相当于什么都不设置,OS验证成功
[oracle@primary admin]$ cat sqlnet.ora
#SQLNET.AUTHENTICATION_SERVICES= (NTS)
[oracle@primary admin]$ sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.3.0 - Production on Wed Aug 15 23:06:17 2007
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning and Data Mining options
SQL>
--设置为NONE,OS验证失败
[oracle@primary admin]$ cat sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES= (NONE)
[oracle@primary admin]$ sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.3.0 - Production on Wed Aug 15 23:07:07 2007
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
ERROR:
ORA-01031: insufficient privileges
--随便设置一个值,OS验证失败
[oracle@primary admin]$ cat sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES= (aaa)
[oracle@primary admin]$ sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.3.0 - Production on Wed Aug 15 23:14:45 2007
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
ERROR:
ORA-01031: insufficient privileges
--设置为ALL,OS验证成功
[oracle@primary admin]$ cat sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES= (ALL)
[oracle@primary admin]$ sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.3.0 - Production on Wed Aug 15 23:07:54 2007
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning and Data Mining options
SQL>
从以上测试知道:在linux下,在SQLNET.AUTHENTICATION_SERVICES的值设置为ALL,或者不设置的情况下,OS验证才能成功。
从测试可以看出,windows和linux下要实现OS验证,SQLNET.AUTHENTICATION_SERVICES的设置要求是不一样的,甚至是相反的,为什么呢?
我们看看ORACLE对这个设置是怎么解释的:
SQLNET.AUTHENTICATION_SERVICES
Purpose
Use the parameter SQLNET.AUTHENTICATION_SERVICES to enable one or more authentication services. If authentication has been installed, it is recommended that this parameter be set to either none or to one of the authentication methods.
Default
None
Values
Authentication Methods Available with Oracle Net Services:
* none for no authentication methods. A valid username and password can be used to access the database.
* all for all authentication methods
* nts for Windows NT native authentication
Windows NT native authentication
An authentication method that enables a client single login access to a Windows NT server and a database running on the server.
从oracle的解释可以知道,SQLNET.AUTHENTICATION_SERVICES=(NTS)是WINDOWS系统专用的,对linux/UNIX是不适用的。
最后做一个简单的总结:
1、在windows下,SQLNET.AUTHENTICATION_SERVICES必须设置为NTS或者ALL才能使用OS认证;不设置或者设置为其他任何值都不能使用OS认证。
2、在linux下,在SQLNET.AUTHENTICATION_SERVICES的值设置为ALL,或者不设置的情况下,OS验证才能成功;设置为其他任何值都不能使用OS认证。
分享到:
相关推荐
春秋战国时期,是中国由奴隶社会向封建社会转型的重要历史阶段。生产力的提升与铁器时代的到来,不仅加剧了社会生产力的发展,也催生了诸侯争霸与社会动荡的局面。在此背景下,众多学术流派纷纷涌现,形成了所谓的...
【消防喷淋系统】是重要的固定消防设施,广泛应用于各类建筑中,因其价格适中、灭火效果好而受到青睐。该系统主要分为人工控制和自动控制两大类。 **1....- **人工控制系列**:在火灾发生时,需要工作人员通过PLC控制...
【小议浅阅读】 在快节奏的现代生活中,阅读已成为人们获取信息、增长知识的重要途径。尤其是对于学生,阅读更是提升素养、开阔视野的关键。然而,面对高考等高强度的学习压力,许多学生选择了“浅阅读”作为应对...
《Visual C++编程小议——从“small talk about sports”谈起》 在计算机编程的世界里,Visual C++作为Microsoft公司推出的高效能、面向对象的编程环境,一直深受开发者喜爱。当我们打开名为“small talk about ...
小议嵌入式计算机技术.pdf
小议食品安全问题.doc
小议人力资源外包.doc
Izwdlg小议香港前世今生.pdf
VC_SQLServer和Matlab混合编程管理仿真数据.pdf VC_下MSComm控件的串口通信方法.pdf VC_与Matlab混合编程技术应用分析.pdf VC_与MATLAB混合编程的实现方法.pdf VC_与MATLAB混合编程研究及开发实例.pdf VC_与OpenGL...
VC_SQLServer和Matlab混合编程管理仿真数据.pdf VC_下MSComm控件的串口通信方法.pdf VC_与Matlab混合编程技术应用分析.pdf VC_与MATLAB混合编程的实现方法.pdf VC_与MATLAB混合编程研究及开发实例.pdf VC_与OpenGL...
【行为财务理论】是20世纪80年代以来发展起来的一种新型理论,是对传统财务学的补充和扩展。传统财务学基于理性经济人假设,认为市场参与者能够做出最优决策,而行为财务理论则认为人在经济活动中并非总是理性的,...
VC_SQLServer和Matlab混合编程管理仿真数据.pdf VC_下MSComm控件的串口通信方法.pdf VC_与Matlab混合编程技术应用分析.pdf VC_与MATLAB混合编程的实现方法.pdf VC_与MATLAB混合编程研究及开发实例.pdf VC_与OpenGL...
在现代教育体系中,初中《道德与法治》课程承担着培养学生思想品德和法治意识的重要任务,是青少年健康成长的必要营养。然而,随着新教材的广泛使用和课程改革的进一步推进,教师们在课堂教学中遇到了诸多新的挑战。...
法治思想起源小议.docx
【小议房屋销售战略】 在当今的经济社会中,房地产行业占据着消费者支出的重要份额,因此,如何有效地销售房屋成为了一个至关重要的议题。消费者在购买住宅时,除了关注物业的建筑质量、具体形态(如户型)、物业...
【正文】 会计信息监管是确保会计工作正常运作和提高会计信息质量的核心环节,对于维护市场经济秩序和保护投资者权益至关重要。然而,我国当前的会计信息监管面临着诸多问题,这些问题亟需解决以提升会计信息的准确...
【小议证券违法实证】 本文探讨了证券市场中的违法行为,通过对346个案例的分析,揭示了证券违法犯罪的主要方式、主体以及其变化趋势。证券违法行为主要包括透支挪用、法人投资者以个人名义炒股、中介机构出具虚假...