根据我在这里找到的各种响应和Microsoft的文档,我正在努力使用SQL Server 2012上的应用程序日志来进行审计。作为测试,我在ManagementStudio中执行了以下脚本,并报告成功。然而,当我故意登录失败时,我不会在操作系统日志中看到任何记录。
USE master
GO
CREATE SERVER AUDIT AuditDataAccess TO APPLICATION_LOG
GO
CREATE SERVER AUDIT SPECIFICATION HIPPA_Audit_Specification
FOR SERVER AUDIT AuditDataAccess
ADD (FAILED_LOGIN_GROUP)
WITH (STATE = ON)
GO
ALTER SERVER AUDIT AuditDataAccess WITH (STATE = ON)
GO
澄清:如果我把输出放在一个文件中而不是操作系统日志中,它就会起作用。如果我创建这样的对象:
CREATE SERVER AUDIT AuditDataAccess TO FILE ( FILEPATH ='C:SqlAudit' )
GO
它起作用,我可以使用检索数据
SELECT * FROM sys.fn_get_audit_file ('c:SqlAuditAuditDataAccess_*.sqlaudit',default,default);
GO
在使用操作系统应用程序日志方面,我做错了什么?
编辑:如果没有,那么我只是看错地方了吗?我打开Windows 7事件查看器,查看事件查看器(本地)/Windows日志的每个子树。我还查看了事件查看器(本地)/应用程序和服务日志,但除了空的"Microsoft SQLServerDataTools"之外,没有看到SQL Server的条目。
它应该在事件查看器/Windows日志/Application下,事件ID为33205。
了解SQL Server 2008 中的审核日志记录
"任何经过身份验证的用户都可以读取和写入Windows应用程序事件日志。应用程序事件记录要求的权限低于Windows安全事件记录,并且安全性低于Windows安全性事件记录。"-SQL Server Audit