深入了解SQL Server审计工具

日期: 2013-08-29 作者:Robert Sheldon翻译:冯昀辉 来源:TechTarget中国 英文

微软公司在发布SQL Server 2008的时候引入了SQL Server审计(Audit),这是一款功能全面的数据库审计工具,弥补了SQL Server早期版本中的许多审计功能限制。那时候DBA们必须依赖于SQL Trace和其它工具。但是SQL Server审计现在已经变成了SQL Server本身自带的功能,并集成到SSMS中,提供了简单的界面可以实现细粒度的审计,这样你就可以针对目标特定对象、行为和规则进行审查。 SQL Server审计会对发生在数据库引擎中的事件跟踪并记录日志。

它可以记录服务器级别或者单个数据库级别的事件,尽管后者可能只在SQL Server企业版和开发版才有。S……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

微软公司在发布SQL Server 2008的时候引入了SQL Server审计(Audit),这是一款功能全面的数据库审计工具,弥补了SQL Server早期版本中的许多审计功能限制。那时候DBA们必须依赖于SQL Trace和其它工具。但是SQL Server审计现在已经变成了SQL Server本身自带的功能,并集成到SSMS中,提供了简单的界面可以实现细粒度的审计,这样你就可以针对目标特定对象、行为和规则进行审查。

SQL Server审计会对发生在数据库引擎中的事件跟踪并记录日志。它可以记录服务器级别或者单个数据库级别的事件,尽管后者可能只在SQL Server企业版和开发版才有。SQL Server审计功能提供了对于设置、授权、存储和视图事件数据必要的审计工具,不但可以完全管理整个SSMS,还可以管理T-SQL和SMO。与SQL Trace不同,SQL Server审计只关注为了保证确保全面审计的安全、性能和管理功能的审计,而SQL Trace更侧重性能监控。

SQL Server审计组件

图1:SQL Server审计功能包括审计对象和规范对象。

SQL Server审计完成的大部分工作都发生在幕后。然而,为了执行审计,你应该熟悉这些必须配置并启用的对象,这些都是审计事件必须的。在图1的下半部分展示了参与审计过程的SQL Server审计工具。要注意的是,这些组件中有一些是专门针对SQL Server审计的,而另外一部分是SQL Server或者Windows操作系统环境的组件。

SQL Server审计的核心是服务器审计,服务器级的对象可以作为整体配置设置审计,比如服务器应该如何响应审计失败的问题。这些设置中最重要的是定义目标,即存储事件数据的目标位置。这个问题上你有三种选择:Windows安全事件日志,Windows应用事件日志或者存储在指定位置的二进制文件。

SQL Server文档中将服务器审计称为SQL Server审计或者简单称之为审计,这也是在SSMS的对象浏览器中提及服务器审计的方式。而这个提法更令人困惑的是,SQL Server的文档也把已经配置的SQL Server审计对象集称为审计。例如,在上面的图中,包括在蓝色虚线边框中的那些组件都被认为是审计。在这里我们用这个提法代表了整个包。

配置完服务器审计,你可以添加服务器审核规范。规范要定义哪些服务器级别事件要包含到本审计中来。你可以对每个服务器审计只定义一条服务器审计规范,该规范必须指向服务器审计。此外,当你使用SQL Server审计工具配置规范时,你可以选择一个或者多个动作组,每个组都与一组事件集合有关联。例如,如果你想监视哪个负责人试图登录SQL Server实例而且登录失败了,那么你可以把“FAILED_LOGIN_GROUP”行为组添加到你的规范中。

除了服务器审计规范,你还可以添加一个或多个数据库审计规范。毫不奇怪,这是针对数据库的规范。你可以为每个服务器审计的每个数据库审计只创建一个数据库审计规范。例如,图1包含两项数据库审计规范,也就意味着两个数据库将被审计,每个数据库都关联了一个规范。

你可以选择一个或多个与数据库审计规范有关联的行为组,每个组都指向一组相关事件的集合。此外,数据库审计规范还支持你在具体数据库对象(比如表或者视图)或特定主题(比如SQL Server登录或数据库角色)上选择单个行为(比如更新或者删除)。例如,你可以监视系统管理员负责人什么时间运行了“DELETE”语句从“AdventureWorks2012”数据库的“Persons”表中删除过数据。

对于服务器和数据库审计规范,SQL Server还支持“AUDIT_CHANGE_GROUP”,它支持你审计与审计流程本身有关的事件。然而,要注意的是,SQL Server审计默认已经监视了审计有关的事件。

你可以注意到在上图1中还有SQL Server审计工具的另外一个组件,那就是SQL Server扩展事件(Extended Events)。这些是行为和行为组引发的实际事件。扩展事件针对SQL Server捕获的事件提供了内建的事件处理架构。这些事件出现在SQL Server项目的执行点。扩展事件使得为SQL Server审计和SQL跟踪这类工具捕获事件并应用成为了可能。

相关推荐

  • 管理Azure SQL数据库的授权安全性

    本文深入介绍了一些支持细粒度控制数据访问的Azure SQL数据库授权方法,它们最多可以深入到控制各个数据库对象和语句类型。

  • DBA必修课:特权用户管理

    特权用户管理是数据库审计和保护的九个关键功能之一。在三月份的一份报告中,Gartner称像DBA这样高度特权用户的访问是审计人员的主要关注点。

  • 审计SQL Server安全性的几种方式

    随着业界安全管理要求的加强,微软正针对SQL Server数据库建立更加安全并支持审计的功能。

  • 数据库安全审计手册

    数据库系统功能强大而丰富,对于一个数据库环境而言,我们可以生成很多类型的审计记录。知道有哪些审计类型以及如何实施这些审计有助于你满足合规需求。