MSSQL审计:实施有效监控

1. MSSQL审计简介

MSSQL是一款常见的关系型数据库管理系统,它支持多种数据库操作,而审计就是其中之一。MSSQL审计可以用来监控数据库系统的用户活动、数据访问频率和故障诊断等方面。详细了解和实施MSSQL审计可以对关键数据的保护和安全性提供重要支持,保护数据库免受非法访问或攻击。

2. MSSQL审计功能

2.1 审计策略

审计策略可以根据时间、用户或对象等多重条件来分配审计的任务,其中包括SQL Server,数据库和对象级别的策略设置。

MSSQL审计可以以几种不同方式运行,每种方式可以监视一个特定方面的活动,例如登录失败、数据库变更或查询执行等。基本的审计策略包括:服务器级别审核、数据库级别审核和对象级别审核。可以为每个策略设置一组目标筛选条件,这些条件可以选择性审核用户执行的任何操作。

例如,可以使用服务器级别审计通过创建审核日志,记录整个SQL Server中执行的所有DDL操作。这样,可以基于时间范围、数据、会话ID、请求ID、程序路径、ip地址等基本属性来筛选操作关闭、删除或更改的时间,以及相关的操作和用户。为了保护机密数据,可以在生成的审核日志中自动排除PAN数据、SSN和生日等敏感数据信息。

2.2 审计数据的查询和报告

MSSQL审计数据可以导出和报告,以支持内部合规要求。管理员可以使用各种审计查询和报告功能来生成标准和自定义报告,以及执行需要的客户端报告操作。这些报告可以为合规性提供根据多种应用程序需求生成的每日、每周或每月审计关键操作的摘要信息。

监视系统对象变更、用户活动和管理员权限变更等活动可以帮助管理员追踪和审查要求。例如,可以生成下列详细报告介绍基本的MSSQL审计用户和对象活动:

1. 用户活动报告:1) 登录成功和失败的摘要。2)高危用户的摘要报告,为按照不同的模式访问数据库的用户分类。3) 最近三个月内用户登录次数排名的报告。

2. 对象活动报告:1)每日DDL和DML活动的列表,包括对表、视图、存储过程、触发器和其他与数据库相关的元素的操作。2)数据库内每个对象活动概览的报告。例如,可以查看每个表的创建和更改日期,以及哪个用户最后执行了这些操作。

3. MSSQL审计的实施

3.1 审计准备

在实施MSSQL审计之前,需要进行审计策略设计。需要厘清的问题包括:审计范围、审计级别、数据保护和日志限制等。确定审计策略后,还需要在SQL Server上创建相应的审计对象。

3.2 审计的创建

创建审计对象是在SQL Server上执行MSSQL审计的第一步。为了创建审计对象,您需要在MSSQL Server Management Studio或SQL命令行实用程序中输入适当的命令。您需要输入以下信息以创建审计对象:

CREATE SERVER AUDIT [audit_name]

TO FILE([file_name])

WITH

(

QUEUE_DELAY = {interval},

ON_FAILURE = {fail_option},

[AUDIT_GUID = {uniqueidentifier}],

[RESERVE_DISK_SPACE = {integer MB}],

[MAXSIZE = {integer MB | UNLIMITED}]

)

-- 示例

CREATE SERVER AUDIT [ServerAudit]

TO FILE('C:\Audit\AuditData')

WITH (MAXSIZE = 1 GB,

MAX_FILES = 5,

RESERVE_DISK_SPACE = OFF,

ON_FAILURE = CONTINUE);

上面的代码创建了一个名为ServerAudit对象的审计,将它记录到文件C:\Audit\AuditData中,并设置了保留磁盘空间、不限制大小和失败时继续的选项。

此外,还可以使用SQL代码创建数据库级别或对象级别审计。创建数据库级别审计,您需要输入以下信息:

USE [target_database]

CREATE DATABASE AUDIT SPECIFICATION [audit_spec_name]

FOR SERVER AUDIT_audit_name

ADD (SELECT, UPDATE, DELETE, INSERT)

WITH (STATE = ON)

上面的代码创建了一个名为audit_spec_name的新审计规范,用于对目标数据库中执行的所有的SELECT、INSERT、UPDATE和DELETE语句进行审计。

3.3 审计日志的监视

日志监视是审计实施的最后一步,它允许管理员查看日志文件中的内容,并检查有关安全事件或认证问题的详细信息。您可以使用Windows Event Viewer或MSSQL Audit功能来查看生成的审计日志。

按照以下步骤查看Audit数据:

--找到已创建的Audit文件的位置,然后再找出相关日志记录。

1. 在SQL Server Management Studio (SSMS) 接口上右键单击Security, 选择“Reports”-->“Standard Reports”-->”Audit Logon Events和Audit Login Failed Events”,即可看到登录日志的详细信息。

2. 通过SQL命令查看Audit信息。

SELECT * FROM sys.fn_get_audit_file('\Audit\AuditData*',default,default);

以上命令显示与创建文件的相同路径的日志文件中的所有审计数据。也可以在文件mask中用模糊匹配符号*匹配文件的名称或位置。因此,在文件路径C:\Audit\下执行以下命令:

SELECT * FROM sys.fn_get_audit_file('*.sqlaudit',default,default);

这将显示名为ServerAudit的审计对象创建的SQL Server审核日志条目。

4. 结论

MSSQL审计提供了一种完整的解决方案,用于监视SQL Server操作中的行为和事件,能够提高关键数据保护和安全性。MSSQL审计的实施和设置需要管理员按照规定要求进行策略设计、创建审计对象、实施审计,并监视生成的日志。只有这样才能保证安全审计的全面性和准确性。因此,充分理解和实践MSSQL审计是非常重要的,可以为企业提供更好的数据保护和安全性保障。

数据库标签