【问题标题】:SQL - create table to store SQL user activitySQL - 创建表来存储 SQL 用户活动
【发布时间】:2013-01-29 04:07:45
【问题描述】:

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

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

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

我该怎么做呢?

提前致谢!

【问题讨论】:

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


    【解决方案1】:

    您可以在 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

    【讨论】:

      【解决方案2】:

      阅读 SQL Server 中的 Logon Triggers

      【讨论】:

      • 这有助于登录活动,但查询呢?
      猜你喜欢
      • 2016-10-04
      • 2013-07-18
      • 1970-01-01
      • 1970-01-01
      • 2010-10-16
      • 1970-01-01
      • 2021-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多