限制指定机器IP访问oracle数据库

通过使用数据库服务器端的sqlnet.ora文件可以实现禁止指定IP主机访问数据库的功能,这对于提升数据库的安全性有很大的帮助,与此同时,这个技术为我们管理和约束数据库访问控制提供了有效的手段。

下面是实现这个目的的具体步骤仅供参考:

1.默认的服务器端sqlnet.ora文件的内容

# sqlnet.ora Network Configuration File: D:\Server\Oracle\Product\11.2.0\dbhome_1\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.

# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES)

2.确认客户端的IP地址:
C:\Documents and Settings\Administrator>ipconfig
3.在客户端分别使用tnsping命令和sqlplus命令来验证数据库的连通性:
C:\Documents and Settings\Administrator>tnsping irmdb
     C:\Documents and Settings\Administrator>sqlplus /nolog

到这里说明在客户端两种方式都证明的数据库的可连通性。

4.限制客户端IP地址9.123.112.16对当前irmdb数据库的访问:

我们只需要在服务器端的sqlnet.ora文件中添加下面的内容即可。

# sqlnet.ora Network Configuration File: D:\Server\Oracle\Product\11.2.0\dbhome_1\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.

# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES)

tcp.validnode_checking=yes
tcp.invited_nodes=(9.123.112.34)
tcp.excluded_nodes=(9.123.112.16)

第一行的含义:开启IP限制功能;
第二行的含义:允许访问数据库的IP地址列表,多个IP地址使用逗号分开,此例中我们写入数据库服务器的IP地址;
第三行的含义:禁止访问数据库的IP地址列表,多个IP地址使用逗号分开,此处我们写入欲限制的IP地址9.123.112.16。
5.重新启服务器端listener后生效(这里也可以通过lsnrctl reload方式实现):
C:\Documents and Settings\Administrator>lsnrctl stop

1)在9i中真正起作用的是sqlnet.ora文件,我们修改sqlnet.ora其实是最好最快的方法。

在soracle\product\10.2.0\db_1\network\ADMIN\qlnet.ora中增加如下部分
tcp.validnode_checking=yes

#允许访问的IP

tcp.invited_nodes=(ip1,ip2……)

#禁止访问的IP
tcp.excluded_nodes=(ip1,ip2……)

之后重新启动监听器即可

需要注意的地方:
1、tcp.invited_nodes与tcp.excluded_nodes都存在,以tcp.invited_nodes为主
2、一定要许可或不要禁止服务器本机的IP地址,否则通过lsnrctl将不能启动或停止监听,因为该过程监听程序会通过本机的IP访问监听器,而该IP被禁止了,但是通过服务启动或关闭则不影响。
3、修改之后,一定要重起监听才能生效,而不需要重新启动数据库
4、任何平台都可以,但是只适用于TCP/IP协议

(2)第二种方法使用触发器实现

1、这个触发器实现了192.168.137开始的IP不能访问test用户的功能
create or replace trigger chk_ip
after logon on test.schema
declare
ipaddr VARCHAR2(30);
begin
select sys_context('userenv', 'ip_address') into ipaddr from dual;
if ipaddr like ('192.168.137.%') then
raise_application_error('-20001', 'you can not logon by test');
end if;
end ;
/
过对oracle9i参数文件的设置,可以控制访问计算机的ip地址。

在172.28.65.13这台机器上的配置文件$ORACLE_HOME/network/sqlnet.ora中增加:

#开启对ip地址的检查

tcp.validnode_checking=yes

#允许访问的ip

tcp.invited_nodes=(172.28.65.13)

#禁止访问的ip

ip.excluded_nodes= (172.27.65.15)

重启监听!

$ lsnrctl reload

LSNRCTL for Solaris: Version 9.2.0.4.0 - Production on 14-DEC-2005 16:59:19

Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))
The command completed successfully.

在172.28.65.15这台机器上编辑$ORACLE_HOME/network/admin/tnsnames.ora文件:

此处可以添加新的服务(dsf):

dsf =
  (DESCRIPTION =
     (ADDRESS = (PROTOCOL = TCP)(Host= 172.28.65.13)(Port = 1521))
     (CONNECT_DATA = (SID = ORCL))
)

在15上进行tnsping测试:

$ tnsping dsf

TNS Ping Utility for Solaris: Version 9.2.0.4.0 - Production on 14-DEC-2005 17:04:02

Copyright (c) 1997 Oracle Corporation.  All rights reserved.

Used parameter files:

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(Host= 172.28.65.13)(Port = 1521)) (CONNECT_DATA = (SID = ORCL)))
TNS-12537: TNS:connection closed

连接测试:

$ sqlplus wacos/oss@dsf

SQL*Plus: Release 9.2.0.4.0 - Production on Wed Dec 14 17:04:24 2005

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

ERROR:
ORA-12537: TNS:connection closed
-------------------------------------------------------------------------------------------------------------------
TCP.VALIDNODE_CHECKING,这个参数必须设置,值也必须是YES,否则就是不启用

TCP.VALIDNODE_CHECKING=YES

白名单的设置参数,这个地址列表中必须包含本机的地址,不然监听可能要启动失败

TCP.INVITED_NODES=(10.10.2.100,10.10.2.101)
黑名单的设置参数:

TCP.EXCLUDED_NODES=(10.10.1.100)

转载于:https://blog.51cto.com/itbull/954705

ORACLE 限制特定IP访问数据库 访问白名单相关推荐

  1. Ubuntu设置仅允许特定用户或特定IP通过ssh访问

    Ubuntu设置仅允许特定用户或特定IP通过ssh访问 一. 仅允许特定IP或IP段访问 1.1 打开`/etc/hosts.deny`文件, 1.2 打开`/etc/hosts.allow`文件 二 ...

  2. 微信白名单服务器ip地址,微信服务器白名单IP列表

    微信服务器白名单IP列表,列出以便自己做白名单使用. [0] => 101.226.62.77 [1] => 101.226.62.78 [2] => 101.226.62.79 [ ...

  3. Oracle11g限制ip访问数据库,ORACLE 限制特定IP访问数据库

    (1)在9i中真正起作用的是sqlnet.ora文件,我们修改sqlnet.ora其实是最好最快的方法. 在sqlnet.ora中增加如下部分 ---------------------------- ...

  4. 网站通过nginx设置黑/白名单IP限制、国家城市IP访问限制

    一.黑/白名单IP限制访问配置 nginx配置黑白名单有好几种方式,这里只介绍常用的两种方法. 1.第一种方法:allow.deny deny和allow指令属于ngx_http_access_mod ...

  5. SSH 连接远端 Ubuntu 服务器设置防火墙,实现只允许白名单访问

    SSH 连接远端 Ubuntu 服务器设置防火墙,实现只允许白名单访问 环境情况 需求 实现 需求1-只允许白名单访问 需求2-设置服务器禁止 PING 记录时间:2021/6/25 环境情况 服务器 ...

  6. vb.net 判断是否为ip 正则_PHP实现IP白名单

    有些项目可能会用到一个IP地址的白名单黑名单之类的验证. 比如,只有IP地址在白名单中,才可以访问该系统. 那么此时,白名单的维护,一般是一个文件,里边是一些IP地址(每行一个IP),当然也有的可能是 ...

  7. Java实现 对ip白名单的限制

    有些项目的接口是需要权限访问,比如限制IP.做权限控制,等等方案,本文是限制ip权限设置访问策略. 先看测试效果: 测试: 注意访问需要输入:http://127.0.0.1:8981/ 在配置文件加 ...

  8. 安全性设计之-ip白名单设计

    安全性设计之-ip白名单设计 最近一直在做系统的接口开发,接口对于安全性有一定的要求,采用了一定的安全措施,各种加解密,证书手段也采用了.做了这些常见的安全措施之后,考虑到限制非法ip的访问,决定采用 ...

  9. nginx配置IP白名单

    分析nginx访问日志,有哪些IP访问过nginx. 命令参考:awk '{print $1}' logs/access.log | sort | uniq -c | sort -nr -k1 输出的 ...

最新文章

  1. #113. 【UER #2】手机的生产
  2. input添加float样式后位置偏移的解决
  3. 程序员面试100题之九:求子数组的最大和
  4. 为IP v6划分子网
  5. SQL Server中常用全局变量介绍
  6. 百度一口气亮出NLP十年积累:完整技术布局全面披露,面向业界砸下11项七夕大礼
  7. c语言中行号大小调整,给自己的程序加上行号
  8. 服务器间 存活状态,Shell脚本监控LVS后台服务器存活状态
  9. Python XML操作处理
  10. 相机标定(三)—— 正交投影和透视投影变换
  11. Vue 移动端跳到手机拨打电话界面的几种方法
  12. 使用c语言的多学科协同仿真软件,Multisim10软件在单片机C语言协同仿真中应用.pdf...
  13. Python贪吃蛇 (完整代码+详细注释+粘贴即食)
  14. Adobe Acrobat 如何通过书签制作多级目录
  15. 怎么注册一个docker id
  16. 怎样快速将excel表格内容转换到word中
  17. ARM嵌入式的定义和开发工具介绍
  18. mixins的实用案例和常见问题
  19. 数字成像系统-姜卓-专题视频课程
  20. linux内存测试工具memtester使用详解

热门文章

  1. 华三实现vlan通过
  2. eyoucms问答 百度权重是什么
  3. pycharm不支持svn,是需要svn命令行工具没有安装(for windows)
  4. [转载]MIT牛人解说数学体系
  5. 《EDIUS 6.5快刀手高效剪辑技法》 即将上市
  6. hbase的shell客户端中不同符号的含义
  7. ubuntu19.10安装thrift
  8. 卷积神经网络VGG16权重数量的计算和理解(转载)
  9. 本地第一次对接已经存在的github上的repository
  10. Permission denied (publickey). fatal: Could not read from remote repository.