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)

相关文章