【问题标题】:SQL Server - VIEWS - keep track of last altered time and the user that altered itSQL Server - VIEWS - 跟踪上次更改时间和更改时间的用户
【发布时间】:2019-05-21 13:59:10
【问题描述】:

我想创建一个自定义表,我应该在其中存储 VIEW 的最后更改日期和更改它的 SYSTEM_USER

VIEW 的最后更新日期我可以使用这个查询来检索它:

SELECT name, create_date, modify_date 
FROM sys.objects
WHERE type = 'v'
ORDER BY 3 DESC

但是,上表没有保留有关更改视图的用户的信息。

有没有办法在 SQL 中做到这一点? INSTEAD OF triggers 不是解决方案。

【问题讨论】:

  • 我的第一个建议是使用版本控制来管理您的数据库,然后您可以看到的不仅仅是谁更改了视图以及何时更改了视图。您可以看到更改是什么,并假设他们正确使用了该软件,为什么进行更改,它是什么功能的一部分等。如果这不可能,Aaron Betrand 在this article 中描述了一个使用数据库触发器的非常好的解决方案,虽然不确定这是否是您所说的“INSTEAD OF 触发器不是解决方案”
  • @GarethD - 因为INSTEAD OF 可以与UPDATEINSERT 等一起使用,并且没有人会对此视图进行更新或插入。
  • 您不会看到 INSTEAD OF 触发器,因为它们与 DML 触发器有关。如果您需要存储此类信息,它将位于 DDL 触发器中。

标签: sql-server view


【解决方案1】:

企业版提供对象审计。

更便宜的选择 - 我认为有一些第三方产品也可以做到这一点。

上述内容不足,我不相信有办法。对不起。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多