当前位置: 代码迷 >> Sql Server >> 求准:监控SQL2008R2数据库增删改并记要IP用户名的方案
  详细解决方案

求准:监控SQL2008R2数据库增删改并记要IP用户名的方案

热度:58   发布时间:2016-04-24 08:52:58.0
求准:监控SQL2008R2数据库增删改并记录IP用户名的方案
大家好,
目前公司的数据库服务器SQL2008R2,需要实现这么一个功能:
有日志能查询谁(用户名),什么时间,操作了什么数据库,什么表,操作者的IP,执行的什么语句。

参考了备份资料,启用数据库的审核。但是没办法查询到操作者的IP,只能记录session_id.

请问大家有什么好的办法吗?非常感谢。
------解决思路----------------------
用数据库是无法实现的,我是用程序来在重要操作的时候,先将操作前的记录导入记录表,包含了当前登录用户的用户名,获取到的电脑mac地址,在用的IP。但是我只是用程序监测几张表,如果要实现所有的插入删除操作,就不清楚了。2008貌似没这样的功能
------解决思路----------------------
什么时间,操作了什么数据库,什么表,操作者的IP

但是没办法查询到操作者的IP,只能记录session_id.

-》 数据库才不管 什么Ip的,它只管执行 接受的 操作命令。要想记录详细,个人觉得 还是从程序入手,自定义日志类,当然 里边要记录的东西  完全可以自己定义,定义的类 供程序调用。程序中的各个方法 不可能是都要记录的,对于比较重要的操作记录就可以。
------解决思路----------------------
业务日志,要用程序来进行记录。
因为程序上点个按钮就是一次很明确的操作,而在数据库上可能有一批数据被修改。
所以记一条业务日志比记一批数据日志要清晰的多。
------解决思路----------------------
可以用SQL Profiler工具跟踪, 并将跟踪结果记录到数据库中的表.
------解决思路----------------------

楼主可以看看这个;

监控SQL:通过SQL Server的DML触发器来监控哪些IP对表的数据进行了修改(2)
http://blog.csdn.net/sqlserverdiscovery/article/details/17020035
------解决思路----------------------

还有 数据库结构的变化:

监控SQL:通过SQL Server的DDL触发器来监控数据库结构的变化(1)
http://blog.csdn.net/sqlserverdiscovery/article/details/14447321
------解决思路----------------------


另外,sql server 数据库从2008R2开始,就有数据库审核的功能,能记录下整个数据库所有的 操作,但是不能记录 IP地址这样的信息。