我在SQL Server 2014上有一个数据库,每个用户都有一个SQL Server登录到Connection,但数据库表中的UserID和Password不同,以便为每个用户进行身份验证。
每位用户都有权插入,更新和删除记录 我想将这些事务与userid一起保存在单独的表中作为Audit Trial 我的应用程序是在Windows窗体(桌面应用程序)和Web窗体(Web应用程序)上开发的 两者都连接到同一个数据库用户ID同样
我发现了变更数据捕获(CDC)功能,但没有满足我的要求,因为我想用userid和CDC保存事务未知用户标识
答案 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