各位有没有什么方式 可以查询到最近一周更新数据库的语句?

bean_sql 2012-06-13 03:18:03
最近里那个天数据库数据被无故更新,想知道更新了哪些地方,
如果查询?
...全文
152 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
孤独加百列 2012-06-14
  • 打赏
  • 举报
回复
表结构被改了的话,就用DDL触发器。
表数据被改了的话,可以用INSERT和UPDATE审计查看所有数据库操作语句和操作用户。
给你个Select审计的例子

USE master
CREATE SERVER AUDIT testAudit TO FILE(FILEPATH='D:\TempSelectAudit\')
GO


CREATE DATABASE AUDIT SPECIFICATION testAudSpec FOR SERVER AUDIT testAudit
ADD (SELECT ON HumanResources.Employee BY Public)
GO


USE master
SELECT is_state_enabled,* FROM sys.server_file_audits
USE AdventureWorks
SELECT is_state_enabled,* FROM sys.database_audit_specifications
GO


USE master
ALTER SERVER AUDIT testAudit WITH (STATE=ON)
GO
USE AdventureWorks
ALTER DATABASE AUDIT SPECIFICATION testAudSpec WITH (STATE=ON)
GO


SELECT session_server_principal_name, statement, *
FROM fn_get_audit_file ('D:\TempSelectAudit\*',NULL, NULL)
xiaoxiangqing 2012-06-14
  • 打赏
  • 举报
回复
这个好像不行吧
xiaoxiangqing 2012-06-14
  • 打赏
  • 举报
回复
这个好像不行吧
FeelTouch Labs 2012-06-14
  • 打赏
  • 举报
回复
用MSSQL事件探测器试试,日志文件也可以查吧
發糞塗牆 2012-06-13
  • 打赏
  • 举报
回复
使用“DDL 触发器”可以记录每个DDL操作的详情。详细用法看联机丛书。网上也有相关的代码,我的代码放服务器了,暂时拿不了。
SQL777 2012-06-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
找到了一个ApexSQL软件,
如果数据库日志模式不是Simple 而是Full 模式的话
可以查询所有的Insert/Update/Delete 的Transaction事件记录
而且给出 redo/undo 脚本...
[/Quote]
你也可以自己前台写程序记录
bean_sql 2012-06-13
  • 打赏
  • 举报
回复
找到了一个ApexSQL软件,
如果数据库日志模式不是Simple 而是Full 模式的话
可以查询所有的Insert/Update/Delete 的Transaction事件记录
而且给出 redo/undo 脚本...
wanshichen 2012-06-13
  • 打赏
  • 举报
回复
好像是truncate跟drop的都是不能回复的,这块记不清了,但是delete跟insert,update的这一类语句都可以查到操作。
wanshichen 2012-06-13
  • 打赏
  • 举报
回复
安装Log Explorer
如果日志什么的没清除,是可以查到的
可以查到除了truncate以为的所有语句,是服务器上常用的还原SQL操作软件。
bancxc 2012-06-13
  • 打赏
  • 举报
回复

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧