程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 詳解sqlnet.ora的作用

詳解sqlnet.ora的作用

編輯:Oracle數據庫基礎
 

說到sqlnet.ora文件,我們平時關注的比較少,可以說是非常少,一般也就配置一下listener.ora和tnsnames.ora這兩個文件。那麼這個sqlnet.ora是干嘛的呢?

說白了,sqlnet.ora文件也就是一個文本配置文件,裡面有一些配置項,然後程序讀取這裡面的配置項,進行一些配置,控制客戶端訪問數據庫服務器。我們先看看sqlnet.ora中的內容。
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

裡面就上面那麼兩行的內容,先簡單說說這兩行分別起什麼作用。
# 指定啟動一個或多個認證服務
SQLNET.AUTHENTICATION_SERVICES= (NTS)

# 指定CLIENT NAME解析方法的次序,默認是NAMES.DIRECTORY_PATH=(tnsnames, onames, hostname)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

常見的作用

上面通過注釋簡單說了一下它的兩個作用,而這兩個作用也是最常配置的,下面就說說這兩個配置項的作用。
1.指定啟動一個或多個認證服務
認證服務就是指Oracle的身份驗證服務,你登陸Oracle時,有的時候不需要輸入用戶名,有的時候既需要輸入用戶名,也需要輸入密碼。那什麼時候什麼都不需要輸入,什麼時候都需要輸入呢?這就和這裡指定的認證服務有關系了。一般有以下三種取值:
•NONE:作用是不允許通過OS系統用戶登錄數據庫,需要提供用戶名及密碼;
•ALL:作用是允許所有的登錄方式;
•NTS:作用是允許本地操作系統用戶認證;

而關於Oracle的身份認證,這又是一個很大的議題,又夠我寫一篇文章去總結的,我還是點到為止。當然了,我推薦一篇關於Oracle身份認證的文章,大家可以看看:《Oracle 身份驗證方式》

2.指定CLIENT NAME解析方法的次序
我們連接數據的時候,會有以下的語法格式的輸入:
CONNECT username/password [@db_alias] AS [SYSOPER | SYSDBA] ;

可以看到這個語法中,有一個db_alias,這個東西是什麼呢?這個db_alias就是在tnsnames.ora中定義的數據庫的別名,比如:
#ORCL是個別名
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

這個db_alias就是上面所說的ORCL,那麼我們連接的時候,怎麼知道這個ORCL是個什麼東西呢?這就和sqlnet.ora中的配置有關系了。

當第一個指定為TNSNAMES時,就先到tnsnames.ora文件中去找對應的db_alias;如果找不到,就再按指定的第二種方式去找;如果都找不到,就將指定的db_alias當做主機名在網絡上進行解析,得到數據庫服務器的地址。

很多朋友對EZCONNECT很不解,這個EZCONNECT表示簡單連接,就是說可以不用在tnsnames.ora文件去查詢服務名就可以進行數據庫的連接,比如我們可以這樣進行連接:
username/password@hostname:port/service_name


總結

Oracle的知識點很多,很龐大,我在學習的過程中也是點到為止,把握適當的深度,初步學習時,切莫想做到一次就把Oracle挖透。

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved