2008-12-11 118 views
1

SQL Server 2005中是否有内置的方式来审计事物,具体如删除存储过程?是否有我可以查询的历史记录表?我们有一个谜现在已经消失了几次。SQL Server 2005更改审计

回答

2

只有当你使用DDL triggers或使用探查器跟踪文本 “%DROP%PROC%PROCNAME%”

0

你可以设置一个分析器跟踪以捕获审计模式对象管理事件并根据您关心的数据库名称进行过滤。每当架构中的对象被创建,删除,编辑时,它都会在事件探查器中触发事件,其中包括执行更改的人员和存储过程的名称。

你会希望至少这些探查列: 应用程序名称 - 应用程序的用户名正在运行时,他们做出改变 数据库名 - DATABSE包含对象改变 EventSubClass - 动作类型显示变更,修改,删除,创建等 LoginName - 正在更改的用户 ObjectName - 受影响的对象

1

请注意,在SQL Server 2008中,它们现在还具有用于替换用于添加活动的Profiler Traces的AUDIT。这是类似的,但有自己的配置用户界面和用户界面来查看结果

0

[下旬的一个,但增加了对如何查看谁做了甚至在审计系统的变化细节到位]

其他人已经覆盖不同为了监控未来的变化,您可以开始审核数据的方式,但如果您原来没有任何审核系统,那么很难找出历史上是谁做了什么。

只有选项是尝试读取事务日志,假设数据库处于完全恢复模式。问题是这不是默认支持的。选项包括:

请参阅以下主题了解更多详情:

How to view transaction log in SQL Server 2008

SQL Server Transaction Log Explorer/Analyzer

How to see query history in SQL Server Management Studio

0

我同意。它可以是带有过滤器的SQL Server分析器。 DDL触发器存在于SQL Server中。 您可以创建这样的事情:

CREATE TRIGGER ddl_drop_procedure 
    ON DATABASE 
    FOR DROP_PROCEDURE 
    AS 
    RAISERROR ('You deleted a stored procedure',10, 1) 

    GO 

另一种选择是使用诸如自动审核的第三方工具从CodePlex上,或apexSQL触发。