用户审核试用(在数据库表中创建)

时间:2017-06-09 11:13:11

标签: .net sql-server database logging audit-trail

我在SQL Server 2014上有一个数据库,每个用户都有一个SQL Server登录到Connection,但数据库表中的UserID和Password不同,以便为每个用户进行身份验证。

每位用户都有权插入,更新和删除记录 我想将这些事务与userid一起保存在单独的表中作为Audit Trial 我的应用程序是在Windows窗体(桌面应用程序)和Web窗体(Web应用程序)上开发的 两者都连接到同一个数据库用户ID同样

我发现了变更数据捕获(CDC)功能,但没有满足我的要求,因为我想用userid和CDC保存事务未知用户标识

1 个答案:

答案 0 :(得分:-1)

使用此选项将记录插入表中。最终,您可以将第二个查询编写脚本到SP,并从SQL Agent每天运行。希望这可以帮助 Ven

Create table eventsLog

    ( 

     EventClass varchar(10)
    ,LoginName Varchar(100)
    ,SPid int
    ,Starttime date
    ,ObjectName Varchar(255)
    ,DBName varchar(100)
    ,Hostname varchar (100)

    )


    Insert into eventsLog

    SELECT e.NAME AS eventclass
        ,t.loginname
        ,t.spid
        ,t.starttime
        ,t.objectname
        ,t.databasename
        FROM sys.fn_trace_gettable(CONVERT(VARCHAR(150), (
                    SELECT TOP 1 f.[value]
                    FROM sys.fn_trace_getinfo(NULL) f
                    WHERE f.property = 2
                    )), DEFAULT) T
    INNER JOIN sys.trace_events e
        ON t.eventclass = e.trace_event_id
    WHERE eventclass = 164