SQL Server 审核事件日志
Posted
技术标签:
【中文标题】SQL Server 审核事件日志【英文标题】:SQL Server Audit Event Log 【发布时间】:2014-12-09 13:02:21 【问题描述】:根据我在此处找到的各种响应和 Microsoft 的文档,我正在努力使用 SQL Server 2012 上的应用程序日志进行审核。作为测试,我在 Management Studio 中执行了以下脚本并报告成功。但是,当我故意登录失败时,我的操作系统日志中看不到任何记录。
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:\SqlAudit\AuditDataAccess_*.sqlaudit',default,default);
GO
关于使用操作系统应用程序日志,我做错了什么?
编辑:如果没有,那我是不是找错地方了?我打开了 Windows 7 EventViewer 并查看了 Event Viewer (local)/Windows Logs 的每个子树。我还查看了事件查看器(本地)/应用程序和服务日志,但在空的“Microsoft-SQLServerDataTools”之外没有看到 SQL Server 条目。
【问题讨论】:
应该可以。作为简化,如果您指定 sqlaudit 文件的完整路径(而不是像现在这样的通配符)会发生什么? 通配符有效。我可能不清楚......文件工作。操作系统应用程序事件日志不会。 啊,我的错,我倒着读了。嗯,我刚刚对我的本地实例进行了测试。我在应用程序日志中收到 eventid = 33205 的事件。您什么也没得到?甚至没有一个用于审计开始? 检查sql server服务的用户是否有写入EventLog的权限 @Ben:不,我什么也没得到。我想我会在另一台机器上试试这个,看看它是否是特定于机器的。 【参考方案1】:它应该在事件查看器/Windows 日志/应用程序下,事件 ID 为 33205。
Understanding Audit Logging in SQL Server 2008
“任何经过身份验证的用户都可以读取和写入 Windows 应用程序事件日志。应用程序事件日志需要的权限低于 Windows 安全事件日志,并且安全性低于 Windows 安全事件日志。” - SQL Server Audit
【讨论】:
以上是关于SQL Server 审核事件日志的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server 2005 和 Windows 事件日志
Windows事件日志写入SQL Server并PowerBI统计分析