日期:2014-05-18  浏览次数:20597 次

能不能把一个账户运行的所有命令都记录下来
就是这个账户运行的所有的命令,都记录下来,应该怎么配置?
所有的命令不能记录的话,记录对数据造成影响的命令,也可以,
谢谢

------解决方案--------------------
事件探查器《SQL Server Profiler》,所有的操作记录都有。
------解决方案--------------------
一个是在sql端,建立跟踪
另外就是修改前台程序,发送tsql指令的时候做记录。

------解决方案--------------------
同意上面的做法,可以将结果存到数据库的表中,有时间,再分析
------解决方案--------------------
SQL Server 2005以上可以通过创建审计来查看用户的所有操作,包括时间,操作内容,字段信息等,举个例子,select审计
SQL code

USE master
CREATE SERVER AUDIT testAudit TO FILE(FILEPATH='D:\TempSelectAudit\')
GO


CREATE DATABASE AUDIT SPECIFICATION testAudSpec FOR SERVER AUDIT testAudit
ADD (SELECT ON HumanResources.Employee BY Public)
GO


USE master
SELECT is_state_enabled,* FROM sys.server_file_audits
USE AdventureWorks
SELECT is_state_enabled,* FROM sys.database_audit_specifications
GO


USE master
ALTER SERVER AUDIT testAudit WITH (STATE=ON)
GO
USE AdventureWorks
ALTER DATABASE AUDIT SPECIFICATION testAudSpec WITH (STATE=ON)
GO


SELECT session_server_principal_name, statement, *
FROM fn_get_audit_file ('D:\TempSelectAudit\*',NULL, NULL)