当执行 CREATE TABLE 或 ALTER TABLE 操作时,sql server 存储什么类型的审计信息?

StackOverflow https://stackoverflow.com/questions/984558

  •  13-09-2019
  •  | 
  •  

这个问题的灵感是一个存储过程对我造成了影响,因为它调用了另一个存储过程,该存储过程将数据插入到其架构完全改变的表中。

问题是您在 SQL Server 数据库中有一个表,但您不知道它是如何到达那里的。您没有任何用于自定义审核信息的 DDL 触发器,并且表 DDL 的源代码控制存储库中没有记录。仅使用 SQL Server,您可以获得有关该表的哪些取证数据。

我自己以及任何在类似情况下偶然发现这个问题的人,都不会从有关版本控制和 DDL 触发器的建议中得到帮助。这些都是很棒的前进解决方案,如果公司政治允许我们实施这些解决方案,这个博客上有大量关于这些主题的信息。我和处于我这种情况的人真正需要的是能够从 SQL Server 收集尽可能多的数据片段,以便与我们能想到的任何其他数据相结合。

有帮助吗?

解决方案

不幸的是,你无法重建发生的事情,除了:

  • DBA 是否有运行的跟踪和历史记录。SQL Server 2005 有默认跟踪,并且有“黑盒”跟踪,但这些跟踪用于找出崩溃之前发生的情况

  • 如果您有完整恢复模式,那么您可以尝试日志查看器工具(免费红门一号)

  • 根据活动和您的安全模型,您还可以检查 Windows 安全日志以查看谁使用 DDL 权限登录

  • SQL 事件日志也可能包含信息。例如,如果您启用了记录“权限”错误的跟踪标志,那么您可以看到它何时启动。或者进行更改的人可能生成了记录的其他异常

  • 你可以去问那些有权利的人。这可能是一个真正的错误(例如认为他们在开发中)

其他提示

在下面的查询让我的创造和持续时间修改

SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tbTableInQuestion]') AND type in (N'U')

您应该能够找到在表的创建。交易日志我从来没有使用任何的浏览器工具在这里,我不能告诉你怎么找回来的时间,这一点,但一切都发生在一个事务中,所以它得记录 - 即使是系统表...

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