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

本文介绍如何在Oracle数据库中设置IP地址访问限制,包括修改sqlnet.ora文件和使用触发器两种方法。通过具体步骤和示例,展示了如何仅允许经过审核的IP地址访问数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Oracle数据库上设置限制ip地址访问以及需要注意的事项 近期应客户要求,需要对访问生产环境的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 ;

/

但是这个只能是针对某一用户做限制的。 本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值