首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

Oracle sqlnet.ora 核心參數詳解與實驗驗證:命名解析順序、認證服務與 IP 存取控制

     編輯:關於SqlServer

sqlnet.ora 是 Oracle Net Services 的關鍵設定檔,同時影響客戶端與伺服器端行為。本文整理核心參數、實際驗證命名解析順序(NAMES.DIRECTORY_PATH)與認證服務(SQLNET.AUTHENTICATION_SERVICES)的交互影響,並說明 IP 存取控制參數群。

兩大核心功能面向

面向生效端關鍵參數說明
命名解析順序客戶端NAMES.DIRECTORY_PATH決定解析連線識別字的方法與優先序,預設 (tnsnames, onames, hostname)。
認證服務客戶端 + 伺服器端SQLNET.AUTHENTICATION_SERVICES指定啟用的驗證機制:none、all、nts(Windows 原生)。

重要參數速查表

參數用途備註
BEQUEATH_DETACHUnix 訊號處理開關預設 no(開啟)
DEFAULT_SDU_SIZESession Data Unit 大小(bytes)客戶/伺服端建議同設,取較小值
LOG_DIRECTORY_CLIENT/SERVER客戶/伺服端日誌路徑
NAMES.DEFAULT_DOMAIN客戶端預設網域
SQLNET_ALLOWED_LOGON_VERSIONS允許連線的 Oracle 版本如 (10,9,8)
SQLNET.INBOUND_CONNECT_TIMEOUT客戶端連線逾時秒數逾時中斷並報錯
SSL_VERSIONSSL 協定版本
TCP.EXCLUDED_NODES禁止存取的主機/IP
TCP.INVITED_NODES允許存取的主機/IP優先級高於 EXCLUDED_NODES
TCP.VALIDNODE_CHECKING啟用上述 IP 過濾設為 yes 生效
TNSPING.TRACE_DIRECTORYtnsping 追蹤檔目錄預設 $ORACLE_HOME/network/trace

實驗一:NAMES.DIRECTORY_PATH 控制解析順序

環境:tnsnames.ora 定義 bys3 指向 192.168.1.211:1521/bys3。

案例 1:僅允許 tnsnames

# sqlnet.ora
NAMES.DIRECTORY_PATH=(tnsnames)
  • sqlplus bys/bys@bys3 → 成功(本地別名)
  • sqlplus bys/bys@192.168.1.211:1521/bys3 → ORA-12154(EZCONNECT 被封鎖)

案例 2:允許 tnsnames + ezconnect

NAMES.DIRECTORY_PATH=(tnsnames,ezconnect)
  • 本地別名與 EZCONNECT 皆可連線成功。

結論:參數值為有序清單,未列入的方法直接失效;生產環境建議明確列出 (tnsnames, ezconnect) 或 (tnsnames, ldap) 等實際需求。

實驗二:SQLNET.AUTHENTICATION_SERVICES 雙端交互

參數值:none(帳密)、all(所有)、nts(Windows 原生)。

場景 1:伺服端無 sqlnet.ora,客戶端設 ALL

→ 正常登入(帳密驗證)。

場景 2:雙端皆設 ALL

→ ORA-12641: Authentication service failed to initialize,雙端嘗試協商進階驗證但環境不支援導致失敗。

場景 3:任一端改為 NONE

→ 回退帳密驗證,連線成功。

最佳實踐:若不需 Kerberos、PKI 等進階驗證,雙端均設 SQLNET.AUTHENTICATION_SERVICES=(NONE),避免不必要的協商失敗。

IP 存取控制三部曲

  1. TCP.VALIDNODE_CHECKING = yes 啟用檢查。
  2. TCP.INVITED_NODES = (192.168.1.10, appserver.corp) 白名單(優先)。
  3. TCP.EXCLUDED_NODES = (192.168.1.200) 黑名單。

修改後需 lsnrctl reload 或重啟監聽器生效。

官方文件與延伸閱讀

  • Oracle Net Services Reference:sqlnet.ora 完整參數定義
  • 限制 IP 存取實作範例:CSDN 部落格
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved