2012-05-15 49 views
3

有人在我访问服务器后立即在我们的某个数据库上删除表。我不知道这是谁的。因为这个人,我几乎失去了工作。检查在SQL Server上运行的“DROP”查询

所以我想知道有没有一种方法可以检查哪个用户运行了查询DROP TABLE my_table以便我可以向我的老板证明我是无辜的?

+1

@Barry我知道这是一个奇怪的问题,但我不认为删除所有背景信息都有帮助。 –

+0

@Tim - 我不认为所有的背景信息都会为实际上有趣的问题增加任何价值。这通常是鼓励问题被关闭的一种方式。 –

回答

2

在SQL Server 2005或更新的,你也可以调查DDL triggers甚至会允许你禁止某些DROP TABLE陈述....

CREATE TRIGGER safety 
ON DATABASE 
FOR DROP_TABLE 
AS 
    PRINT 'You must disable Trigger "safety" to drop tables!' 
    ROLLBACK 
; 

这基本上只是阻止任何人删除表

+2

将此功能与插入到日志表中的功能组合在一起,可以防止桌子掉落,并收集谁/何时尝试的证据 – bendataclear