动态ip

>

代理ip软件

>

换ip软件

>

HTTP代理

>
Socks5代理
黑核动态ip代理
黑核动态ip为您提供更友好、更专业的服务。
您的位置:首页>新手教程>在Oracle数据库上设置限制ip地址访问及注意事项
在Oracle数据库上设置限制ip地址访问及注意事项
来源:黑核动态ip代理 时间:2019-04-09

分享到

  近期应客户要求,需要对访问生产环境的Oracle数据库的ip做一些限制,即:只有通过审核的ip才能访问数据库,其他ip一律禁止访问数据库。

  在oracle中可以通过sqlnet.ora文件的设置或者通过触发器可以实现对特定ip的限制访问。

在Oracle数据库上设置限制ip地址访问及注意事项

  1、修改sqlnet.ora文件:

  步骤:

  a)测试在未设置前某一客户端的登录数据库情况:

  C:\Documents and Settings\ThinkPad>sqlplusapp/app@uat17

  SQL*Plus: Release 9.2.0.1.0 - Production on Thu Aug 30 11:02:21 2012

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

  Connected to:

  Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production

  With the Partitioning, OLAP, Data Mining and Real Application Testing options

  SQL> select name from v$database;

  NAME

  ---------

  PROD

  SQL>

  --说明连接成功

  b)通过对文件:$ORACLE_HOME/network/admin/sqlnet.ora文件添加:

  tcp.validnode_checking=yes

  tcp.invited_nodes=(192.168.1.61)

  tcp.excluded_nodes=(192.168.1.90)

  说明:

  第一行的含义:开启IP限制功能;

  第二行的含义:允许访问数据库的IP地址列表,多个IP地址使用逗号分开,此例中我们写入数据库服务器的IP地址;

  第三行的含义:禁止访问数据库的IP地址列表,多个IP地址使用逗号分开,此处我们写入欲限制的IP地址192.168.1.90。

  c)重新启服务器端listener,或者lsnrctl reload方式使刚才的修改在监听中生效。

  [oracle@APPDB-PROD admin]$ lsnrctl reload

  LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 30-AUG-2012 10:17:43

  Copyright (c) 1991, 2007, Oracle.  All rights reserved.

  Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

  The command completed successfully

  d)验证客户端(192.168.1.90)登录情况:

  C:\Documents and Settings\ThinkPad>sqlplusapp/app@uat17

  SQL*Plus: Release 9.2.0.1.0 - Production on Thu Aug 30 11:12:46 2012

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

  ERROR:

  ORA-12537: TNS:connection closed

  Enter user-name:

  报:ORA-12537: TNS:connection closed错误,说明限制成功。

  注意事项:

  1).上文中添加的第一项必须要写,任何平台都可以,但是只适用于TCP/IP协议。

  2).第二行和第三行可以任意写一行,如果tcp.invited_nodes与tcp.excluded_nodes都存在,以tcp.invited_nodes为主.

  3).一定要许可或不要禁止服务器本机的IP地址,否则通过lsnrctl将不能启动或停止监听,因为该过程监听程序会通过本机的IP访问监听器,而该IP被禁止了,但是通过服务启动或关闭则不影响,如果是rac最好将物理ip和虚拟ip都需要准许访问。

  2.通过触发器实现:

  conn /as sysdba

  create or replace trigger  check_ip

  after logon on app.schema

  declare

  ipaddr VARCHAR2(30);

  begin

  select sys_context('userenv', 'ip_address') into ipaddr from dual;

  if ipaddr like ('192.168.1.90') then

  raise_application_error('-20001', 'you can not logon by app');

  end if;

  end ;

  /

  但是这个只能是针对某一用户做限制的。

在线客服
大客户VIP渠道
点击这里给我发消息
讨论QQ群
客服电话
13318873961