一、通过sqlnet.ora文件控制对Oracle数据库的访问
出于数据安全考虑,对Oracle数据库的IP做一些限制,只有固定的IP才能访问。
修改$JAVA_HOME/NETWORK/ADMIN/sqlnet.ora文件
增加以下内容(红色表示注释):
#开启ip限制功能
tcp.validnode_checking=yes
#允许访问数据库的IP地址列表,多个IP地址使用逗号分开
tcp.invited_nodes=(192.168.1.110)
#禁止访问数据库的IP地址列表,多个IP地址使用逗号分开
tcp.excluded_nodes=(192.168.1.111)
然后重启监听即可。
注:
1、第一行必需写,任何平台都可以,但是只适用于TCP/IP。
2、第二行和第三行任写一行即可,如果tcp.invited_nodes与tcp.excluded_nodes都存在,以tcp.invited_nodes为主。
3、不要禁止服务器本机的IP地址,否则通过lsnrctl将不能启动或停止监听,因为该过程监听程序会通过本机的IP访问监听器。
二、Oracle sqlnet.ora配置
sqlnet.ora的作用(官网指出的)
1.限制客户端访问(如指定客户端域为不允许访问)
2.指定命名方法(local naming,directory nameing...)的优先级
3.启用日志及跟踪(log and trace)功能
4.通过特定进程来路由客户端连接
5.配置外部命名(第三方连接程序,如c语言写的)参数
6.配置Oracle的高级安全
7.使用协议特定的参数限制对数据库的访问
sqlnet配置文件的存放位置一般在:$ORACLE_HOME/network/admin目录下
常用参数设置
1.设置windows下允许使用windows nt本地认证
SQLNET.AUTHENTICATION_SERVICES=(nts)
2.设置Oracle客户端连接串命名查找顺序
NAMES.DIRECTORY_PATH=(tnsnames, onames,ezconnect)
允许的值有:
1)tnsnames使用客户端的tnsnames.ora解析
2)ldap使用目录访问协议解析,需要有目录服务
3)ezconnect or hostname,允许使用tcp/ip连接串,包含主机名,端口,服务名
4)cds分布式环境的数据库名
5)nis (Network Information Service (NIS) external naming method),主要用于外部程序解析
6)onames:通过Oracle Name Server解析
3.设置客户端连接会话超时时间(单位分钟)
定期检测客户端是否还是活动的,设置为0不检测
SQLNET.EXPIRE_TIME = 10
另外还有:
客户端建立连接超时时间(单位秒,默认60)
SQLNET.INBOUND_CONNECT_TIMEOUT=10
Oracle建议在listener.ora中也进行配置
接受超时时间(单位秒)
SQLNET.RECV_TIMEOUT=3
发送超时时间(单位秒)
SQLNET.SEND_TIMEOUT=3
4.客户端限制
是否进行限制(默认no):
TCP.VALIDNODE_CHECKING
如:TCP.VALIDNODE_CHECKING=yes
限制客户端访问
TCP.EXCLUDED_NODES=(hostname | ip_address, hostname | ip_address, ...)
如:TCP.EXCLUDED_NODES=(finance.us.acme.com, mktg.us.acme.com, 144.25.5.25)
允许客户端访问,会覆盖限制访问
TCP.INVITED_NODES=(hostname | ip_address, hostname | ip_address, ...)
如:TCP.INVITED_NODES=(sales.us.acme.com, hr.us.acme.com, 144.185.5.73)
5.设置立即发送
设置等待一段时间或者数据包凑够多大才会一起发送,或者可以让数据立即发送
TCP.NODELAY=yes
6.设置使用专享连接还是公用链接
设置为on会在客户端连接串后加上(SERVER=dedicated)
USE_DEDICATED_SERVER=on/off
整理自:
https://www.cnblogs.com/mengxiaohu/p/7727954.html