加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 确定架构更改的发生方式?

发布时间:2020-12-12 06:23:17 所属栏目:MsSql教程 来源:网络整理
导读:昨天发生了一件坏事. 在某个时间之前创建的视图被最终破坏报告的人修改.不幸.某人(有意或无意地)在PRODUCTION数据库中进行了此修改. 我的问题:有没有办法(脚本/软件/免费软件等)我们可以通过它来了解谁(用户名)进行了此修改,以便我可以撤销对该用户的生产数
昨天发生了一件坏事.

在某个时间之前创建的视图被最终破坏报告的人修改.不幸.某人(有意或无意地)在PRODUCTION数据库中进行了此修改.

我的问题:有没有办法(脚本/软件/免费软件等)我们可以通过它来了解谁(用户名)进行了此修改,以便我可以撤销对该用户的生产数据库的访问权限.

如果我的问题不清楚,请发表评论.

解决方法

这会被记录到默认跟踪中,因此,只要它已启用且尚未翻转,它就会显示在“架构更改历史记录”报告中.

要在Management Studio中访问它,请右键单击数据库,然后从上下文菜单中选择Reports – >标准报告 – >架构更改历史记录

要通过TSQL检索相同的信息,您可以使用

SELECT StartTime,LoginName
       --,f.*
FROM   sys.traces t
       CROSS APPLY fn_trace_gettable(REVERSE(SUBSTRING(REVERSE(t.path),CHARINDEX('',REVERSE(t.path)),260)
                                             ) + N'log.trc',DEFAULT) f
WHERE  t.is_default = 1
       AND ObjectName = 'FOO'
       AND EventClass IN (46,/*Object:Created*/
                          47,/*Object:Dropped*/
                          164 /*Object:Altered*/ )

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读