高危防范:巧用触发器,实现DDL监控

在数据运维过程中,常常因为DBA的疏忽而使数据安全面临威胁,有些威胁来自数据库外部,如rm操作,而有些威胁则来自数据库内部,如Truncate操作.因此对于数据库的任何操作都要三思而后行,减少出错的几率。同时对于TRUNCATE等高风险的数据库DDL操作,可以考虑通过触发器进行禁用,防止未授权的操作损害数据。

(1)如下触发器实现对于特定表的DROP、TRUNCATE防范:

如果用户试图对 test 表进行 DROP 或 TRUNCATE 操作,则将遇到错误:

(2)以下触发器可以实现全库级别的 DDL 防范:

在以下类似操作中,触发器的作用就体现出来:

(3)对于某些数据库环境,也可以限定DDL操作只能在数据库服务器本地执行,对于远程执行则予以禁止,类似的触发器可以参考如下代码,以下代码基于Schema模式建立,需要对于V$SESSION的访问授权,自定义的记录信息被写入告警日志文件:

此时如果通过远程进行DDL操作,就会收到错误:

在告警日志文件中会同时记录移行错误信息:

在本地的DROP操作可以进行:

以上是一些示范,供参考,在系统中采用需要经过测试和改进。

因为DDL的重要性,在Oracle11g中,DDL日志机制被引入,可以通过enable_ddl_logging参数设置,如果启用日志,DDL操作的信息都将被记录到告警日志中:

在Oracle Database 12c中,为了防止DDL日志对于告警日志的干扰,DDL日志进一步的独立出来,记录了一个独立的DDL日志。

oel*orcl12c-/u01/app/oracle/diag/rdbms/eygle/eygle/log/ddl$ls -l 总用量 8 -rw-r-----. 1 oracle oinstall 4235 2月 17 17:32 log.xml

以下是日志中记录的DROP表操作:

Fri Feb 17 17:32:27 2012 diag_adl:drop table eygle

由此可见,DDL审计和记录是众多Oracle数据库用户的需求,同时Oracle 也不断做出改变来满足用户的需求。

最后,还是要再次强调,虽然可以通过一些方式防范DDL对数据的威胁,但作为一个合格的DBA,一定要严谨专注,任何操作都必须三思而后行,承担起数据责任,不能有丝毫的马虎和大意,草率的判断和轻忽的选择对数据来说很可能是致命的。

以上文,与所有DBA朋友们共勉。

原文发布于微信公众号 - 数据和云(OraNews)

原文发表时间:2016-09-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

细致入微:Oracle中执行计划在Shared Pool中的存储位置探秘

这两天我一直在想一个问题,那就是 Oracle 的执行计划到底存储在什么地儿?它会是一种什么样的格式? 这里我试图对这个问题做一点我自己认为的解释,这个解释可能...

2735
来自专栏数据和云

老司机带你在MySQL领域“大吉大利,晚上吃鸡”

作者 | 张甦, 数据库领域的专家和知名人士、图书《MySQL王者晋级之路》作者,51CTO 专家博主。近10年互联网线上处理及培训经验,专注于 MySQL 数...

472
来自专栏杨建荣的学习笔记

一个oracle bug的简单验证(r8笔记第45天)

最近碰到了一个oracle bug,但是我感觉还是有些运气的成分,虽然错误日志和bug描述吻合,版本也完全对应,现在有几个问题在我脑海中翻腾,就是这个问题是不是...

3477
来自专栏数据和云

Oracle并发(CONCURREMT)收集统计信息

编辑手记:从11.2开始,可以通过CONCURRENT参数,启用表或分区的并行扫描,加快统计信息的收集速度。 作者简介:何剑敏 Oracle ACS华南区售后...

3145
来自专栏A周立SpringCloud

Spring Cloud Edgware新特性之:解决Eureka中Jersey 1.x版本过旧的问题-不使用Jersey

Spring Cloud是当前炙手可热的微服务开发框架。它的功能强大,组件丰富,设计优雅。目前Spring Cloud还在不断发展之中。 Spring Clou...

3116
来自专栏数据和云

安全预警:独立发布的Oracle严重 CVE-2018-3110 公告

在 2018年8月10日,Oracle 独立的发送了一封"安全警告"邮件给所有的 Oracle 用户,这封邮件的标题是:Oracle Security Aler...

882
来自专栏数据库

Github推荐:MySQL DBA不可错过的五大开源管理工具!

对于数据库管理员(DBA)来说,保持数据库运行在最佳状态需要具备敏捷,专注,快速反应的能力以及一颗冷静的头脑。数据库几乎是所有应用程序成功运行的核心,由于DBA...

31810
来自专栏数据和云

微信课堂:化解控制文件归档日志查询缓慢及ASM执行计划一则

在我们的技术讨论群『云和恩墨大讲堂』中,还有日常的微信互动中,经常有朋友会提出一些有趣的小问题,在空闲的时候,我希望能够记录下来,和大家做一点小分享,以点滴的知...

824
来自专栏文渊之博

史上最大的CPU Bug(幽灵和熔断的OS&SQLServer补丁)

背景 原文地址(http://www.cnblogs.com/wenBlog/p/8435229.html) 最近针对我们的处理器出现了一系列的严重的bug。这...

2995
来自专栏数据和云

Oracle 12c: arraysize会影响结果集么?

SQL*Plus中ArraySize的设置会影响结果集的数量么?先不要轻易说“NO”,我们来看看Jonathan Lewis最近一篇文章中披露的一个案例。 当确...

2776

扫描关注云+社区