mssql 数据库审计账户_SQLServer数据库审计功能入门之SQL Server审核 (SQL Server Audit)...

本文主要向大家介绍了SQLServer数据库审计功能入门之SQL Server审核,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助。

介绍

Audit是SQL Server 2008之后才有的功能,它能告诉你“谁什么时候做了什么事情”。具体是指审核SQL Server 数据库引擎实例或单独的数据库涉及到跟踪和记录数据库引擎中发生的事件。它的底层是基于扩展事件(Extented Event),所以其性能和灵活性相对较好。审核数据可以输出到审核文件、Windows安全日志和应用程序日志。

Audit都需要创建一个实例级的“SQL Server审核”,然后可以创建从属于它“服务器审核规范”和“数据库审核规范”。可以理解“SQL Server审核”是审核的顶级容器,这两个“规范”是定义要审核的具体内容。

创建和使用审核的一般过程:

1. 创建审核并定义目标。

2. 创建映射到审核的服务器审核规范或数据库审核规范,并启用审核规范。

3. 启用审核。

4. 通过使用 Windows“事件查看器”、“日志文件查看器”或 fn_get_audit_file 函数来读取审核事件。

实现

创建测试数据库和数据:

use master

go

create database AuditTest

go

use AuditTest

go

create table tb(ID int primary key ,name varchar(20),weight decimal(10,2));

insert into tb values(1,'John',70.2),(2,'Ted',80.8),(3,'Clark',75.1)

go

1. 创建审核和定义目标。

创建审核可以用SSMS或者语句实现。所谓目标,就是审核输出存到哪里,与扩展事件的Target差不多。

对应的语句创建:

--create Server Audit

USE [master]

GO

CREATE SERVER AUDIT [Audit-AuditTest]

TO FILE

( FILEPATH = N'D:\share'

,MAXSIZE = 50 MB

,MAX_FILES = 10

,RESERVE_DISK_SPACE = ON

)

WITH

( QUEUE_DELAY = 1000

,ON_FAILURE = CONTINUE

--AUDIT_GUID=uniqueidentifier

)

--WHERE object_name='tb'

GO

--Enable Server Audit

alter server audit [Audit-AuditTest] with (state=on)

简单说明一下相关参数:

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,用于指定过滤条件。

2. 创建数据库审核规范并启用之

指定从属于哪个SQL Server审核和定义出要审核的内容。可以通过SSM或者语句创建之。下面针对测试表tb创建审核规范:任何人对tb表的DML和表结构修改操作都被审核。

对应的语句:

--Create and enable Database Audit Specification

USE [AuditTest]

GO

CREATE DATABASE AUDIT SPECIFICATION [DatabaseAuditSpecification-AuditTest]

FOR SERVER AUDIT [Audit-AuditTest]

ADD (SCHEMA_OBJECT_CHANGE_GROUP),

ADD (SELECT,DELETE,INSERT,UPDATE ON OBJECT::[dbo].[tb] BY [public])

WITH (STATE=ON)

GO

对照SSMS,参数的意义就很明白了。更详细内容参考:CREATE DATABASE AUDIT SPECIFICATION

审核活动类型(Audit Action Type)参考:SQL Server 审核操作组和操作

3. 启用审核

SQL Server在创建审核和审核规范时,默认是不启用,需要显式启用。在前面两步,我已经显式启用了。

4. 测试和查看审核数据

use AuditTest

go

select * from dbo.tb

where ID=1;

update dbo.tb

set name='Ted_New'

where ID=2;

alter table dbo.tb alter column name varchar(30);

alter table dbo.tb add newCol varchar(20);

go

在前面目标定义的文件中会生成一个审核文件,文件名:[SQL Server审核名称]_[审核的GUID]_*.sqlaudit。

这个文件也可以用其它文字编辑器打,但是不便阅读。通常使用系统函数sys.fn_get_audit_file读取它。

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:\share\*',default,default)

从结果可以得到:谁在什么时候做了什么。Select和Alter语句只有一条记录。Update有两条记录,一条Select和一条Update。将audit_file_offset的值传递给fn_get_audit_file作为第三个参数值,可以实现从指定的offset读取审核文件。注意:event_time输出为UTC时间了。

当然也可以直接查看:

5. 尝试服务器审核规范

审核创建和删除登录,并将审核内容记录到应用程序日志。

USE [master]GOCREATE SERVER AUDIT [Audit-AuditTest]TO APPLICATION_LOGWITH

( QUEUE_DELAY = 1000

,ON_FAILURE = CONTINUE

)GOAlter SERVER AUDIT [Audit-AuditTest] With(State=On)goCreate Server Audit Specification SAS_CreateDropLoginFor Server Audit [Audit-AuditTest]Add (SERVER_PRINCIPAL_CHANGE_GROUP)With (State=On)gocreate login xx with password='P@ssW0rd';drop login xx ;

通过Windows的事件查看器,可以查看到33205事件。个人觉得在查看数据详细事件时,使用XML格式更好理解一些。

总结

1. SQL Server审核相对而言性能影响较少,审核粒度也非常灵活。

2. 审核是针对“事件“,回答”谁什么时候干了什么“,但对数据本身变化的跟踪力度较弱。

3. 审核的目标结果,无论是审核文件或者应用程序日志,都需要另外处理和分析才能得想要的内容。

本文由职坐标整理并发布,希望对同学们学习SQL Server有所帮助,更多内容请关注职坐标数据库SQL Server数据库频道!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513131.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么Spring仍然会是云原生时代最佳平台之一?

简介: 基于Java语言的Spring生态,还能否适应新的开发方式,比如Cloud Native、Serverless、Faas等,它还会是云原生时代的最佳平台的选择吗?本文将从5个角度来为你分析一下这个问题,分别是:Java和…

贾又福大象鸿蒙,奏乐!继续吹!库里又创记录,射进MVP榜单,众多名记变“库吹“...

库里本月已投进85记三分 打破哈登保持的NBA单月三分命中数纪录加上今天的7记三分,库里本月已经投进85记三分,创造了新的NBA单月(自然月)三分命中数纪录。勇士本月还有两场比赛。此前,哈登曾单月82记三分。在NBA历史单月三分球命中数前三榜单中…

opencv4 图像特征匹配_概述 | 全景图像拼接技术全解析

点击上方蓝字关注我们微信公众号:OpenCV学堂关注获取更多计算机视觉与深度学习知识前言图像/视频拼接的主要目的是为了解决相机视野(FOV-Field Of View)限制,生成更宽的FOV图像/视频场景。视频拼接在体育直播、全景显示、数字娱乐、视频处理中都被广泛应…

数字化让618有了洞悉消费者内心的“大脑”

简介: 阿里云数据中台已形成包括会员智能运营、全域天攻智投、GMV策略模拟等在内的近10套解决方案,围绕“人”“货”“场”三大零售行业要素,逐个击破品牌业务难点,记者了解到,过去一年,悦诗风吟、Benefit、…

赋能工业互联网融合发展 | 北京信息化和工业化融合服务联盟平台化设计专业委员会、中国仿真学会CAE仿真专业委员会成立

11月28日,由北京市经济和信息化局指导,北京信息化和工业化融合服务联盟与中国仿真学会共同主办,联盟平台化设计专业委员会、中国仿真学会CAE仿真专业委员会、国家数字化设计与制造创新中心北京中心、北京数字化设计与制造产业创新中心共同承办…

升级鸿蒙系统有没有翻车,被寄予厚望的华为鸿蒙系统,这次要翻车?原来并不是我们想的那样...

华为鸿蒙系统早在去年就已经被正式发布,但那时的人们对这个操作系统还不熟悉。但近期华为又在其发布会上发布了鸿蒙OS2.0,并表示到了2021年华为手机将全面使用鸿蒙2.0。这消息一出,不少华为用户忍不住想去尝尝鲜,纷纷都将系统更新…

PolarDB-X 2.0 全局 Binlog 和备份恢复能力解读

简介: PolarDB-X 2.0 针对数据孤岛问题提供了全局 Binlog 能力,该能力为下游生态提供了与 MySQL Binlog 完全一致的增量日志消费体验。针对数据损坏问题提供了实例级、表级、SQL 级和行级等不同粒度的数据恢复能力,包括一致性备份恢复、表回收…

友盟+《小程序用户增长白皮书》:从五个角度入手分析小程序数据

简介: 近日,国内领先的全域数据智能服务商——友盟,发布了《友盟U-APM 移动应用性能体验报告》。据悉,友盟于去年将原移动分析U-App错误分析模块正式升级为U-APM应用性能监控平台,经过近一年的观察,通过DEM…

双向板受力特点_双向板的受力特点与试验结果

长跨的挠度曲线弯曲最大处不在跨中而在离板边约21短跨长处。(2)加载过程中,在裂缝出现之前,双向板基本上处于弹性工作阶段。(3)四边简支的正方形或矩形双向板,当荷载作用时,板的四角有翘起的趋势,因此板传给四边支座的…

html提现页面模板,提现记录.html

提现记录$axure.utils.getTransparentGifPath function() { return resources/images/transparent.gif; };$axure.utils.getOtherPath function() { return resources/Other.html; };$axure.utils.getReloadPath function() { return resources/reload.html; };…

有赞九周年,打造技术生态,与开发者一起投身新零售浪潮

编辑 | 宋慧 11月28日,在有赞九周年生态大会有赞云分会场上,有赞宣布全面升级“ONE战略”,将与生态内众多的品牌商、软件厂商,从“产品融合”,“销售联动”,“经验共享”和“资本合作”四个维度实一起共建“…

“控本焦虑”的工程企业 用钉钉宜搭找到了低成本数字化的“捷径”

简介: 上海致拓软件有限公司利用云钉低代码应用构建平台——钉钉宜搭为合安建筑快速、低成本地搭建了个性化的项目管理系统,着力帮助合安建筑解决业务在线场景,形成场景化的工程项目管理数字化解决方案。 一封由工程公司发给项目管理数字化实…

latex导数_Latex:导数【高中常用公式】

Latex:导数【高中常用公式】吴文中公式编辑器:Ⅰ) 像码字一样Latex,复杂公式轻松编辑; Ⅱ)大学、高中、初中、小学常用公式,一键模板。Note:① 点击链接,想怎么修改就怎么修改;② 复…

如何做好一场技术演讲?

简介: 据心理学调查,在人们感到最恐惧的事情里,死亡排名第二,而“公开演讲”排名第一!那么作为一个演讲新人,为了可以不丢人的做好演讲,都需要做哪些准备呢? 作者 | 竹涧 来源 | 阿里…

layui弹出层html,layui-弹出层

1.//弹框中的表单用户名复选框2.layui.use(layer, function(){var layer layui.layer;layer.open({title: [title, text-align:center; background:#fff],type:1,area: [500px, 300px],content: $(#addform), //这里content是一个普通的String//offset: auto, //弹框位置btn: […

汇聚技术与能力,共绘区块链远大蓝图!

进入数字经济时代,云已成为数字经济的一个最重要的基础设施。区块链,作为跨产业数字生态的连接器,是数字经济时代另一个重要的基础设施。云链结合,让技术助力传统产业升级,重塑信任关系。11月30日,移动云区块链开发者论…

python代码300行程序_python小工具,15行代码秒出工资条

公司工资条经常使用Excel制作,但是每个月都要做一遍,能不能用python写个程序自动化完成这想工作?当然可以,而且只是分分钟的事! 先来看看原始数据是什么样子: 最后做成的效果:使用Excel每次都需要手动修改一…

全链路压测体系建设方案的思考与实践

简介: 在阿里淘宝双11 的过程中,长期以来都是在生产环节做全链路压测的,通过实践我们发现在生产环境中做压测,实际上会和一个 IT 组织的结构、成熟度、流程等紧密相关,所以我们把全链路压测从简单的制作范围内脱离出来…

工业互联网标识解析企业节点_丰尚公司获批建设国家工业互联网标识解析二级节点...

11月12日,从江苏省工业和信息化厅获悉,丰尚公司获批建设国家工业互联网标识解析二级节点!本次获批的节点是:丰尚云行业工业互联网标识解析二级节点,主要应用于饲料、粮油、食品加工等领域。依托丰尚公司行业多年来智能…

低代码发展系列专访之三:低代码平台会成为企业数字化基础设施么?

话题: 低代码专访前言:2019年开始,低代码爆火。有人认为它是第四代编程语言,有人认为它是开发模式的颠覆,也有人认为是企业管理模式的变革……有很多声音,社区讨论很热烈。CSDN随后展开低代码平台产品系列活…