使用触发器记录DML,使用触发器记录表的DML 数据库级别DML操作监控审计.表触发器/对象触发器 --创建记录表 CREATE TABLE T_SHALL_LOG ( ID , ) , EVTIME DATETIME NOT NULL DEFAULT(GETDATE()) , --访问时间 SQL ) , --执行的SQL语句 USERID ) NOT NULL DEFAULT(SUSER_SNAME()) , --连接的时候使用的哪个SQL登陆用户 HOSTNAME ) NOT NULL D…
关键词:数据库触发器/服务器触发器  ,数据库级别DDL操作监控审计,禁止修改登录名密码 [1]数据库级别DDL操作监控审计 转自2012示例库,只能数据库级别,不能实例级别 use databasego SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO create table databaseLog( [PostTime] datetime, [DatabaseUser] varchar(500), [Event] varchar(500),…
1.怎样加快master数据库的写操作?分表原则!将表水平划分!减少表的锁定时间!!! 或者或者添加写数据库的集群!!!或者添加写数据库的集群!!! 2.既然分表了,就一定要注意分表的规则!要在代码层,代码层知道将数据insert/select到哪张表上. 3.要在代码层知道将数据操作到哪张表上!分表规则, 所以分表规则要用代码设计出来,与数据库中的分表规则对应!!!一样!!!一样的分表规则!! 4.那么按什么规则分表呢?有不同的策略,常见的有按照01234556789,账号尾数0对应0表,1对…
前言:    线上oracle数据库有张表的数据有些乱,依据应用db的log和应用的log也没有检查出来谁改动了.所以决定把这张单表做个具体的insert.update.delete监控.一:使用数据库自带的审计功能1,查看审计功能是否启动SQL> show parameter audit NAME     TYPE VALUE------------------------------------ ----------- ------------------------------audit_…
转载 Seay_法师 最近生活有很大的一个变动,所以博客也搁置了很长一段时间没写,好像写博客已经成了习惯,搁置一段时间就有那么点危机感,心里总觉得不自在.所以从今天起还是要继续拾起墨笔(键盘),继续好好维护这个博客,写出心里最真实的想法,写出平时接触到的一些人和事以及一些新的技术.当然写博客也不是单纯的为了记录,也想通过博客来结交更多的朋友,今天在公司图书馆看到一句话大致说的是"在今天这个年代,已经很难等到三顾茅庐,诸葛亮也需要博客.微博和影响力",在一年前就曾想过写一篇关于怎样通过博…
前提:请用sys用户dba权限登录 1.创建一个表来存储操作日志 create table trig_sql( LT DATE not null primary key, SID NUMBER, SERIAL# NUMBER, USERNAME ), OSUSER ), MACHINE ), TERMINAL ), PROGRAM ), SQLTEXT ), STATUS ), CLIENT_IP ), ); 2.创建索引(可能已经自动创建,如果已经创建则忽略此步骤) create index…
概述 在上一篇文章中已经介绍了审计的概念:本篇文章主要介绍如何创建审计,以及该收集哪些审核规范. 一.常用的审核对象 1.1.服务器审核对象 1.FAILED_LOGIN_GROUP( Audit Login Failed Event Class) 指示主体尝试登录到 SQL Server,等效于 Audit Login Failed Event Class,比如:登入失败的操作 2.SERVER_OBJECT_CHANGE_GROUP(Audit Server Object Managemen…
一.概述 在上一篇文章中已经介绍了审计的概念:本篇文章主要介绍如何创建审计,以及该收集哪些审核规范. 二.常用的审核对象 2.1.服务器审核对象 1.FAILED_LOGIN_GROUP( Audit Login Failed Event Class) 指示主体尝试登录到 SQL Server,等效于 Audit Login Failed Event Class,比如:登入失败的操作 2.SERVER_OBJECT_CHANGE_GROUP(Audit Server Object Managem…
需求背景 上周遇到了这样一个需求,维护人员发现一个表的数据经常被修改,由于历史原因:文档缺少:以及维护人员的经常变更,导致他们对系统也业务也不完全熟悉,他们也不完全清楚哪些系统和应用程序会对这个表的数据进行操作.现在他们想找出有哪些服务器,哪些应用程序会对这个表进行INSERT.UPDATE操作.那么问题来了,怎么去解决这个问题呢? 解决方案 由于数据库版本是标准版,我们选择了使用触发器来捕获进行DML操作的会话的相关信息,例如,Host_Name.Program_Name等 ,选择触发器是因为…
在Oracle数据库中,如何查找,定位一张表最后一次的DML操作的时间呢? 方式有三种,不过都有一些局限性,下面简单的解析.总结一下. 1:使用ORA_ROWSCN伪列获取表最后的DML时间 ORA_ROWSCN伪列是Oracle 10g开始引入的,可以查询表中记录最后变更的SCN.然后通过SCN_TO_TIMESTAMP函数可以将SCN转换为时间戳,从而找到最后DML操作时SCN的对应时间.但是,默认情况下,每行记录的ORA_ROWSCN是基于Block的,除非在建表的时候开启行级跟踪. SE…