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”完成设置。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. SQL Server Audit(审核)配置方法--数据库级别的审核

    大致步骤: A.创建审核 B.创建数据库级别的审核规范-监控数据库对象的创.删除与修改 C.测试审核功能-创建.修改与删除数据库对象 D.使用日志文件查看器阅读审核日志 1.   创建审核 在审核上右 ...

  2. SQL Server 实验二 创建数据库

    SQL Server 实验二 创建数据库 这是一个系列,需几个文档一起看 Use master go Drop Database YGGLcreate database YGGL on (name=' ...

  3. sql server基础语法 创建数据库 创建表

    sql server基础语法 创建数据库 创建表 1.创建数据库 2.表的创建 3.在现有表中添加标识列 4.创建外键 5.添加外键 6.约束 7.创建局部临时表 8.创建全局临时表 9.创建具有ch ...

  4. 使用SQL Server Management Studio 创建数据库备份作业

    --完整备份,每周一次 USE Master GO declare @str varchar(100) set @str='D:\Weldon\DBBACK\FullBak'+replace(repl ...

  5. SQL Server使用代码创建数据库主文件日志文件

    创建主文件(每个数据库必须有一个主文件) CREATE DATABASE 数据库名称 ON PRIMARY(     NAME = '数据库主文件名称',     FILENAME = '文件存放位置 ...

  6. SQL Server 审核(Audit)-- 创建服务器级别的审核

    任务1:创建审核 步骤1:打开SSMS,登录到指定的实例,展开"Security","Audits"节点. 步骤2:在"Audits"节点上 ...

  7. 使用SQL Server更改跟踪创建SQL Server审核

    This continuation of our SQL Server auditing series is on SQL Server Change Tracking and will cover ...

  8. 使用SQL Server Management Studio 创建作业备份数据库

    在项目中,经常需要备份数据库,如果能做到只需点个按钮("开始备份数据库"按钮),然后什么都不管,数据库就自动备份好了,或者服务器上的数据库隔一段时间自动备份一次,那该多好啊. Sq ...

  9. 如何将链接的服务器从SQL Server“调试”到Oracle数据库实例

    介绍 (Introduction) Intended audience 目标听众 This document is intended for database administrators who w ...

最新文章

  1. 在LVM中恢复已删除的逻辑卷
  2. PetShop 4.0讨论专贴(QA)
  3. .NET 正则表达式’$’符号的使用
  4. activity在屏幕旋转时的生命周期
  5. 带宽限制下的视觉实体属性传播
  6. python如何选择命令_python 解析命令行选项
  7. 学会了这些技术,你离BAT大厂不远了
  8. MyBatis-Plus_分页查询
  9. CentOS5.5下SVN部署文档
  10. 一个解决方案创建多个项目问题解决方案
  11. 华为开发者大会2020(Together)精彩集锦
  12. AT指令:AT+CMGF
  13. Apache部署django项目
  14. 只需3步完成,git迁移仓库地址,保留分支和历史记录
  15. 机器人断指_揭秘我国机器人发展历程:从机械手到服务机器人
  16. HuTool工具最全介绍
  17. iphone 快捷指令 python_iphone快捷指令在哪怎么用 苹果ios13快捷指令安装使用教程...
  18. 机器学习和深度学习的主要术语(中英)
  19. JavaScript实现双色球随机一注
  20. Android全屏显示

热门文章

  1. REST和SOAP:谁更好,或者都好?
  2. 会场安排问题 http://acm.nyist.net/JudgeOnline/problem.php?pid=14
  3. redis分布式缓存(三)
  4. MySQL 高级 游标基本操作
  5. MySQL 高级 - 视图 - 概述
  6. 使用线程池有以下几个目的
  7. Spring 事务core 模块-JdbcTeamplate 对象
  8. Hive的基本操作-基本查询语法
  9. 角色操作-角色添加代码实现
  10. jvm_虚拟机参数讲解(一)