SQL - 创建用于存储SQL用户活动的表

时间:2013-01-29 04:07:46

标签: sql database sql-server-2008 monitoring logfiles

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

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

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

我将如何做到这一点?

提前致谢!

2 个答案:

答案 0 :(得分: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语句中没有触发器,因此捕获所有查询都需要非常具有侵入性的方法,例如server-side traceSQL Server Audit

答案 1 :(得分:1)

阅读SQL Server中的Logon Triggers