技术开发 频道

SQL Server 2012审计 增强安全合规性

        【IT168 技术】提起数据库审计,长期关注SQL Server的朋友肯定不会陌生,早期SQL Server 2005只能是通过触发器或SQL 跟踪来实现审核,没有专门的管理工具来管理审核。到了SQL Server 2008的时候就已经提供了SQL Audit架构,并且通过了支付卡行业数据安全标准以及HIPAA(Health Insurance Portability and Accountability Act)的合规性审核。利用它就可以对数据库或者是数据库实像中的事件进行审核。SQL Server 2012的审计功能相对于上一个版本来说更加细致,例如审核弹性、自定义审计事件、记录过滤等方面。

  利用SQL Server 2012所提供的全面的数据审核功能,可以帮助企业不论是在服务器级别还是在数据库级别都可以监控所有的事件,并且将审核功能在企业范围内扩展,这对于管理严格的一些领域来说尤为重要。今天我们就跟大家简单聊聊SQL Server 2012审计那些事。

  SQL Server 2012的 Audit 功能,可以对服务器级别和数据库级别的事件组或者是单个事件进行审核。SQL Server 审核可以是一组操作,例如 Server_Object_Change_Group,也可以是单个操作,例如对表的 SELECT 操作。Server_Object_Change_Group 包括对任何服务器对象的 CREATE、ALTER 和 DROP 操作。也就是说,通过 SQL Server 审核,用户可以创建针对服务器的审核规范和针对数据库级别事件的数据库审核规范。

  经过审核的事件以及结果将发送到目标,目标可以是文件、Windows 安全事件日志或 Windows 应用程序事件日志。必须定期查看和归档这些日志,以确保目标具有足够的空间来写入更多记录。这些记录项包括:触发可审核操作的日期时间、操作会话ID、相关权限、发生审核的实体对象、当前登录名及用户名等信息。但是需要注意的是任何经过身份验证的用户都可以读取和写入Windows 应用程序事件日志。因此,在将审核信息保存到某一文件时,为了避免信息被篡改,用户可以考虑限制对文件位置的访问,并对SQL Server帐户设置适当的权限,例如审核管理员将目标进行存档时,新目标路径的权限一般定义为审核管理员具有读写权限,一般的审核读取者具有读权限。

  为了便于用户操作,SQL Server 2012同样提供使用 SQL Server Management Studio 或 Transact-SQL 两种方式定义审核。总的过程是:创建审核并且定义目标文件、创建服务器审核规范和数据库审核规范、将创建好的审核规范映射到审核、启用审核。经过以上简单几步,在创建并启用审核功能后,目标文件将接收各项的输出。

  SQL Server审核操作

  下面我们通过示例来演示一下在SQL Server2012中使用强大的审核功能。

  使用SQL Server Management Studio创建审核

  数据库管理员使用 SQL Server Management Studio 中的对象资源管理器可以执行诸如启动或停止数据收集以及查看数据收集日志等多种与审核相关的任务。必须先创建和配置可以用于审核的 SQL Server 审核对象,才可以创建服务器审核规范。

  例如我们在此创建一个名ServerAudit01的审核规范,此审核规范目的是将审核的结果输出到Windows应用程序事件日志。操作方法是,在对象资源管理器中,打开“安全性”节点下的“审核”,右键即可新建审核,如下图所示:

SQL Server 2012审计  增强安全合规性

SQL Server 2012审计  增强安全合规性

  接下来我们需要创建服务器审核规范并映射到刚才创建的ServerAudit01审核上,创建服务器审核规范的方法是:在对象资源管理器中,右键单击“服务器审核规范”,然后单击“新建服务器审核规范”。这将打开“创建服务器审核规范”页。

SQL Server 2012审计  增强安全合规性

SQL Server 2012审计  增强安全合规性

  在名称中我就直接使用默认设置,用户可以根据需要进行更改,审核项中选择刚才新建的审核名:ServerAudit01。“审核操作类型”选项,根据需要选择相应的操作组,在此选取 FAILED_LOGIN_GROUP。针对FAILED_LOGIN_GROUP的官方解释是:指示主体尝试登录到 SQL Server,但是失败。此类中的事件由新连接引发或由连接池中重用的连接引发。说简单点就是记录尝试登录到 Microsoft SQL Server的失败信息。

  审核创建完成后,默认为禁用状态,接下来就分别启用服务器审核规范和审核,如下图所示:

SQL Server 2012审计  增强安全合规性

  测试

  下面来测试刚才创建的审核能否生效,我们使用SA用户,故意使其登录失败。如下图所示:

SQL Server 2012审计  增强安全合规性 

  查看审核日志

  用户可以使用 Windows 中的“事件查看器”实用工具来读取 Windows 事件。对于文件目标,可以使用 SQL Server Management Studio 中的“日志文件查看器”或使用 fn_get_audit_file 函数来读取目标文件。在此,我就直接在审核上点击右键,查看审核日志。如下图所示:

SQL Server 2012审计  增强安全合规性

  然后就会显示出具体的具体内容,如下图所示:

SQL Server 2012审计  增强安全合规性

  通过以上示例操作,大家发现针对服务器级别的审核还是相当简单的。下面咱们再通过一个示例看一下,如何针对select查询做一个审核。来记录针对Dufei数据库中YG表的Select操作。

  首先还是创建审核,操作方法同上面相同,审核名为:SelectAudit。再针对Dufei数据库创建数据库审核规范,操作方法是:在指定数据库上找到“安全性”选项卡,在其中的“数据库审核规范”上,点击右键,弹出“新建数据库审核规范”,如下图所示:

SQL Server 2012审计  增强安全合规性

  在名称中我就直接使用默认设置,用户可以根据需要进行更改,审核项中选择刚才新建的审核名:SelectAudit。“审核操作类型”选项,根据需要选择相应的操作,在此选取 Select操作。审核创建完成后,默认为禁用状态,接下来就分别启用数据库审核规范和审核。启用方法同创建服务器审核规范时相同。

  下面我们就通过Select查询yg表中的数据,测试数据库审核是否创建成功,我们打开查询分析器,通过: select * from yg语句查看yg表中的所有语句。

SQL Server 2012审计  增强安全合规性

  最后,我们需要去查看此次的Select查询有没有被审核记录下来,我们进行如下的操作,在selectaudit审核上点击右键,查看审核日志,如下图所示:

SQL Server 2012审计  增强安全合规性

  此时,应该能看到如下图所示的界面:

SQL Server 2012审计  增强安全合规性

  在此图示中,可以非常清楚的看到针对dufei数据库中的yg表执行了select查询。当然企业用户完全可以根据需要对于服务器或者是数据库的更多操作进行审核记录。从SQL Server2012开始审核功能从企业版扩展到所有版本,从而实现数据库审核的标准化并提供更好的性能和更丰富的功能。

0
相关文章