SQL Server 审计
审计(Audit)用于追踪和记录SQL Server实例或数据库中发生的事件,审计主要包括审计对象(Audit)和审计规范(Audit Specification),创建审计首先需要创建一个SQL Server 实例级的审计对象,然后,创建从属于它的“服务器审计规范”或“数据库审计规范”。审计数据可以输出到审计文件(File)、安全日志(Security Log)和应用程序日志(Application Log)。
启用审计的目的一般是为了监控SQL Server执行的操作,例如,记录什么人在什么时候查询数据、修改数据,登陆SQL Server实例等,由于审计记录的数据有可能很丰富,因此,启用审计可能产生大量的日志数据,占用磁盘的大量空间。审计使用一句话来概括就是:记录谁在什么时候做了什么事,审计对象(Audit)定义:配置数据存在何处,而审计规范(Audit Specification)定义:记录什么事,一旦特定的事件触发,SQL Server引擎就使用审计记录事件发生的现场信息。
创建和使用审计的一般步骤是:
step1:创建服务器级别的审计对象,并启用审计对象;
step2:创建审计规范,并映射到审计对象审核,启用审计规范,审计对象开始追踪和记录数据;
step3:查看审计数据,可以通过使用SSMS的”Log Files Viewer“或函数sys.fn_get_audit_file 查看记录的日志数据。
一,创建审计对象
首先创建服务器级别的审计对象,展开"Security",右击Audits,通过“New Audit”,打开“Create Audit”窗体开始创建审计对象,审计输出的数据保存到“Audit destination”中,本文选择File,把数据存储到审计文件中,其他类型是:Security Log和Application Log。Queue delay是指数据写入到审计文件的延迟,默认是1s。审计对象的作用是指定审计数据保存的路径,以及写入数据的延迟和数据文件的大小,审计对象主要是存储审计规范的数据。
根据硬盘空间的限制,设置审计对象的属性 Audit File maximum Limit、Maximum File size、以及Reserve disk space,控制审计文件的大小,管理硬盘空间的使用,避免硬盘爆掉。
创建的审计对象默认是禁用(Disable)的,在使用审计对象之前,必须启用,选中新建的审计对象,右击,选中“Enable Audit”。
二,创建服务器级别的审计规范
展开Security,选中“Server Audit Specifications”,右击弹出快捷菜单,选择“New Server Audit Specifications”,打开“Create Server Audit Specifications”的窗体,通过UI创建审计规范:
审计规范指定审计对象记录的事件类型,在审计规范中指定的事件类型,SQL Server 一旦检测到事件发生,就会把跟该事件相关的信息写入到审计对象指定的文件中,保存起来,以便于后续的检查(review)。
1,添加审计操作组
创建审计规范,选择审计对象,从Audit Action Type列表中选择审计操作组,创建的审计规范默认是禁用的,选中新建的审计规范,右击弹出快捷菜单,选中”Enable Server Audit Specifications “启用:
从审核操作类型列表中选择审计操作组,审计操作组是审计记录的事件操作类型,常用的审计操作组是:
DATABASE_OBJECT_ACCESS_GROUP:访问数据库对象时将引发此事件;
DATABASE_OBJECT_CHANGE_GROUP:针对数据库对象(如架构)执行 CREATE、ALTER 或 DROP 语句时将引发此事件。 创建、更改或删除任何数据库对象时均将引发此事件。
DATABASE_OPERATION_GROUP:数据库中发生操作(如检查点或订阅查询通知)时将引发此事件。 对于任何数据库的任何操作都将引发此事件。
FAILED_DATABASE_AUTHENTICATION_GROUP:指示某个主体尝试登录到数据库并且失败。
FAILED_LOGIN_GROUP:指示主体尝试登录到 SQL Server ,但是失败。
SUCCESSFUL_LOGIN_GROUP:指示主体已成功登录到 SQL Server。
2,查看审计数据
点击审计对象,右击弹出快捷菜单,点击”View Audit Logs“查看审计对象记录的数据:
或者通过TSQL 函数查看审计数据,
sys.fn_get_audit_file ( file_pattern, { default | initial_file_name | NULL }, { default | audit_record_offset | NULL } )
审计文件名由四部分组成:AuditName_GUID_n_m.sqlaudit,第一个参数是file_pattern,包括路径和文件名,对于文件名,可以通过特殊的匹配符指定:
*:表示所有的字符;
{}:指定GUID;
如果文件名以扩展名( .sqlaudit)结尾,表示查看特定的文件;
例如,查看所有的审计文件的数据:
select *from sys.fn_get_audit_file('E:\AuditFiles\*',default,default)
三,创建数据库级别的审计规范
在数据库的Security中右击“Database Audit Specifications”,数据库级别的审计操作组,大部分和服务器级别的审计操作组很相似,除了数据库级别的审计动作(Database-Level Audit Actions),在数据库对象上发生以下操作(Action)时,记录事件的信息:
SELECT
UPDATE
INSERT
DELETE
EXECUTE
REFERENCES
数据库级别的审计操作追踪和记录的是数据库对象(schema,objects)上发生的事件,因此必须配置Object Class、Object Schema,Object Name 和 Principal Name字段:
查看审计数据,选中Server级别的审计对象,通过”View Audit Logs“查看记录的日志数据。
四,维护审计
创建审计很简单,DBA需要更多关注的是审计数据的维护
略,后续补充
参考文档:
SQLSERVER2008新增的审核/审计功能
SQL Server Audit (Database Engine)
SQL Server Audit Action Groups and Actions
sys.fn_get_audit_file (Transact-SQL)
原文地址:http://www.cnblogs.com/ljhdo/p/5721668.html
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
SQL Server 审计相关推荐
- SQL Server审计功能入门:CDC(Change Data Capture)
原文:SQL Server审计功能入门:CDC(Change Data Capture) 介绍 SQL Server 2008引入了CDC(Change Data Capture),它能记录: 1. ...
- SQL Server 审计功能-记录所有的操作记录
说到审计这个话题,相信作为一个企业管理员都知道,比如一般作为一个AD管理员的话,一般都会通过Policy开启审计功能,记录一些自定义的事务日志.对于SQL Server来说,审计也是一样的,SQL S ...
- SQL Server审核最佳做法
In this article on SQL Server Auditing Best practices, we will show the best practices that should b ...
- apexsql使用方法_使用ApexSQL审核执行SQL Server审核
apexsql使用方法 This is the last article, but not least, in the SQL Server Audit series. In this series ...
- sql server 面试_SQL Server审核面试问题
sql server 面试 In this article, we will discuss a number of common and important SQL Server Audit que ...
- SQL Server安全(2/11):身份验证(Authentication)
在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Se ...
- mssql 数据库审计账户_SQLServer数据库审计功能入门之SQL Server审核 (SQL Server Audit)...
本文主要向大家介绍了SQLServer数据库审计功能入门之SQL Server审核,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助. 介绍 Audit是SQL Server ...
- SQL Server上的审计表和数据版本控制
目录 介绍 背景--审计表 背景--数据版本控制 让我们一石二鸟,并使用审计表也用于版本化数据 使事情变得清晰的视图示例 审计表 审计触发器 上下文信息 从C# EF6传递上下文 最终评论和一些高级技 ...
- SQL Server Profiler工具
SQL Server Profiler工具 原文:SQL Server Profiler工具 一.SQL Profiler工具简介 SQL Profiler是一个图形界面和一组系统存储过程,其作用如下 ...
最新文章
- 【HDOJ】3275 Light
- 我看过的C#方面的好文章
- 适配器模式理解和使用
- [PaaS] 深入 Cloud Foundry(一)构架 (转载)
- 序列化的 serialVersionUID 到底有什么用?
- OpenCV学习之Scalar数据类型
- manjaro软件源报错 不停看到错误 “PackageName: signature from “User <email@archlinux.org>“ is invalid“ 的几种解决方法
- 使用IB时设置textView属性崩溃
- appium相关记录
- spring 中beanFactory和ApplicationContext的区别
- 深度装机大师一键重装_Deep深度装机大师官方下载|深度装机大师(一键重装系统) V2.0.0.5官方版...
- 商城购物系统软件测试,网上商城购物系统黑盒测试
- 交通信号灯控制器C语言代码,交通信号灯控制器代码及说明.doc
- 苹果开发者账号绑定设备已满
- css 文本、文字展开与收缩,查看更多收起
- iPhone手机查找朋友怎么用?添加对方号码,瞬间变成追踪器
- 基于STM32的OLED显示
- php公众号模板消息群发,微信公众平台|模板消息群发功能
- Java:利用工厂模式设计加减乘除功能的计算器
- 计算机电子电路基础教程视频,电子电路基础详细视频教学(100集)