【问题标题】:SQL Server 2005 AuditingSQL Server 2005 审计
【发布时间】:2011-09-29 10:11:50
【问题描述】:

背景 我有一个生产 SQL Server 2005 服务器,4 个不同的应用程序连接到该服务器并进行更改。 没有外键,在某些情况下也没有主键。 不幸的是,将整个事情扔掉并从头开始不是一种选择。 所以我的解决方案是开始将每个应用程序迁移到服务层方法,这样只有一个应用程序直接连接到数据库。

但是,在编写该服务层并迁移所有应用程序之前,需要解决一些问题。

因此,与其进行更改并希望它们不会破坏 4 个编写不佳的应用程序中的任何一个(无法快速测试所有功能),我的解决方案是开始审核数据库

问题 如何审核 SQL Server 2005 上的每个用户正在访问/更新/调用的存储过程、表、列、视图。

我可以找出哪些表正在更新,但我不知道哪些列以及哪些用户正在更新。 我也不知道某些表是否只能通过存储过程/视图访问。

我知道 SQL Server 2008 具有更好的审计功能,但如果我可以在不花钱的情况下做到这一点,那就太好了。也就是说,如果最好的解决方案是升级或购买软件,这也是一种选择。

【问题讨论】:

    标签: database sql-server-2005 audit-tables


    【解决方案1】:

    查看 SQL Server 2008 的 CDC feature。您不能在 2005 年直接使用它,但您可以为每个表编写一个触发器,以将所有数据更改记录到一个新的审计表中。即你的数据库中的每个表都有一个审计表,所有相同的列加上一些额外的列,说明操作是什么以及何时发生。

    如果您的应用程序的性质意味着您可以从 CURRENT_USER 和 APP_NAME() 获取用户信息和/或应用程序信息,您也可以将该信息包含在审核表中。

    查看this answer 以获得更多好处。

    【讨论】:

    • 在这个问题被风滚草这么久之后,有人又回到这个问题上给我留下了深刻的印象。
    猜你喜欢
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 2017-02-13
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多