因公司数据库密码泄露,其他部门不想关的人员也有了可以访问数据库的账户密码,虽然修改了密码,但为防止密码再次泄露保证数据库的安全,领导决定要对不想关人员的IP进行限定。
平台为linux redhat5.6,数据库版本为11203
限定特定IP访问数据库可编辑sqlnet.ora文件
sqlnet.ora文件路径在$OREACLE_HOME/network/admin/samples下有模板,可以copy到$OREACLE_HOME/network/admin路径下修改增加如下内容:
tcp.validnode_checking=yes
#允许访问的ip
tcp.invited_nodes=(ip1,ip2,……)
#不允许访问的ip
tcp.excluded_nodes=(ip1,ip2,……)
tcp.invited_nodes和tcp.excluded_nodes只用一个,要么设置允许的IP,要么设置不允许的IP,与tcp.validnode_checking配合使用。
修改sqlnet.ora后,重新启动listener服务,修改就可以生效了。
如果不允许的IP客户端连接过来,会出现以下错误:
ERROR: ORA-12537: TNS: 连接已关闭
或者是
这就是在oracle服务端设置了IP限制后的效果。
在mos上查到sqlnet.ora文件的功能:
1. Specify the client domain to append to unqualified names
2. Prioritize naming methods
3. Enable logging and tracing features
4. Route connections through specific processes
5. Configure parameters for external naming
6. Configure Oracle Advanced Security
7. Use protocol-specific parameters to restrict access to the database
这里使用的就是sqlnet.ora文件的第七项功能限制访问数据库的连接。
适用版本:oracle 9i以上版本
在9i提供了几个参数:
TCP.EXCLUDED_NODES
设置禁止访问数据库的IP地址列表。
TCP.INVITED_NODES
设置允许访问数据库的IP地址列表,当这个参数和TCP.EXCLUDED_NODES设置的地址相同的时候将覆盖TCP.EXCLUDED_NODES设置。
TCP.VALIDNODE_CHECKING
检测上述参数的设置。