【原創】sqlnet.ora常用引數研究

木頭一個發表於2008-04-19

1.設定日誌引數
#設定客戶端和伺服器端的log檔案的目錄
LOG_DIRECTORY_CLIENT
LOG_DIRECTORY_SERVER
#設定客戶端和伺服器端的log檔案的名稱
LOG_FILE_CLIENT
LOG_FILE_SERVER

2.設定預設的domain,會在連線中自動追加domain
NAMES.DEFAULT_DOMAIN
如設定NAMES.DEFAULT_DOMAIN=us.acme.com,使用conn scott/tiger@test連線資料庫時會自動追加domain,變成conn scott/tiger@test.us.acme.com,而直接使用conn scott/tiger@test.us.acme.com連線資料庫則不會追加

3.設定客戶端的命名方法和優先順序(最常用的引數),可選值有tnsnames,onames,hostname,ldap等
NAMES.DIRECTORY_PATH

4.設定允許連入資料庫的客戶端版本,可選值10,9,8,7
SQLNET_ALLOWED_LOGON_VERSIONS

5.設定使用何種驗證方式,可選值
none(使用使用者名稱/密碼的方式連線資料庫)
all(使用所有方式的驗證,包括OS驗證)
nts(OS驗證方式,連入OS後可以不用密碼連線資料庫)
SQLNET.AUTHENTICATION_SERVICES

6.設定客戶端和伺服器是否使用加密,可選值
accepted(如果對方設定為requested或required,則使用加密服務)
rejected(不使用加密服務,即使對方設定為requested也不使用)
requested(如果對方使用加密服務,則使用加密服務)
required(使用加密服務,如果對方沒有使用則無法連線)
SQLNET.ENCRYPTION_CLIENT
SQLNET.ENCRYPTION_SERVER

#設定使用的加密演算法
SQLNET.ENCRYPTION_TYPES_CLIENT
SQLNET.ENCRYPTION_TYPES_SERVER

7.設定連入資料庫後必須在多長時間內完成認證(如:輸入使用者名稱/密碼),超過此時間沒有完成的話,資料庫會斷開此連線,並將客戶端的IP地址和ORA-12170: TNS:Connect timeout occurred錯誤資訊記錄到sqlnet.log,而且客戶端會收到ORA-12547: TNS:lost contact或ORA-12637: Packet receive failed錯誤資訊。這個設定主要是為了防止denial-of-service攻擊
SQLNET.INBOUND_CONNECT_TIMEOUT

8.設定在指定的時間間隔內必須有資料接收/傳送,為了防止長時間的等待
SQLNET.RECV_TIMEOUT
SQLNET.SEND_TIMEOUT

9.限制訪問資料庫的客戶端IP:
#允許訪問的IP
TCP.INVITED_NODES=(192.168.1.103)
#不允許訪問的IP
TCP.EXCLUDED_NODES=(192.168.1.102)
#檢測上述引數的設定
TCP.VALIDNODE_CHECKING=yes

當不允許訪問的客戶端連入時,會出現下列錯誤
sys/oracle@approd.test as sysdba
ERROR:
ORA-12537: TNS:connection closed
 

Warning: You are no longer connected to ORACLE.

10.對tnsping命令進行跟蹤,檔名是tnsping.trc
#trace檔案的目錄,預設在$ORACLE_HOME/network/trace下
TNSPING.TRACE_DIRECTORY
#trace的等級:有off,user,admin,support4個可選值,預設是off的(不進行跟蹤)
TNSPING.TRACE_LEVEL

11.設定trace引數
#設定客戶端和伺服器端的trace檔案的目錄
TRACE_DIRECTORY_CLIENT
TRACE_DIRECTORY_SERVER

#設定客戶端和伺服器端的trace檔案的名稱
TRACE_FILE_CLIENT
TRACE_FILE_SERVER

#設定客戶端和伺服器端的trace檔案的最大大小,超過後trace資訊會寫入新的檔案
TRACE_FILELEN_CLIENT
TRACE_FILELEN_SERVER

#設定客戶端和伺服器端的trace檔案的最多個數,trace檔案是迴圈寫的
TRACE_FILENO_CLIENT
TRACE_FILENO_SERVER
#trace的等級:有off,user,admin,support4個可選值,預設是off的(不進行跟蹤)
TRACE_LEVEL_CLIENT
TRACE_LEVEL_SERVER

#是否在trace中寫入每條trace資訊的dd-mon-yyyy hh:mi:ss:mi時間戳
TRACE_TIMESTAMP_CLIENT
TRACE_TIMESTAMP_SERVER
#trace是否只寫入獨立的檔案:設為off後,每個新的客戶端會話的trace資訊都會覆蓋已有資訊;設為on後,每個新的客戶端會話的trace資訊都會寫入單獨的檔案
TRACE_UNIQUE_CLIENT

12.強制使用dedicated方式連線資料庫
#當設定為on時,會在連線描述中自動新增(SERVER=dedicated),如果已經設定了(SERVER=shared)也會被覆蓋,預設為off
USE_DEDICATED_SERVER

idle>conn sys/oracle@test1 as sysdba
Connected.

sys@TEST>select server from v$session where username='SYS';

SERVER
---------
SHARED

在sqlnet.ora中設定了USE_DEDICATED_SERVER=on

sys@TEST>select server from v$session where username='SYS';

SERVER
---------
DEDICATED

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/498744/viewspace-244155/,如需轉載,請註明出處,否則將追究法律責任。

相關文章