SQLNET.AUTHENTICATION_SERVICES和作業系統認證
轉自http://blog.csdn.net/ArduousBonze/archive/2008/12/25/3601544.aspx
一直以來,我記住的一個知識點就是: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認證。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-604045/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 作業系統認證Oracle作業系統
- Oracle作業系統認證Oracle作業系統
- 【登陸認證】oracle的作業系統認證和口令檔案認證方式(轉載)Oracle作業系統
- 不同作業系統上遮蔽oracle的作業系統認證方式作業系統Oracle
- 1.6.4.2. 準備作業系統認證作業系統
- 作業系統認證與ORACLE密碼檔案認證方式作業系統Oracle密碼
- 關於ORACLE作業系統認證和ORAPWD密碼檔案認證SYSDBA許可權Oracle作業系統密碼
- 通過AIX 6.1 作業系統管理員認證AI作業系統
- 中興新支點作業系統獲得國家安全作業系統四級認證作業系統
- 作業系統(AIX)雙因素身份認證解決方案作業系統AI
- 在windows透過作業系統認證登入ORACLEWindows作業系統Oracle
- 在windows通過作業系統認證登入ORACLEWindows作業系統Oracle
- 禁用作業系統認證作業系統
- Linux作業系統的認識和使用Linux作業系統
- 1.認識作業系統作業系統
- 使用oracle的作業系統認證(Operating System Authentication)的方法Oracle作業系統
- 1.6.4. 作業系統驗證作業系統
- 聯瑞網路卡獲得銀河麒麟作業系統適配認證證書作業系統
- 作業系統身份驗證和口令檔案身份驗證總結作業系統
- 智和網管平臺與統信作業系統完成認證 強力支撐信創國產替代程式作業系統
- 認證系統之登入認證系統的進階使用 (二)
- 作業系統(1)——作業系統概述作業系統
- 作業系統(一):作業系統概述作業系統
- 作業系統(二):作業系統結構作業系統
- 【作業系統】作業系統綜述(一)作業系統
- 職業認證---系統整合工程師考試工程師
- 作業系統 作業5作業系統
- 瞭解和熟悉作業系統作業系統
- 對於計算機作業系統的認識計算機作業系統
- DRF內建認證元件之自定義認證系統元件
- 支援“中國芯”|綠盟雲安全產品與麒麟作業系統完成相容性認證作業系統
- 國內首家!杉巖安全儲存率先完成國產作業系統互相容雙認證作業系統
- 【LISTENER】Oracle 10g監聽的本地作業系統認證(Local OS Authentication)安全特性Oracle 10g作業系統
- [備忘錄] Windows版本Oracle中新增作業系統認證使用者的步驟WindowsOracle作業系統
- 關於在Linux作業系統下校園網 瑞捷的認證(xrgsu)(轉)Linux作業系統
- 作業系統1—作業系統概論(上)作業系統
- 作業系統2—作業系統概論(下)作業系統
- 今天安裝的資料庫出現作業系統認證可以透過,口令檔案認證不能透過的情況.資料庫作業系統