l 在右边“Log file summary”区域内,在“Action> l 在“Class Type”显示所记录的各类对象“TABLE”、“VIEW”、“STORED PROCEDURE”等数据库对象。
l 在下面的“Statement”区域,可以看到所记录的程序代码。
l 取得发生事件的日期与时间,可能是利用的SQL Server 2008之后新提供的日期时间函数SYSUTCDATETIME()。回传的数据类型是datetime2,内容值包含执行SQL Server实例的服务器的日期和事件。而这个日期与时间是以国际标准时间(Coordinated Universal Time:UTC)时间格式回传,此函数将取回服务器上的格林威治时间(Greenwich Mean Time:GMT),也就是落后北京时间标准8小时。 备注:datetime2是SQL Server 2008之后新增的数据类型,包含了日期数据,并结合以24小时制为基础的时间。Datetime2可视为既有的datetime数据类型的扩展,它具有较大的日期范围、较精确的小数有效位数和选择性的用户指定有效位数。日期范围可以从公元1年1月1日到公元9999年12月31日,时间范围可以到00:00:00到23:59:59.9999999,精确度为100ns(1ns=10的负九次方秒)。
采用格林威治时间(GMT)来记录日期时间数据,对于DBA而言,若拥有位于不同时区的数据库服务器时,这是一个将日志的时间标准化的作法。但对于非格林威治时间(GMT)时区的用户而言,例如:北京时区是(GMT+08:00),可能是个困扰。在接下来的实践中,将使用T-SQL函数fn_get_audit_file来分析与查看审核日志的数据,就可以将格林威治时间(GMT)转为适合的时区的信息。 任务5:改用“Windows应用程序事件日志文件”来记录审核信息。 步骤1:在“Security”,“Audits”节点上的“Audit-AdventureWorks2012-Create/Alter/Drop”对象上,右键禁用审核。
采用“Windows应用程序事件日志文件”方式来存放审核日志,具备以下特性。
l 审核内部所记录的日期时间部分,仍以格林威治时间(GMT)来记录。
l 在应用程序事件日志文件所记录的日志时间,已经转为数据库服务器所在时区的日期时间。
l 审核所记录到数据全部存放在消息区域内,其“statement”部分,有记录所执行的T-SQL程序代码。但这在阅读与后续分析上,势必会增加困扰。若与存放到二进制文件的审核目标比较起来,二进制文件存放的审核日志已经分类在各数据行中,如此一来,不但增加可读性,也容易进行筛选与分析。
若使用Windows的事件查看器来阅读所记录到的审核数据,可以在“Application”页查看所记录的信息。