请教:访问数据库后会留下哪痕迹?怎么查询?

时间:2022-04-29 07:56:47
未知应用程序或未知网页用Select语句访问用户表内一些记录后会留下什么痕迹,上哪里去查看以及怎么去查看这些痕迹?
请高手帮帮忙,谢谢!

13 个解决方案

#1


如果仅是select语句
只会把 sql帐号(或windows帐号) login 到 sql server时的确信息记录下来.

只能到库, 无法细化到表.  

如果你一直开了事件查探器的话,可以看到.



#2


如果是网页操作的话, 那么可以结合iis日志做分析.

如果是非web应用程序,那就看你的应用程序的日志系统如何了.

#3


谢谢fcuandy!好象明白多了。另:未知应用程序访问数据库后数据库本身有什么变化?如果我做一个监控程序应该上哪去读取未知应用程序访问数据库的痕迹和信息?谢谢!

#4


各位BOSS帮帮忙!明天准备开始用VC去写一个捕获其它未知应用程序访问我的SQL数据库痕迹的程序,就是不知用代码上哪去找这些信息。高手帮说说,谢谢! 

#5


好像没什么变化,当然,如果没进行写库的话.

"如果我做一个监控程序应该上哪去读取未知应用程序访问数据库的痕迹和信息"
这个恐怕比较难, sqlserver 不是开源系统, 事件探查器如何得到那些信息的,只有ms自己知道.

当初开log explorer的团队就是用dbcc命令经过千万次的尝试及分析二进制文件才弄出这个产品, 分析每个操作引起什么样的数据(不是指我们看到的数据表的行,而是二进制的文件信息)变化.

sqlserver有sql os, 我也只看了一些概念,理解的还不多,你可以看看"存储引擎"一书,可能会多助于你了解一些底层的东西.

#6


学习了,

#7


谢谢!临时再UP一下。

#8


引用 7 楼 temp200802 的回复:
谢谢!临时再UP一下。

#9


如果只是select * from tb等,估计查不到.

其他的可以通过Log Explorer查看日志.

Log Explorer 

http://www.ttdown.com/SoftDown.asp?ID=14562 
http://js.fixdown.com/soft/8324.htm 
http://www.yiii.net/app/servlet/net.yiii.club.DownloadServlet?Information_Id=I00023471 
解压缩密码   www.heibai.net 

http://www.ttdown.com/softview_8647.htm 


注册机产生的是注册码,是两个 

用解压缩密码解开后,压缩包里也有一个注册机的 

打开log   explorer   file=> attach   log   file-> 选择服务器和登陆方式-> connect-> 
选择数据库-> attach-> 左面对话框中browse-> view   log-> 就可以看到log记录了 
想恢复的话:   右键log记录   undo   transation-> 选择保存文件名和路径-> 然后打开该文件到查询分析器里执行 
T-sql代码就可以了 

例如   如果log是delete   table   where   ...的话,生成的文件代码就是insert   table   .... 


Log   Explorer   for   SQL   Server   v3.3   特别版 
www.chinaz.com 


Log   Explorer   is   the   leading   transaction   analysis   and   data   recovery   solution   for   Microsoft   SQL   Server.   By   providing   unprecedented   access   to   the   SQL   Server   transaction   log,   Log   Explorer   gives   you   the   ability   to   understand   and   solve   elusive   database   problems   by   browsing   the   transaction   log,   exporting   data   to   create   reports,   and   selectively   recovering   modified,   deleted,   dropped,   or   truncated   data. 


打开log   explorer   file=> attach   log   file-> 选择服务器和登陆方式-> connect-> 
选择数据库-> attach-> 左面对话框中browse-> view   log-> 就可以看到log记录了 
想恢复的话:   右键log记录   undo   transation-> 选择保存文件名和路径-> 然后打开该文件到查询分析器里执行 
T-sql代码就可以。。。 

例如   如果log是delete   table   where   ...的话,生成的文件代码就是insert   table   .... 

右键log记录   undo   transation-> 选择保存文件名和路径-> 然后打开该文件到查询分析器里执行T-sql代码。。。 

log   explorer使用的一个问题 

1)对数据库做了完全   差异   和日志备份 
备份时选用了删除事务日志中不活动的条目 
再用Log   explorer打试图看日志时 
提示No   log   recorders   found   that   match   the   filter,would   you   like   to   view   unfiltered   data 
选择yes   就看不到刚才的记录了 


如果不选用了删除事务日志中不活动的条目 
再用Log   explorer打试图看日志时,就能看到原来的日志 

2)修改了其中一个表中的部分数据,此时用Log   explorer看日志,可以作日志恢复 

3)然后恢复备份,(注意:恢复是断开log   explorer与数据库的连接,或连接到其他数据上, 
否则会出现数据库正在使用无法恢复) 
恢复完后,再打开log   explorer   提示No   log   recorders   found   that   match   the   filter,would   you   like   to   view   unfiltered   data 
选择yes   就看不到刚才在2中修改的日志记录,所以无法做恢复. 

-------------------------------------------------------------------------------- 
系统中有一个数据库DB1,系统正在使用的过程中,不小心删除了某表T1的数据 
现我可以按照用完整备份文件加日志备份时间点TIME1恢复的方法来恢复该数据库 

但问题出在该数据库一直还必须在使用中,所以除了你删除了数据的TA表外,其它的 
表的数据你不能只是恢复到错误时间点TIME1处,因为,TIME1以后也有数据变化 

解决这个问题有两个方法 
1:用LOG   EXEPLORE   可以轻松搞定 

2:先建立一个数据库DB2,将完整备份文件恢复到DB2中,再用DB2中的T1数据来更新 
      DB1中的T1数据即可. 


--查看备份信息 
RESTORE   FILELISTONLY   FROM   DISK   = 'C:\Program   Files\Microsoft   SQL   Server\MSSQL\BACKUP\db1_backup ' 

--还原旧的备份   
RESTORE   DATABASE   db2   FROM   DISK   =   'C:\Program   Files\Microsoft   SQL   Server\MSSQL\BACKUP\db1_backup '   with   replace,norecovery, 
move   'db1_Data '   to   'C:\Program   Files\Microsoft   SQL   Server\MSSQL\data\db2_data.mdf ', 
  move   'db1_Log '   to   'C:\Program   Files\Microsoft   SQL   Server\MSSQL\data\db2_log.ldf '   

--还原数据日志到时间点 
restore   log     db2     from   disk= 'db_log_backup '     with   stopat= '2003/4/22   9:57 '

#10


谢谢!我先研究研究,有進展回来结帖。

#11


select语句似乎有点困难,除非你的应用程序有日志管理 

#12


谢谢各位高手帮忙!
因为担心有其它未知应用程序或未经我允许上传的网页Select 我网站后台数据库的表,所以想做个访问捕捉程序,看起来是有一定难度。
看来在安全方面还得想其它办法,没有其它办法之前事件探查器以及IIS日志是最简单的,其它办法只有以后看情况了。
那也辛苦各位了,准备过一半天结帖。

#13


谢谢大家!
上面的高手们其实想的已经比较全面了。先暂告一段落,过一会准备结帖,分数还是凭感觉分配,不妥请见谅。
如果哪位大虾日后有新的补充,我视机会再单独为其送分示谢。

#1


如果仅是select语句
只会把 sql帐号(或windows帐号) login 到 sql server时的确信息记录下来.

只能到库, 无法细化到表.  

如果你一直开了事件查探器的话,可以看到.



#2


如果是网页操作的话, 那么可以结合iis日志做分析.

如果是非web应用程序,那就看你的应用程序的日志系统如何了.

#3


谢谢fcuandy!好象明白多了。另:未知应用程序访问数据库后数据库本身有什么变化?如果我做一个监控程序应该上哪去读取未知应用程序访问数据库的痕迹和信息?谢谢!

#4


各位BOSS帮帮忙!明天准备开始用VC去写一个捕获其它未知应用程序访问我的SQL数据库痕迹的程序,就是不知用代码上哪去找这些信息。高手帮说说,谢谢! 

#5


好像没什么变化,当然,如果没进行写库的话.

"如果我做一个监控程序应该上哪去读取未知应用程序访问数据库的痕迹和信息"
这个恐怕比较难, sqlserver 不是开源系统, 事件探查器如何得到那些信息的,只有ms自己知道.

当初开log explorer的团队就是用dbcc命令经过千万次的尝试及分析二进制文件才弄出这个产品, 分析每个操作引起什么样的数据(不是指我们看到的数据表的行,而是二进制的文件信息)变化.

sqlserver有sql os, 我也只看了一些概念,理解的还不多,你可以看看"存储引擎"一书,可能会多助于你了解一些底层的东西.

#6


学习了,

#7


谢谢!临时再UP一下。

#8


引用 7 楼 temp200802 的回复:
谢谢!临时再UP一下。

#9


如果只是select * from tb等,估计查不到.

其他的可以通过Log Explorer查看日志.

Log Explorer 

http://www.ttdown.com/SoftDown.asp?ID=14562 
http://js.fixdown.com/soft/8324.htm 
http://www.yiii.net/app/servlet/net.yiii.club.DownloadServlet?Information_Id=I00023471 
解压缩密码   www.heibai.net 

http://www.ttdown.com/softview_8647.htm 


注册机产生的是注册码,是两个 

用解压缩密码解开后,压缩包里也有一个注册机的 

打开log   explorer   file=> attach   log   file-> 选择服务器和登陆方式-> connect-> 
选择数据库-> attach-> 左面对话框中browse-> view   log-> 就可以看到log记录了 
想恢复的话:   右键log记录   undo   transation-> 选择保存文件名和路径-> 然后打开该文件到查询分析器里执行 
T-sql代码就可以了 

例如   如果log是delete   table   where   ...的话,生成的文件代码就是insert   table   .... 


Log   Explorer   for   SQL   Server   v3.3   特别版 
www.chinaz.com 


Log   Explorer   is   the   leading   transaction   analysis   and   data   recovery   solution   for   Microsoft   SQL   Server.   By   providing   unprecedented   access   to   the   SQL   Server   transaction   log,   Log   Explorer   gives   you   the   ability   to   understand   and   solve   elusive   database   problems   by   browsing   the   transaction   log,   exporting   data   to   create   reports,   and   selectively   recovering   modified,   deleted,   dropped,   or   truncated   data. 


打开log   explorer   file=> attach   log   file-> 选择服务器和登陆方式-> connect-> 
选择数据库-> attach-> 左面对话框中browse-> view   log-> 就可以看到log记录了 
想恢复的话:   右键log记录   undo   transation-> 选择保存文件名和路径-> 然后打开该文件到查询分析器里执行 
T-sql代码就可以。。。 

例如   如果log是delete   table   where   ...的话,生成的文件代码就是insert   table   .... 

右键log记录   undo   transation-> 选择保存文件名和路径-> 然后打开该文件到查询分析器里执行T-sql代码。。。 

log   explorer使用的一个问题 

1)对数据库做了完全   差异   和日志备份 
备份时选用了删除事务日志中不活动的条目 
再用Log   explorer打试图看日志时 
提示No   log   recorders   found   that   match   the   filter,would   you   like   to   view   unfiltered   data 
选择yes   就看不到刚才的记录了 


如果不选用了删除事务日志中不活动的条目 
再用Log   explorer打试图看日志时,就能看到原来的日志 

2)修改了其中一个表中的部分数据,此时用Log   explorer看日志,可以作日志恢复 

3)然后恢复备份,(注意:恢复是断开log   explorer与数据库的连接,或连接到其他数据上, 
否则会出现数据库正在使用无法恢复) 
恢复完后,再打开log   explorer   提示No   log   recorders   found   that   match   the   filter,would   you   like   to   view   unfiltered   data 
选择yes   就看不到刚才在2中修改的日志记录,所以无法做恢复. 

-------------------------------------------------------------------------------- 
系统中有一个数据库DB1,系统正在使用的过程中,不小心删除了某表T1的数据 
现我可以按照用完整备份文件加日志备份时间点TIME1恢复的方法来恢复该数据库 

但问题出在该数据库一直还必须在使用中,所以除了你删除了数据的TA表外,其它的 
表的数据你不能只是恢复到错误时间点TIME1处,因为,TIME1以后也有数据变化 

解决这个问题有两个方法 
1:用LOG   EXEPLORE   可以轻松搞定 

2:先建立一个数据库DB2,将完整备份文件恢复到DB2中,再用DB2中的T1数据来更新 
      DB1中的T1数据即可. 


--查看备份信息 
RESTORE   FILELISTONLY   FROM   DISK   = 'C:\Program   Files\Microsoft   SQL   Server\MSSQL\BACKUP\db1_backup ' 

--还原旧的备份   
RESTORE   DATABASE   db2   FROM   DISK   =   'C:\Program   Files\Microsoft   SQL   Server\MSSQL\BACKUP\db1_backup '   with   replace,norecovery, 
move   'db1_Data '   to   'C:\Program   Files\Microsoft   SQL   Server\MSSQL\data\db2_data.mdf ', 
  move   'db1_Log '   to   'C:\Program   Files\Microsoft   SQL   Server\MSSQL\data\db2_log.ldf '   

--还原数据日志到时间点 
restore   log     db2     from   disk= 'db_log_backup '     with   stopat= '2003/4/22   9:57 '

#10


谢谢!我先研究研究,有進展回来结帖。

#11


select语句似乎有点困难,除非你的应用程序有日志管理 

#12


谢谢各位高手帮忙!
因为担心有其它未知应用程序或未经我允许上传的网页Select 我网站后台数据库的表,所以想做个访问捕捉程序,看起来是有一定难度。
看来在安全方面还得想其它办法,没有其它办法之前事件探查器以及IIS日志是最简单的,其它办法只有以后看情况了。
那也辛苦各位了,准备过一半天结帖。

#13


谢谢大家!
上面的高手们其实想的已经比较全面了。先暂告一段落,过一会准备结帖,分数还是凭感觉分配,不妥请见谅。
如果哪位大虾日后有新的补充,我视机会再单独为其送分示谢。