SQL Server 2008引入了新的审计功能,这对数据库管理员来说是非常有价值的,该功能可以通过跟踪数据库的使用情况从而生成详尽的审计记录。审计可以在服务器和数据库级别上或者针对个别数据库对象实现,并以不同的格式保存记录,如二进制文件或Windows应用程序日志。 在SQL Server 2008中配置审计功能,请按照下列步骤: 1、在SQL Server 2008的指定实例中创建一个SQL Server的审计。 2、创建一个服务器审计规范、一个数据库审计规范或者两个都创建。
3、启用SQL Server的审计功能。 4、查看审计记录。 在本文中,我将复习每一个步骤……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
SQL Server 2008引入了新的审计功能,这对数据库管理员来说是非常有价值的,该功能可以通过跟踪数据库的使用情况从而生成详尽的审计记录。审计可以在服务器和数据库级别上或者针对个别数据库对象实现,并以不同的格式保存记录,如二进制文件或Windows应用程序日志。
在SQL Server 2008中配置审计功能,请按照下列步骤:
1、在SQL Server 2008的指定实例中创建一个SQL Server的审计。
2、创建一个服务器审计规范、一个数据库审计规范或者两个都创建。
3、启用SQL Server的审计功能。
4、查看审计记录。
在本文中,我将复习每一个步骤并举例说明它们是如何工作。请注意:在大多数情况下,这些例子使用的是Transact-SQL语言。但是,这些例子也可以通过SQL Server Management Studio来执行使用。有关如何使用SQL Server Management Studio的详细信息,请参阅Microsoft SQL Server联机丛书。
1.创建SQL Server审计
第一步是建立一个SQL Server的审计,也就是对一个SQL Server 2008实例配置审计功能。一个审计就是指配置为一个特定的与数据库引擎相关的事件日志集合的安全对象。你可以为一个SQL Server 2008实例创建多个审计。
当创建一个审计的时候,你必须指定审计的名称和事件输出的目标位置。目标位置可以是二进制文件、Windows安全日志或Windows应用程序日志。你还可以为审计对象指定一个或多个可选参数。
使用CREATE SERVER AUDIT语句创建一个审计,如下所示:
USE master GO CREATE SERVER AUDIT SrvAudit TO FILE (FILEPATH='C:Data', MAXSIZE=5 MB) WITH (QUEUE_DELAY = 3000) |
请注意,你必须在master数据库中创建审计。这是因为审计和SQL Server实例相关联的并且作为一个整体,所以你不能在一个用户数据库中创建审计。
CREATE SERVER AUDIT语句的第一行只是简单地提供了一个审计名称(本例是SrvAudit)。下一行是一个TO子句,用于指定事件输出的目标位置。在本例中,我把输出指定到一个文件,所以必须要指定TO FILE子句,然后提供FILEPATH(文件路径)值。请注意,这仅仅是一个路径名称。SQL Server会自动的以下面的名称格式命名输出文件:
在上面的例子中,TO FILE子句还包括了MAXSIZE参数,该参数限制了输出文件的大小为5 MB。这一参数是TO FILE子句的几个可选参数之一。如果你需要输出审计数据到应用程序日志或安全日志,那么你只需要指定日志选项参数,如下所示:
CREATE SERVER AUDIT SrvAudit2 TO APPLICATION_LOG WITH (QUEUE_DELAY = 3000) |
正如你所看到的,TO FILE子句被TO APPLICATION_LOG子句所替代,且不需要提供额外的参数。
CREATE SERVER AUDIT语句的最后一行是一个WITH子句。该子句支持几种参数选项用来控制审计是如何创建的。在本例中,我使用QUEUE_DELAY参数并将其值设置为3000。该参数指定一个单位为毫秒的值,用于控制在审计动作被强制执行之前可以等待的时间。默认情况下,该参数值为1000毫秒(1秒)。
2.创建服务器审计规范
在创建完SQL Server的审计之后,你必须创建一个服务器审计规范或是一个数据库审计规范,或者是两个都创建。服务器审计规范是与一个特定的SQL Server审计相关的一个或多个服务器级别的审计活动组的集合。一个活动组是与数据库引擎所暴露出来的相关事件的一个集合。例如: SERVER_OPERATION_GROUP活动组当安全审计操作发生时才会被触发,比如当用户修改服务器设置时。
你可以为每个审计只创建一个服务器审计规范。但是,你能为这个审计规范添加多个活动组。要创建一个服务器审计规范,需要从master数据库运行CREATE SERVER AUDIT SPECIFICATION语句,如下所示:
USE master GO CREATE SERVER AUDIT SPECIFICATION SrvAuditSpec FOR SERVER AUDIT SrvAudit ADD (SUCCESSFUL_LOGIN_GROUP), ADD (FAILED_LOGIN_GROUP) WITH (STATE=ON) |
CREATE SERVER AUDIT SPECIFICATION语句的第一行指定了一个规范名称(SrvAuditSpec)。第二行,FOR SERVER AUDIT子句,指定了与规范相关联的审计名称(SrvAudit)。第三和第四行是ADD子句,表明将该规范加入到那个审计活动组。本例中,我将规范加入到SUCCESSFUL_LOGIN_GROUP和FAILED_LOGIN_GROUP活动组,用于跟踪尝试登录到SQL Server实例的安全实体。
CREATE SERVER AUDIT SPECIFICATION语句的最后一行是WITH子句。WITH子句的STATE参数指明当规范创建时就启用它。默认情况下,该规范是被禁用的(STATE=OFF)。如果你创建时不启用规范,就必须在活动组开始审计时启用它。
翻译
相关推荐
-
不安全的Firebase数据库使关键数据面临风险
当开发人员无法对支持其移动应用程序的数据库或云实例执行身份验证时,这里会发生一种最简单且最具破坏性的安全事件。 […]
-
详解Azure SQL数据库行级安全
本文中,专家举例说明如何实现行级安全性——微软Azure SQL数据库新近推出的预览特性。
-
在Azure SQL数据库中引入行级安全性
行级安全性是Azure SQL数据库的一个新特性,它帮助微软数据库平台达到与Oracle和DB2的同等水平。
-
网络最常见的攻击方式竟然是SQL注入
NTT研究表明,尽管SQL注入(SQLi)型攻击记录详尽且为人熟知,但目前网络应用程序仍然是SQLi攻击的重灾区。