Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何知道谁在SQL server中更新了表?_Sql Server_Ssms - Fatal编程技术网

Sql server 如何知道谁在SQL server中更新了表?

Sql server 如何知道谁在SQL server中更新了表?,sql-server,ssms,Sql Server,Ssms,我想知道是谁修改了SQL server中的表,但我找不到任何可信的解决方案 我尝试了函数fn_dblog,但由于某些权限问题,它不允许我使用 SELECT * FROM fn_dblog(NULL, NULL) 错误消息: Msg 229,级别14,状态5,第1行选择权限被拒绝 对象'fn_dblog',数据库'mssqlsystemresource',架构'sys' 我参考了这篇文章,但是fndblog2函数的链接过期了 基本上,我希望获得更新给定表的用户列表,如果在SSMS中修改了该表,则

我想知道是谁修改了SQL server中的表,但我找不到任何可信的解决方案

我尝试了函数fn_dblog,但由于某些权限问题,它不允许我使用

SELECT * FROM fn_dblog(NULL, NULL)
错误消息:

Msg 229,级别14,状态5,第1行选择权限被拒绝 对象'fn_dblog',数据库'mssqlsystemresource',架构'sys'

我参考了这篇文章,但是fndblog2函数的链接过期了

基本上,我希望获得更新给定表的用户列表,如果在SSMS中修改了该表,则显示用户详细信息,如果某个.net应用程序修改了该表,则显示.net应用程序名称

SSMS详细信息:Microsoft SQL Server 2019 RTM-CU10 KB5001090-15.0.4123.1 X64 2021年3月22日18:10:24版权C 2019 Microsoft Corporation Developer Edition 64位Windows Server 2019数据中心10.0构建17763:管理程序


注意:由于证券问题,我无法获得私人许可。我很擅长编写C应用程序。如果可以在C中编写C应用程序,我可以这样做。

除非您有记录此操作的机制,否则您可能不会知道,这些机制是定制的。也许你可以围绕trugger构建一些逻辑并选择原始登录。作为应用程序级别的开发人员,你需要从连接中获取信息,并在运行时将其物理写入表中。这就是为什么您经常在每条记录上看到诸如CreatedBy、UpdateBy、CreateDate、UpdateDate之类的字段。@SqlSurfer但如果有人直接更新表中的一列,我说的是那些ScenariosTeve关于触发器的注释可能会对您有所帮助。SQL还有一个内置的概念,称为时态表,它可能与您所询问的内容有关。我认为时态表可能是你真正想要的。