【问题标题】:SQL Server : can we find out who has renamed database?SQL Server:我们可以找出谁重命名了数据库吗?
【发布时间】:2017-09-25 03:20:56
【问题描述】:

SQL Server 2012 中是否有任何方法可以识别谁更改了数据库名称?是否有任何审计日志或一些有用的东西?

【问题讨论】:

  • 试试this
  • 重命名可以通过 UI 和 SQL 脚本来完成。你知道是否有任何类型的审计日志吗?
  • SQL Server 可以配置审计很多东西docs.microsoft.com/en-us/sql/relational-databases/security/…
  • @variable 也许你应该看看为什么会发生这种情况。 为什么不是每个开发人员都有自己的编码服务器安装? SQL Server Dev 是免费的。 Express 具有当今 Enterprise 的所有可编程功能。保持同步更改并不能证明使用单个数据库是合理的。如果你这样做了,这意味着你有一个版本控制问题可以通过使用 SSDT、数据库项目和任何类型的版本控制(如 Git)轻松解决

标签: sql-server


【解决方案1】:

无论你怎么做,重命名操作都会写入TLOG。

我做了一个小测试并重命名了一个数据库。这个重命名操作被写入 TLOG,如下图所示:

您可以使用此查询阅读日志并知道名称:

select 
    suser_sname([transaction sid]) as username,* 
from 
    fn_dblog(null,null)

这受以下条款的约束

  1. 您的主数据库处于完全恢复模式
  2. 即使您的主数据库未处于完全恢复模式,如果未截断,您也可以获得该数据

另外注意不建议在实时生产数据库上阅读日志,所以我建议备份 TLOG 并单独阅读它们

【讨论】:

    猜你喜欢
    • 2019-05-29
    • 2012-07-29
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    相关资源
    最近更新 更多