首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

同时对于TRUNCATE等高风险的数据库DDL操作,可以考虑通过触发器进行禁用,防止未授权的操作损害数据。 (1)如下触发器实现对于特定表的DROP、TRUNCATE防范: ?...(2)以下触发器可以实现全库级别的 DDL 防范: ? 在以下类似操作中,触发器的作用就体现出来: ?...(3)对于某些数据库环境,也可以限定DDL操作只能在数据库服务器本地执行,对于远程执行则予以禁止,类似的触发器可以参考如下代码,以下代码基于Schema模式建立,需要对于V$SESSION的访问授权,自定义的记录信息被写入告警日志文件...因为DDL的重要性,在Oracle11g中,DDL日志机制被引入,可以通过enable_ddl_logging参数设置,如果启用日志,DDL操作的信息都将被记录到告警日志中: ?...在Oracle Database 12c中,为了防止DDL日志对于告警日志的干扰,DDL日志进一步的独立出来,记录了一个独立的DDL日志。

98840
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    使用DDL触发器同步多个数据库结构

    使用DDL触发器同步多个数据库结构 背景:当开发组比较大时,势必会分布到不同的地理位置,若无法在同一个快速网络中工作,就会造成多个开发库并存的局面,这样就需要多个开发库结构的同步,甚至是开发测试数据的同步...思路:使用DDL触发器是一个不错的方法,可以在库表结构发生变化时,记录下变化信息,再通过设计开发同步工具,定时扫描变化信息,实现多个开发库的结构同步。...示例:假设有A、B两个开发库,触发器T,变化信息记录表TableChange,开发同步工具S。可以将对不同数据库的支持都内置到S中,操作人员选择数据库后,设置好连接,就直接将T和TC初始化完毕。

    66940

    数据库结构同步之通过DDL触发器记录数据库结构的变更

    WCF达人Artech这里看到一篇文章 追踪记录每笔业务操作数据改变的利器——SQLCDC 此文章是针对数据库表记录CURD操作的日志 并非表结构 后来我在文章评论中向Artech请教了我的问题, 得到了DDL...@data.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'nvarchar(2000)'), GETDATE() ) ; GO  和普通的创建触发器的过程类似...或登录触发器内部引用 EVENTDATA 时,EVENTDATA 才会返回数据。   ...如果 EVENTDATA 由其他例程调用(即使这些例程由 DDL 或登录触发器进行调用),将返回 NULL。   ...XQUERY检索XML中的数据   详细的XQUERY教程请看这里 http://www.w3school.com.cn/xquery/index.asp 注意: --想删除表LogTable必须先删除这个触发器

    65620

    触发器

    一:什么是触发器 触发器是一种响应特定事件的特殊类型的存储过程 insert update... drop alter...等事件都有相应的触发器 二:简单的触发器 下面一个例子是在插入或者修改记录的时候的一个触发器...三:针对触发器的操作 1.禁用触发器 use AdventureWorks go alter table Sales.SalesOrderDetail disable trigger all  --这里的...all可以是具体的触发器名 2.删除触发器 use AdventureWorks go drop trigger orderDetailNotDiscontinued 3.修改触发器 use xland...(1 行受影响)     这是select的一行 五:视图上的触发器 instead of触发器 先创建一个视图 use xland go create view UserArticle_vw with...xland') 看下消息 (1 行受影响) (1 行受影响) 类似的还有 insted of update触发器 insted of delete触发器 六:触发器的相关函数 看这个触发器 use

    1.3K20

    oracle触发器报错语法,Oracle 触发器

    2、数据定义操作(DDL)触发器:当对数据库对象进行create、alter、drop操作时,触发触发器进行一些操作记录保存、或者限定操作。...四、DDL类型触发器 Oracle DDL类型触发器主要是对于Oracle数据库的DDL操作触发的触发器,主要包括create、drop、alter等DDL事件,经常利用DDL类型触发器记录DDL操作记录或者限定对某个对象进行...Oracle DDL类型触发器的语法结构 DDL类型触发器的编写语法如下:create [ or replace] trigger tr_name(触发器名) before|after ddl_event...4、ddl_event:表示的DDL事件,有create(创建)、alter(修改)、drop(删除)等常用DDL操作。...下面通过一个案例来解析Oracle DDL类型触发器的写法: 案例1、利用Oracle DDL类型触发器给学生信息表(stuinfo)做一个禁止删除、修改表结构的触发器,代码如下:create or replace

    2.2K30

    MySQL5.6的Online DDL不是真正的Online DDL

    Online DDL是从mysql5.6版本后引入的新功能,可以实现在线DDL操作不锁表。但是MySQL5.6的Online DDL不是真正的Online DDL,针对部分操作还是有局限性。...只有以下几类DDL操作不可以通过“Online”的方式进行:会影响其他DML操作 1、新加字符编码不同 2、更改列数据类型 3、删除主键 4、添加全文索引 所以5.6的Online DDL并不是真正的Online...原理: 1、首先会对表进行分析(数据量、外键等) 2、创建一个临时表 3、创建触发器(3个),用户跟踪插入、更新、删除的数据(原表有写入,通过触发器复制到临时表) 4、copy数据 5、更新外键关联的子表...6、数据一致后将原表rename成_old,将临时表rename成原表(瞬间) 7、删除_old表 8、删除触发器 https://dev.mysql.com/doc/refman/5.6/en/innodb-create-index-overview.html...#innodb-online-ddl-summary-grid

    1.9K60

    SQL触发器

    什么是触发器触发器是一种用来保障参照完整性的特殊的存储过程,它维护不同表中数据间关系的有关规则。当对指定的表进行某种特定操作(如:Insert,Delete或Update)时,触发器产生作用。...触发器的限制: 1、一个表最多只能有三个触发器,insert,update,delete 2、每个触发器只能用于一个表 3、不能对视图、临时表创建触发器 4、Truncate table能删除表,但不能触发触发器...5、不能将触发器用于系统表 使用触发器的优点 1、触发器是自动的:它们在对表的数据作了任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活。...--删除触发器 drop trigger 触发器名称 --判断触发器是否存在 if (object_id('触发器名') is not null) --删除触发器 drop trigger...触发器名 go --创建触发器 if (object_id('触发器名') is not null) drop trigger 触发器名 go Create Trigger 触发器名 On 表名

    1.1K30

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券