说到审计这个话题,相信作为一个企业管理员都知道,比如一般作为一个AD管理员的话,一般都会通过Policy开启审计功能,记录一些自定义的事务日志。对于SQL Server来说,审计也是一样的,SQL Server审计对象收集单个实例的服务器或数据库级的动作和行为监控组。 审计是在SQL Server实例级。 可以有多个审计/ SQL服务器实例。当你定义一个审计,你指定位置的输出结果。 这是审计目标。 审计是在创建的禁用状态,不会自动审计任何行动。 启用审计后,从审计审计目标接收数据。审计SQL Server的一个实例数据库引擎或单个数据库包括跟踪和日志记录事件发生在数据库引擎。 SQL Server审计服务器允许您创建审计,可以包含服务器服务器级别事件的审计规范,和数据库审计规范数据库级的事件。 审计事件可以写入事件日志或审计文件。对于审计的介绍在此就不多介绍了,我们可以在官网上进行搜索官方文档进行查看。开始我们今天的主题:我们通过开启SQL Server的审计,记录用户对数据库的Insert、update、delete操作。

我们首先创建了一个测试数据库DB1,然后创建一个表Info

插入一些测试数据

接下来我们创建一个审计,来监控对数据库的所有操作

在数据库实例下--安全性--审计--新建审核

定义审核名称及审核文件的路劲及大小配置。

我们也可以使用脚本

TO FILE:指定输出到审核文件,也可以指定为Security Log和Application Log。

FILEPATH:审核文件的目录地址。

MaxSize:单个审核文件的最大容量。

MAXSIZE:类似于Trace,指定Rollover允许最多文件数。

RESERVE_DISK_SPACE:预先分配审核文件到MaxSize。个人推荐启用。

QUEUE_DELAY:指定事件发生到被强制审核的毫秒间隔。指定为0则为同步审核。

ON_FAILURE :当审核向上档写入数据失败时,接下来会采取的行为:CONTINUE | SHUTDOWN | FAIL_OPERATION。

AUDIT_GUID:用于数据库镜像。类似Login的SID作用,镜像会话的主库如果有审核,则在镜像库创建对应的审核需要指定同样GUID。

WHERE:相当于扩展事件中Predicate,用于指定过滤条件。

TO FILE:指定输出到审核文件,也可以指定为Security Log和Application Log。

FILEPATH:审核文件的目录地址。

MaxSize:单个审核文件的最大容量。

MAXSIZE:类似于Trace,指定Rollover允许最多文件数。

RESERVE_DISK_SPACE:预先分配审核文件到MaxSize。个人推荐启用。

QUEUE_DELAY:指定事件发生到被强制审核的毫秒间隔。指定为0则为同步审核。

ON_FAILURE :当审核向上档写入数据失败时,接下来会采取的行为:CONTINUE | SHUTDOWN | FAIL_OPERATION。

AUDIT_GUID:用于数据库镜像。类似Login的SID作用,镜像会话的主库如果有审核,则在镜像库创建对应的审核需要指定同样GUID。

WHERE:相当于扩展事件中Predicate,用于指定过滤条件。

审计创建完成之后是禁用的

我们右击--启用审核

启用成功

我们要定义对哪个数据库表进行审计操作,我们需要在哪个数据库下新建--服务器审核规范

定义服务器审核规范名称-及前面新建的审核服务

我们需要在当前的数据库下创建审核规范

我们通过定义审计操作类型---选择insert、delete、update等操作

我们可以使用脚本创建

1
2
3
4
5
6
7
8
9
USE [DB1]
GO
CREATE DATABASE AUDIT SPECIFICATION [ServerAuditSpecification-DB1]
FOR SERVER AUDIT [Audit-DB1]
ADD (DELETE ON DATABASE::[DB1] BY [public]),
ADD (INSERT ON DATABASE::[DB1] BY [public]),
ADD (UPDATE ON DATABASE::[DB1] BY [public])
WITH (STATE = ON)
GO

这样就在数据库DB1下就多出一个数据库审计规范

我们接下来对数据库进行操作

我们插入一条数据,然后查看审计

右击--查看审计log

我们发现通过以下方式也是可以看见操作类型信息的,具体我们可以通过配置筛选进行显示自定义内容即可

我们再次需要需要通过访问生产的审计log进行查看,通过以下信息,我们也可以通过命令行进行查看

https://msdn.microsoft.com/en-us/library/cc280765(v=sql.110).aspx

1
2
3
SELECT * FROM sys.fn_get_audit_file ('\\serverName\Audit\HIPPA_AUDIT.sqlaudit',default,default); GO
SELECT * FROM sys.fn_get_audit_file ('D:\Audit_Log\Audit-DB1_29F2408B-C8F5-4747-A3F9-CCFD66D0D8C1_0_131343921494640000.sqlaudit',default,default);
GO

我们查询后,发现不是很友好,所以我们需要需要跳出关键的字段进行查找

我们需要将关键的字段单独列出来,只显示关键的名称就可以了

1
2
3
4
5
6
7
8
9
10
SELECT event_time
, action_id
, succeeded
, session_id
, session_server_principal_name
, object_name
, statement
, file_name
, audit_file_offset
from sys.fn_get_audit_file('D:\Audit_LogFiles\Audit-DB_7CB2AD0B-C97D-4478-8360-E3C3D11B216C_0_131343949988730000.sqlaudit',default,default)

本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1908381,如需转载请自行联系原作者

SQL Server 审计功能-记录所有的操作记录相关推荐

  1. SQL Server审计功能入门:CDC(Change Data Capture)

    原文:SQL Server审计功能入门:CDC(Change Data Capture) 介绍 SQL Server 2008引入了CDC(Change Data Capture),它能记录: 1. ...

  2. 浅谈用KUSTO查询语言(KQL)在Azure Synapse Analytics(Azure SQL DW)审计某DB账号的操作记录

    目录 (一)前言 (二)实际案列 1. 背景说明: 2. 操作步骤 (1)打开Portal (2)搜索"监视器" (3)点击左侧选项卡中的"日志" (4)在新的 ...

  3. SQL Server审核功能–发现和体系结构

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

  4. heidisql连接远程数据库_Heidisql如何连接sql server数据库并做增删改操作?

    Heidisql工具是一个功能强大的数据库连接工具,功能齐全.操作简单.用heidisql很容易完成sql server数据库的建表.删除表.更新表操作等等操作.接下来小编就给大家带来Heidisql ...

  5. SQL Server中的Image数据类型的操作

    原文:SQL Server中的Image数据类型的操作 准备工作,在库Im_Test中建立一张表Im_Info,此表中有两个字段,分别为Pr_Id (INT),Pr_Info (IMAGE),用来存储 ...

  6. SQL Server 数据加密功能解析

    版权声明:本文由王甲坤原创文章,转载请注明出处:  文章原文链接:https://www.qcloud.com/community/article/194 来源:腾云阁 https://www.qcl ...

  7. SQL Server商业智能功能– SQL Server数据工具–商业智能

    介绍 (Introduction) 在上一篇有关introduction to SQL Server business intelligence we covered the general stru ...

  8. sql server 加密_SQL Server机密–第一部分–加密基础知识和SQL Server加密功能

    sql server 加密 介绍 (Intro) We use cryptography every day: on the internet, mobile devices, ATM machine ...

  9. SQL Server 2000查询n到m条记录

    SQL Server 2000查询n到m条记录? (1)select top m * from tablename where id not in (select top n id from tabl ...

最新文章

  1. 万能make file
  2. 福师《计算机应用基础》期末考试,21年2月福师《计算机应用基础》期末考试A卷答案...
  3. LBS突围:从微信到微博
  4. linux netty udp服务端,Netty实现简单UDP服务器(示例代码)
  5. VTK:Utilities之AnimationScene
  6. python类基础知识注意点
  7. 重磅!K8S 1.18版本将内置支持SideCar容器。
  8. 兄弟 你们永远是我的大哥哥
  9. 中山大学自主招生面试题:假如广州停电5分钟
  10. thinkphp中的session的使用和理解!
  11. Django链接Mysql 8.0 出现错误(1045:Access denied for user ‘root‘@‘localhost‘ (using password: NO) 的一种解决方法
  12. 《元宇宙的未来猜想和投资机遇分析 》
  13. Win7环境下VS2010配置Cocos2d-x-2.1.4最新版本号的开发环境
  14. Photoshop安装包破解安装教程
  15. protobuf 微信小程序_微信小程序使用Protobuf
  16. 超大TIF图片分割成一百张较小的图片
  17. Java必知必会的问题
  18. DB-Engines:2016年10月份全球数据库排名
  19. 什么是计算机用英语解释,计算机词汇英语解释
  20. 通过虚拟机将kali linux 系统安装到U盘/移动硬盘

热门文章

  1. JavaScript 图片切割效果(带拖放、缩放效果)
  2. Java中int为什么占四个字节?
  3. 从入门到精通进阶篇 - 设置负载阶梯式压测场景(详解教程)
  4. Spring Security 中的执行原理流程分析
  5. c++语言代码游戏,c++小游戏(贪吃蛇)源程序
  6. ip变更 mysql无法启动_MySQL 重装MySQL后, mysql服务无法启动
  7. 魔方机器人需要特制魔方吗_火影忍者手游:如果新春水门金币团购,你会夸魔方良心吗?...
  8. 教你如何找网络上的图片素材
  9. 你需掌握的CSS知识都在这了(长文建议收藏,文末有福利)
  10. 进入前端行业之前我们需要了解什么,明白这些就可以