SQL Server 2005更改审核

时间:2008-12-11 17:56:38

标签: sql-server sql-server-2005 audit auditing ddl-trigger

SQL Server 2005中是否有内置方式来审计特定内容,例如删除存储过程?有没有我可以查询的历史表?我们有一个神秘的现在已经消失了几次。

6 个答案:

答案 0 :(得分:3)

您可以使用DDL触发器构建它:

http://msdn.microsoft.com/en-us/library/ms190989.aspx

答案 1 :(得分:2)

仅当您使用DDL triggers或使用分析器跟踪文本“%DROP%PROC%procname%”

答案 2 :(得分:1)

请注意,在SQL Server 2008中,他们现在还具有AUDIT来替换用于审核活动的Profiler跟踪。它类似,但有自己的配置UI和UI来查看结果

答案 3 :(得分:0)

您可以设置探查器跟踪以捕获审核模式对象管理事件,并根据您关注的数据库名称进行过滤。无论何时创建,删除,编辑模式中的对象,它都将在分析器中触发一个事件,该事件包括执行更改的人员和存储过程的名称。

您至少需要这些分析器列: ApplicationName - 应用程序用户的名称在进行更改时正在运行 DatabaseName - 包含对象更改的数据库 EventSubClass - 操作类型显示Alter,Modify,Drop,Create等 LoginName - 用户进行更改 ObjectName - 受影响的对象

答案 4 :(得分: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

答案 5 :(得分: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触发器。