在Oracle中有一個網絡配置文件sqlnet.ora文件,該文件用兩個最常用的功能:
1.用於指定客戶端的名稱解析查詢的命令方法的順序
NAME.DIRECTORY_PATH=(tnsnames,onames,hostname)
2.服務端與客戶端同時起作用==認證方式 ---> SQLNET.AUTHENTICATION_SERVICES
一些重要的參數及其解釋:
1.BEQUEATH_DETACH
控制unix系統中signal handling 的開關,默認是no,即signal handing 打開
2.default_sdu_size
指定session data unit(SDU)的大小,單位是bytes,建議在client端和server端都設置這個參數,確保連接的時候使用相同的SDU size,如果client端和server端配置的值不匹配會使用較小的。
3.LOG_DIRECTORY_CIENT/LOG_DIRECTORY_SERVER
指定客戶端/server段log日志文件的位置
4.NAMES.DEFAULT_DOMAIN
設定客戶端解析名字的域
5.NAMES.DIRECTORY_PATH
指定client_name解析方法的次序,默認是NAMES.DIRECTORY_PATH=(tnsnames,onames,hostname)
取值可以是tnsnames,ldap(dictionary server),hostname/ezconnect,cds(分布式環境下),nis(Network information Service)
6.SQLNET_ALLOWED_LOGON_VERSIONS
指定運行連接的oracle的版本SQLNET_ALLOWED_LOGON_VERSIONS=(10,9,8)
7.SQLNET.AUTHENTICATION_SERVICES
指定啟動一個或多個認證服務,認證服務就是oracle的身份驗證服務,你登錄oracle時,有的時候不需要輸入用戶名,有的時候既需要輸入用戶名,也需要輸入密碼。那么什么時候需要,什么時候不需要,這里就和認證服務有關系了,一般有以下三種取值:
1.NONE:作用是不允許通過os系統用戶登錄數據庫,需要提供用戶名及密碼:
2.ALL:作用是允許所有的登錄方式
3.NTS:作用是允許本地操作系統用戶認證;
8.SQLNET.INBOUND_CONNECT_TIMEOUT
指定客戶端沒有連接成功超時的時間,超時之后oracle會中斷連接,同時報錯。
9.SSL_VERSION
指定ssl連接的版本
10.TCP.EXCLUDED_NODES
指定不允許訪問oracle的節點,可以使用主機名或者ip地址
11.TCP.VALIDNODE_CHECKING
使用這個參數來啟用上面的兩個參數
12.TCP.INVITED_NODES
指定允許訪問db的客戶端,它的優先級比TCP.EXCLUDED_NODES高
13.TNSPING.TRACE_DIRECTORY
使用這個參數指定tnsping trace文件的目錄,默認是$ORACLE_HOME/network/trace目錄
這里的更多參數信息參數:Oracle Database Net Services Reference
sqlnet.ora內容作用詳見官方文檔:http://docs.oracle.com/cd/B19306_01/network.102/b14213/sqlnet.htm#NETRF006
配置sqlnet.ora限制IP訪問Oracle http://blog.csdn.net/leshami/article/details/6629141
情景1:配置sqlnet.ora中包含:NAMES.DIRECTORY_PATH=(tnsnames.ezconnect),此時使用tnsnames中本地名和簡易連接都可以
情景2:關於參數SQLNETL.AUTHENTICATION_SERVICES
1.服務端不配置sqlnet.or文件,在客戶端上配置sqlnet.authentication_services=(all),可以正常登錄
2.當客戶端與服務端同時配置:sqlnet_authentication_services-(all)無法用AA/BB用戶名密碼登錄
3.將客戶端或者服務端的之一的sqlnet.ora改為sqlnet.authentication_services=(none),即可連接