SQL Server 审核(Audit)-- 创建数据库级别的审核

简介:

任务1:创建审核


步骤1打开SSMS,登录到指定的实例,展开“Security”,“Audits”节点。

 

步骤2在“Audits”节点上,右键选择“New Audit…”选项。

 

步骤3在“Create Audit”窗口,输入以下的参数。

? 在“Audit name”输入Audit-AdventureWorks2012-Create/Alter/Drop。

? 在“Audit destination”选择“File”

? 在“File path”输入D:\MSSQL\DATA\Audit_logs。

 

步骤4单击“OK”完成设置。

 

clip_image001

 

步骤5右键点击刚刚创建的审核“Audit-AdventureWorks2012-Create/Alter/Drop”,选择“Enable Audit”选项。

 

clip_image002

 

 

任务2:创建数据库级别的审核规范 – 监控数据库对象的创建、删除与修改。


步骤1在“Object Explorer”窗口,展开“Databases”,“AdventureWorks2012”,“Security”,“Database Audit Specifications”节点。

 

clip_image003

 

步骤2在“Database Audit Specifications”节点,单击右键选择“Create Database Audit Specification”选项。

 

步骤3在“Create Database Audit Specification”窗口,输入以下参数。

l 在“Name”输入DatabaseAuditSpecification-Object-Create/Alter/Drop。

l 在“Audit”选择之前创建的审核对象“Audit-AdventureWorks2012-Create/Alter/Drop”。

l 在“Actions”区域中“Audit Action Type”下的第一行,选择“SCHEMA_OBJECT_CHANGE_GROUP”。

 

clip_image004

 

“SCHEMA_OBJECT_CHANGE_GROUP”是属于数据库级别的审核操作组,在架构上执行CREATE、ALTER和DROP操作时,就会引发这个事件。

 

步骤4单击“OK”按钮,完成设置。

 

步骤5右键单击刚才创建的数据库审核规范“DatabaseAuditSpecification-Object-Create/Alter/Drop”,选择“Enable Database Audit Specification”选项。

 

clip_image005

 

 

任务3:测试审核功能 – 创建、修改与删除数据库对象。


步骤1打开SSMS,单击“New Query”执行以下代码,在数据库AdventureWorks2012创建、修改与删除数据库的对象。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
USE AdventureWorks2012
GO
--Create Database Object
CREATE  TABLE  T1(Col1  int  not  null  primary  key )
GO
CREATE  VIEW  V1  AS  SELECT  FROM  T1
GO
CREATE  SYNONYM SYN1  FOR  T1
GO
CREATE  FUNCTION  FUN1(@InParm  int RETURNS  int  AS  BEGIN  RETURN  @InParm  END
GO
CREATE  PROCEDURE  PROC1(@InParm  int AS  BEGIN  SET  @InParm = 0  END
GO
CREATE  TRIGGER  TRIG1  ON  T1  AFTER  INSERT  AS  RAISERROR( 'This is a dummy table' ,16,10)
GO
--Alter Database Object
ALTER  TABLE  T1  ADD  Col2  varchar (32)
GO
ALTER  PROC PROC1  AS  SELECT  1
GO
--Drop Database Object
DROP  TRIGGER  TRIG1
GO
DROP  PROCEDURE  PROC1
GO
DROP  FUNCTION  FUN1
GO
DROP  SYNONYM SYN1
GO
DROP  VIEW  V1
GO
DROP  TABLE  T1
GO

 

 

任务4:使用日志文件查看器阅读审核日志。


步骤1展开“Security”,“Audits”节点。

 

步骤2在刚才创建的“Audit-AdventureWorks2012-Create/Alter/Drop”对象上,右键选择“View Audit Logs”。

 

步骤3在“Log File Viewer”窗口左上角的“Select logs”区域中,确认有勾选“Audit Collection”,“Audit-AdventureWorks2012-Create/Alter/Drop”。并用以下方式来阅读所记录的审核数据。

 

clip_image006

 

 

l 在右边“Log file summary”区域内,在“Action ID”区域中,分别点击“CREATE”、“ALTER”、“DROP”等操作类型。

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”对象上,右键禁用审核。

 

clip_image007

 

若要调整“Audits”对象的属性,必须要先禁用此“Audits”之后才能进行调整,否则将产生错误信息,无法调整属性。

 

步骤2单击被禁用的审核对象,单击鼠标右键选择“Properties”选项。

 

步骤3在“Audit Properties”窗口中的“Audit destination”框,下拉选择“Application Log”。

 

clip_image008

 

步骤4单击“OK”按钮,完成属性的调整。

 

步骤5单击被禁用的审核对象,右键再启用审核。

 

步骤6再次执行之前在数据库AdventureWorks2012创建、修改与删除数据库对象的T-SQL代码。

 

 

任务6:查看存放在“Windows应用程序事件日志文件”内的审核信息。


步骤1展开“Security”,“Audits”节点。

 

步骤2在刚才创建的“Audit-AdventureWorks2012-Create/Alter/Drop”对象上,右键选择“View Audit Logs”。

 

步骤3在“Log File Viewer”窗口左上角的“Select logs”区域中,确认有勾选“Windows NT”,“Application”。

 

步骤4在右边的“Log file summary”区域,即可查看所记录到数据。

 

clip_image009

 

采用“Windows应用程序事件日志文件”方式来存放审核日志,具备以下特性。

l 审核内部所记录的日期时间部分,仍以格林威治时间(GMT)来记录。

l 在应用程序事件日志文件所记录的日志时间,已经转为数据库服务器所在时区的日期时间。

l 审核所记录到数据全部存放在消息区域内,其“statement”部分,有记录所执行的T-SQL程序代码。但这在阅读与后续分析上,势必会增加困扰。若与存放到二进制文件的审核目标比较起来,二进制文件存放的审核日志已经分类在各数据行中,如此一来,不但增加可读性,也容易进行筛选与分析。

 

若使用Windows的事件查看器来阅读所记录到的审核数据,可以在“Application”页查看所记录的信息。

 



clip_image010














本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/1596119 ,如需转载请自行联系原作者










相关文章
|
9月前
|
SQL 机器学习/深度学习 人工智能
从“写SQL”到“聊数据”:NL2SQL如何用自然语言解锁数据库?
本文系统性地阐述了自然语言转SQL(NL2SQL) 技术如何让非技术背景的业务分析师实现数据自助查询,从而提升数据驱动决策的效率与准确性。
从“写SQL”到“聊数据”:NL2SQL如何用自然语言解锁数据库?
|
8月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1287 152
|
8月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
958 156
|
11月前
|
SQL 关系型数据库 MySQL
Go语言数据库编程:使用 `database/sql` 与 MySQL/PostgreSQL
Go语言通过`database/sql`标准库提供统一数据库操作接口,支持MySQL、PostgreSQL等多种数据库。本文介绍了驱动安装、连接数据库、基本增删改查操作、预处理语句、事务处理及错误管理等内容,涵盖实际开发中常用的技巧与注意事项,适合快速掌握Go语言数据库编程基础。
1313 213
|
8月前
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
647 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
7月前
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
361 6
|
8月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
8月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
528 8
|
9月前
|
SQL 人工智能 Java
用 LangChain4j+Ollama 打造 Text-to-SQL AI Agent,数据库想问就问
本文介绍了如何利用AI技术简化SQL查询操作,让不懂技术的用户也能轻松从数据库中获取信息。通过本地部署PostgreSQL数据库和Ollama模型,结合Java代码,实现将自然语言问题自动转换为SQL查询,并将结果以易懂的方式呈现。整个流程简单直观,适合初学者动手实践,同时也展示了AI在数据查询中的潜力与局限。
1128 8
|
9月前
|
SQL 人工智能 Linux
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
387 5