设为首页 收藏本站
查看: 1110|回复: 0

[经验分享] SQL Server 审核(Audit)-- 创建数据库级别的审核

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-12-29 08:20:47 | 显示全部楼层 |阅读模式
任务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:MSSQLDATAAudit_logs。

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

wKiom1ScuxiCmJT9AAPztowP4GY469.jpg

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

wKiom1ScuxmyqAgxAAC2NzWrG_c744.jpg


任务2:创建数据库级别的审核规范 – 监控数据库对象的创建、删除与修改。
步骤1在“Object Explorer”窗口,展开“Databases”,“AdventureWorks2012”,“Security”,“Database Audit Specifications”节点。

wKiom1ScuxnyDJ8NAADfJrBfTig035.jpg

步骤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”。

wKiom1ScuxqzMCgFAAP09cOOs2A510.jpg

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

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

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

wKiom1Scux6yYYXsAACzuTSshGA481.jpg


任务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”。并用以下方式来阅读所记录的审核数据。

wKioL1Scu86Bsh8SAAccZDsMlHA393.jpg


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

wKioL1Scu8-z3OlXAAC3CPdpzPk315.jpg

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

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

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

wKioL1Scu9CClDtiAAIY9nj8W88070.jpg

步骤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”区域,即可查看所记录到数据。

wKiom1ScuyOjFB6zAAY5aRJDSdE103.jpg

采用“Windows应用程序事件日志文件”方式来存放审核日志,具备以下特性。
l 审核内部所记录的日期时间部分,仍以格林威治时间(GMT)来记录。
l 在应用程序事件日志文件所记录的日志时间,已经转为数据库服务器所在时区的日期时间。
l 审核所记录到数据全部存放在消息区域内,其“statement”部分,有记录所执行的T-SQL程序代码。但这在阅读与后续分析上,势必会增加困扰。若与存放到二进制文件的审核目标比较起来,二进制文件存放的审核日志已经分类在各数据行中,如此一来,不但增加可读性,也容易进行筛选与分析。

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



wKioL1Scu9KCjEL6AAP7yqi-VmY603.jpg


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-39393-1-1.html 上篇帖子: SQL Server 审核(Audit)-- 创建服务器级别的审核 下篇帖子: SQL Server 审核(Audit)-- 审核对数据库对象的访问 数据库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表