Home > Database > Mysql Tutorial > 在Oracle数据库上设置限制ip地址访问以及需要注意的事项

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

WBOY
Release: 2016-06-07 17:57:59
Original
1852 people have browsed it

近期应客户要求,需要对访问生产环境的Oracle数据库的ip做一些限制,即:只有通过审核的ip才能访问数据库,其他ip一律禁止访问数据库。 在Oracle中可以通过sqlnet.ora文件的设置或者通过触发器可以实现对特定ip的限制访问。 1、修改sqlnet.ora文件: 步骤: a

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

在Oracle中可以通过sqlnet.ora文件的设置或者通过触发器可以实现对特定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 ;
/

但是这个只能是针对某一用户做限制的。
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template