微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLSERVER数据审计

 

经常有人问,说发现商品资料表(SPKFK)和客户资料表(MCHK)里的资料被修改了,但是又查不出是谁修改的,修改前是什么内容。如何才能跟踪这些表的变化呢?

这里就需要在sqlERVER中建立相应的表和存储过程和触发器,来跟踪发生改变的数据,并把原数值和新数值都插入审计记录表中。

由于时空的表结构和LOG日志表结构的原因,只能跟踪几点几分,某个用户名进入哪些模块。但是不能知道在这些模块里做了些什么。因此,进入日志查询也查不到商品资料的变化记录。

这里就需要采用数据审计功能来完成上述要求。

数据审计可以展示某行数据自插入后所有的数据变化。

展示某个用户上周针对某表作的全部数据更改

展示某个工作站针对某表所做的全部数据更改

展示某个应用程序针对某表所做的全部数据更改

注意,也有人说可以用触发器将改变前的数据插入一个表不就完了么,但是这里如果单纯用触发器完成审计,则需要对表中所有的字段做出判断(用IF UPDATE()语句)如果表的字段少,还比较好办,但是如果象时空软件一样,资料表的字段都在100个以上,并且还有可能随时增加或减少,则需要不断的修改触发器,可操作性不强,如果不判断哪个字段的话,则需要将整行数据全部插入到一个表里,而不能只插入修改的字段。

这里,有2种工具可以参考。

一个工具是DYNAMICAUDIT.sql这个脚本,里面包含了一个自定义函数一个存储过程,一个AUDITLOG表和对应跟踪表的各个触发器。

还有另一个是共享软件OMNIAUDIT,这个需要在服务器端安装,并设置对相应的表。然后可以跟踪这些表的数值变化。这个请大家自己搜索下载。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐