0

我想创建一个 SQL 表来存储/捕获特定数据库的用户访问或活动。

例如,每次用户登录服务器并查询特定数据库时,该表都会包含用户名、访问/查询的数据库、活动时间等条目。

我知道我会在某个地方查找 .txt 日志文件 - 但有没有更简单的自动执行方法?

我该怎么做呢?

提前致谢!

4

2 回答 2

2

您可以在 SQL Server 错误日志中捕获登录活动(为“失败和成功登录”打开登录审核):

USE [master];
GO
EXEC xp_instance_regwrite 
  N'HKEY_LOCAL_MACHINE', 
  N'Software\Microsoft\MSSQLServer\MSSQLServer', 
  N'AuditLevel', 
  REG_DWORD, 
  3;

或者通过创建一个LOGON TRIGGER并使用它来记录到特定的表。

但是,由于语句没有触发器SELECT,因此捕获所有查询将需要非常侵入性的方法,例如服务器端跟踪SQL Server 审计

于 2013-01-29T04:14:56.787 回答
1

阅读SQL Server 中的登录触发器

于 2013-01-29T04:11:29.523 回答