如何限定特定IP访问Oracle数据库

0    316    1

Tags:

👉 本文共约7375个字,系统预计阅读时间或需28分钟。

前言部分

导读和注意事项

各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,\~O(∩_∩)O\~:

① 限定IP访问Oracle数据库的3种方法(重点)

② 如何将信息写入到Oracle的告警日志中

③ RAISE_APPLICATION_ERROR不能抛出错误到客户端环境

④ 系统触发器

⑤ 隐含参数:_system_trig_enabled

本文简介

本文详细介绍了3种限制IP地址登录Oracle数据库的办法。

本文实验环境介绍

项目source db
db 类型RAC
db version11.2.0.3.0
db 存储ASM
OS版本及kernel版本RHEL 6.5
数据库服务器IP地址192.168.59.130
客户端IP地址192.168.59.1或192.168.59.129

限定IP访问Oracle数据库的3种办法

利用登录触发器

简单版

客户端登录:

告警日志无输出。

复杂版

复杂版就是需要记录登录日志,并把报错信息输出到告警日志中。

客户端登录:

如何限定特定IP访问Oracle数据库

告警日志:

如何限定特定IP访问Oracle数据库

查询日志表:

SELECT * FROM XB_AUDIT_LOGON_LHR;

如何限定特定IP访问Oracle数据库

注意事项

需要注意的问题:

  1. 触发的对象类型可以为DATABASE,也可以为“用户名.SCHEMA”,如:

AFTER LOGON ON DATABASE

AFTER LOGON ON SCOTT.SCHEMA

  1. 当触发的对象类型为DATABASE的时候,登录用户不能拥有“ADMINISTER DATABASE TRIGGER”的系统权限;当触发的对象类型为“用户名.SCHEMA”的时候,登录用户不能拥有“ALTER ANY TRIGGER”的系统权限。否则,这些用户还是会正常登录到数据库,只是将相应的报错信息写入到告警日志中。所以,拥有IMP_FULL_DATABASE和DBA角色的用户以及SYS和EXFSYS用户将不能通过这种方式限制登录。
  2. 隐含参数“_SYSTEM_TRIG_ENABLED”的默认值是TRUE,即允许DDL和系统触发器。当设置隐含参数“_SYSTEM_TRIG_ENABLED”为FALSE的时候,将禁用DDL和系统触发器。所以,当该值设置为FALSE的时候将不能通过这种方式限制登录。
测试第二点

客户端继续登录,发现不能正常登录。将触发器中的AFTER LOGON ON DATABASE修改为AFTER LOGON ON LHR8.SCHEMA,其他不变,继续测试:

如何限定特定IP访问Oracle数据库

发现可以正常登录了,告警日志:

如何限定特定IP访问Oracle数据库

测试第三点

将触发器中的AFTER LOGON ON LHR8.SCHEMA修改为AFTER LOGON ON DATABASE,其他不变,继续测试:

如何限定特定IP访问Oracle数据库

不能正常登录,下面禁用系统触发器:

进行登录:

如何限定特定IP访问Oracle数据库

发现可以正常登录了。将参数"_system_trig_enabled"修改回原值。

利用登录触发器实现时间段登录

Use Event Triggers

------------------

If you allow the users to log in the database only from Monday to Friday included,

and from 8AM to 6PM, create an event trigger that checks after logon on

database for each user (except the DBA users) that the connection occurs only

within this timeframe.

Example 1

-------

1. No check set up yet: any ordinary user can log into the database:

SQL> connect test_trigger/test_trigger

Connected.

2. The DBA creates an event trigger that checks if the connection occurs

between Monday and Friday , and within working hours: 8AM to 6PM.

Trigger created.

3. It is Friday 5PM : an ordinary user can log into the database:

Example 2

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
如何限定特定IP访问Oracle数据库后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部