oracle如何限定特定IP访问数据库
可以利用登录触发器、cmgw或者是在$OREACLE_HOME/network/admin下新增一个protocol.ora文件(有些os可能是. protocol.ora),9i可以直接修改sqlnet.ora:
增加如下内容:
tcp.validnode_checking=yes
#允许访问的ip
tcp.inited_nodes=(ip1,ip2,……)
#不允许访问的ip
tcp.excluded_nodes=(ip1,ip2,……)
利用触发器限定IP:
create table logcontrol
(IPDET VARCHAR2(15)
)
/
create table limitip
(
IPDET VARCHAR2(15),
NOTE VARCHAR2(50)
)
/
create table yclogin
(
IPDET VARCHAR2(15),
attempdate date default sysdate
)
/
insert into logcontrol values('130.76.1.135');
insert into limitip values('130.76.1.135','接口数据库');
/
CREATE OR REPLACE TRIGGER log_control
AFTER logon ON DATABASE
declare
oname number(2);
pragma autonomous_transaction;
begin
if SYS_CONTEXT('USERENV','IP_ADDRESS') is not null
then
select count(*) into oname from logcontrol
where trim(IPDET)=SYS_CONTEXT('USERENV','IP_ADDRESS');
if oname<1 then
insert into yclogin values(SYS_CONTEXT('USERENV','IP_ADDRESS'));
commit;
Raise_application_error(-20999, 'ip访问限定,有需要请及时向系统管理员书面申请!!!');
EXECUTE IMMEDIATE 'DISCONNECT';
end if;
end if;
end;
最新文章
- 关于javascript中限定时间内防止按钮重复点击的思路
- EOS单向N对1关联
- .net处理JSON简明教程
- Python爬虫(小练习)
- Tomcat - java.lang.UnsupportedClassVersionError:Unsupported major.minor version 51.0 (unable to load class com.microsoft.sqlserver.jdbc.SQLS
- 莫比乌斯反演题目泛做(为了对应smz的课件)
- Oracle数据块损坏的恢复实例
- word在线问题
- Python中的那些“坑”
- 关于 Mybatis 设置懒加载无效的问题
- sqlalchemy查询结果类型简析
- 苹果手机的SB系列(3)超级烦人的账户解锁?
- FCC JS基础算法题(5):Return Largest Numbers in Arrays(找出多个数组中的最大数)
- git clean使用总结
- MySQL and Sql Server:Getting metadata using sql script (SQL-92 standard)
- linux学习:【第1篇】初识Linux及安装
- Android 上传文件,图片。以及服务器端接收相关。
- vue项目打包后css背景图路径不对的问题
- TP中使用laravel那一套验证
- windows下安装并使用redis