--创建登录用户表 CREATE TABLE logoninfo ( logonname VARCHAR(100), logondate DATETIME ) GO ALTER trigger trg_deny_logon on all server for logon as INSERT INTO test.dbo.logoninfo VALUES (original_login(),GETDATE()) go登录后查看logoninfo信息
谢谢楼上的老兄, SELECT * FROM ::fn_dblog('', '') WHERE AllocUnitName is Not null and AllocUnitName like '%表名_%' 语句可以查询到到某一表的操作,但是其记录中大不部分是二进制存储的,象logrecord的信息完全 不懂,请问当对一个表进行Insert、Update、Delete等操作时,怎样在该语句中获得到对该表操作的T-SQL语句的真实内容呢?insert tablename (f1,f2) values ('11','22'),谢谢!
用fn_dblog()看到语句比较困难了,现在只有第三方的工具可以解析SQL Server Log,当然网上也有很多人自己写的解析SQL Server Log的,但是我测试过几个都是有问题的。如果你要监控某个表的操作,可以用Databaes Aduit,还可以对用户进行Filter.
--日志裡應有記錄,但沒研究過都是記錄的什麼玩意
dbcc log(yourdatabase,1)
dbcc log(yourdatabase,2)
dbcc log(yourdatabase,3)
dbcc log(yourdatabase,4)
/*
實際上如果想記錄這些,可以在數據庫級寫數據庫事件觸發器,也可以在模式級寫觸發器進行記錄相關信息
*/
怎样读dbcc log的信息
--创建登录用户表
CREATE TABLE logoninfo
(
logonname VARCHAR(100),
logondate DATETIME
)
GO
ALTER trigger trg_deny_logon
on all server
for logon
as
INSERT INTO test.dbo.logoninfo VALUES (original_login(),GETDATE())
go登录后查看logoninfo信息
SELECT * FROM ::fn_dblog('', '')
WHERE AllocUnitName is Not null and AllocUnitName like '%表名_%' 语句可以查询到到某一表的操作,但是其记录中大不部分是二进制存储的,象logrecord的信息完全 不懂,请问当对一个表进行Insert、Update、Delete等操作时,怎样在该语句中获得到对该表操作的T-SQL语句的真实内容呢?insert tablename (f1,f2) values ('11','22'),谢谢!