在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),即可连接