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

有帮助吗?

解决方案

可以建立这个使用DDL触发器:

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

其他提示

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

请注意,在SQL Server 2008中,他们现在也有审计,以取代探查器跟踪的auding活动。它是类似的,但具有其自己的配置的用户界面和用户界面来查看结果

您可以设置事件探查器跟踪捕获根据您所关心的数据库名审计模式对象管理事件和过滤器。创建架构中的对象的任何时间,下降,编辑将火探查器,包括谁做的改变和存储过程的名称的人的事件。

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

[迟到但添加了有关如何在审核系统到位之前查看谁进行了更改的详细信息]

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

唯一的选择是假设数据库处于完全恢复模式,尝试读取事务日志。问题是默认情况下不支持此功能。选项有:

请参阅以下主题了解更多详细信息:

如何在SQL Server 2008中查看事务日志

SQL Server 事务日志浏览器/分析器

如何在 SQL Server Management Studio 中查看查询历史记录

我同意。它可以使用过滤器的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触发。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top