[Q]如何限定特定IP訪問數據庫
[A]可以利用登錄觸發器、cmgw或者是在$OREACLE_HOME/network/admin下新增一個protocol.ora文件(有些os可能是. protocol.ora),9i可以直接修改sqlnet.ora:
增加如下內容:
tcp.validnode_checking=yes
#允許訪問的ip
tcp.inited_nodes=(ip1,ip2,……)
#不允許訪問的ip
tcp.excluded_nodes=(ip1,ip2,……)
[Q]如何穿過防火牆連接數據庫
[A]這個問題只會在WIN平台出現,UNIX平台會自動解決。
解決方法:
在服務器端的SQLNET.ORA應類似
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
TRACE_LEVEL_CLIENT = 16
注冊表的HOME0加[HKEY_LOCAL_MACHINE]
USE_SHARED_SOCKET=TRUE
[Q]如何利用hostname方式連接數據庫
host name方式只支持tcp/ip協議的小局域網
修改listener.ora中的如下信息
(SID_DESC =
(GLOBAL_DBNAME = ur_hostname) --你的機器名
(ORACLE_HOME = E:\oracle\ora92) --oracle home
(SID_NAME = orcl) --sid name
)
然後在客戶端的sqlnet.ora中,確保有
NAMES.DIRECTORY_PATH= (HOSTNAME)
你就可以利用數據庫服務器的名稱訪問數據庫了