SQL Server 审计操作概念
概述
对于一般的数据库系统审计可能不太会被重视,但是对于金融系统就不一样的。金融系统对审计要求会很高,除了了记录数据库各种操作记录还可能会需要开发报表来呈现这些行为数据。使用SQL Server Audit 功能,您可以对服务器级别和数据库级别事件组以及单个事件进行审核。
“审核”SQL Server 的实例或 SQL Server 数据库涉及到跟踪和记录系统中发生的事件,您可以记录每个实例的服务器审核操作组,或记录每个数据库的数据库审核操作组或数据库审核操作。在每次遇到可审核操作时,都将发生审核事件。
SQL Server 审核包括零个或多个审核操作项目。这些审核操作项目可以是一组操作,例如 Server_Object_Change_Group,也可以是单个操作,例如对表的 SELECT 操作。
注意:Server_Object_Change_Group 包括对任何服务器对象(数据库或端点)的 CREATE、ALTER 和 DROP 操作。
审核可以有以下类别的操作:
- 服务器级别。这些操作包括服务器操作,例如管理更改以及登录和注销操作。
- 数据库级别。这些操作包括数据操作语言 (DML) 和数据定义语言 (DDL) 操作。
- 审核级别。这些操作包括审核过程中的操作。
针对 SQL Server 审核组件执行的某些操作本质上是在特定审核中进行审核的,在这些情况下,由于事件发生在父对象上,因此将自动发生审核事件。
本质上将对下列操作进行审核:
- 服务器审核状态更改(将状态设置为 ON 或 OFF)
本质上将不对下列事件进行审核:
- CREATE SERVER AUDIT SPECIFICATION
- ALTER SERVER AUDIT SPECIFICATION
- DROP SERVER AUDIT SPECIFICATION
- CREATE DATABASE AUDIT SPECIFICATION
- ALTER DATABASE AUDIT SPECIFICATION
- DROP DATABASE AUDIT SPECIFICATION
最初创建时会禁用所有审核。
服务器级别审核操作组
服务器级别审核操作组是类似于 SQL Server 安全审核事件类的操作。有关详细信息,请参阅 SQL Server
事件类参考。
下表介绍了服务器级审核操作组,并提供了适用的等效 SQL Server 事件类。
Audit Login
事件类。
|
LOGOUT_GROUP |
指示主体已注销 SQL Server。此类中的事件由新连接引发或由连接池中重用的连接引发。等效于 Audit Logout |
||
|
FAILED_LOGIN_GROUP |
指示主体尝试登录到 SQL Server,但是失败。此类中的事件由新连接引发或由连接池中重用的连接引发。等效于 Audit Login Failed |
||
|
LOGIN_CHANGE_PASSWORD_GROUP |
通过 ALTER LOGIN 语句或 sp_password 存储过程更改登录密码时,将引发此事件。等效于 Audit Login Change Password |
||
|
APPLICATION_ROLE_CHANGE_PASSWORD_GROUP |
更改应用程序角色的密码时将引发此事件。等效于 Audit App Role Change Password |
||
|
SERVER_ROLE_MEMBER_CHANGE_GROUP |
向固定服务器角色添加登录名或从中删除登录名时将引发此事件。此事件由 sp_addsrvrolemember 和 sp_dropsrvrolemember |
||
|
DATABASE_ROLE_MEMBER_CHANGE_GROUP |
向数据库角色添加登录名或从中删除登录名时将引发此事件。此事件类由 sp_addrolemember、sp_changegroup 和 |
||
|
BACKUP_RESTORE_GROUP |
发出备份或还原命令时,将引发此事件。等效于 Audit Backup/Restore |
||
|
DBCC_GROUP |
主体发出任何 DBCC 命令时,将引发此事件。等效于 Audit DBCC |
||
|
SERVER_OPERATION_GROUP |
使用安全审核操作(如使更改设置、资源、外部访问或授权)时将引发此事件。等效于 Audit Server Operation |
||
|
DATABASE_OPERATION_GROUP |
数据库中发生操作(如检查点或订阅查询通知)时将引发此事件。对于任何数据库的任何操作都将引发此事件。等效于 Audit Database Operation |
||
|
AUDIT_ CHANGE_GROUP |
创建、修改或删除任何审核时,均将引发此事件。创建、修改或删除任何审核规范时,均将引发此事件。任何针对某审核的更改均将在该审核中审核。 |
||
|
SERVER_STATE_CHANGE_GROUP |
修改 SQL Server 服务状态时将引发此事件。等效于 Audit Server Starts and Stops |
||
|
SERVER_OBJECT_CHANGE_GROUP |
针对服务器对象执行 CREATE、ALTER 或 DROP 操作时将引发此事件。等效于 Audit Server Object Management |
||
|
SERVER_PRINCIPAL_CHANGE_GROUP |
创建、更改或删除服务器主体时将引发此事件。等效于 Audit Server Principal 主体发出 sp_defaultdb 或 sp_defaultlanguage 存储过程或 ALTER LOGIN 语句时,将引发此事件。等效于 调用 sp_addlogin 和 sp_droplogin 存储过程时会引发此事件。还等效于 Audit Login Change Property 此事件由 sp_grantlogin、sp_revokelogin 或 sp_denylogin 存储过程引发。等效于 Audit Login GDR |
||
|
DATABASE_CHANGE_GROUP |
创建、更改或删除数据库时将引发此事件。创建、更改或删除任何数据库时均将引发此事件。等效于 Audit Database Management |
||
|
DATABASE_OBJECT_CHANGE_GROUP |
针对数据库对象(如架构)执行 CREATE、ALTER 或 DROP 语句时将引发此事件。创建、更改或删除任何数据库对象时均将引发此事件。
等效于 Audit Database Object Management |
||
|
DATABASE_PRINCIPAL_CHANGE_GROUP |
在数据库中创建、更改或删除主体(如用户)时,将引发此事件。等效于 Audit Database Principal 使用 sp_addrole 或 sp_droprole |
||
|
SCHEMA_OBJECT_CHANGE_GROUP |
针对架构执行 CREATE、ALTER 或 DROP 操作时将引发此事件。等效于 Audit Schema Object Management 此事件针对架构对象引发。等效于 Audit Object Derived Permission 任何数据库的任何架构发生更改时,均将引发此事件。等效于 Audit Statement Permission |
||
|
SERVER_PRINCIPAL_IMPERSONATION_GROUP |
服务器范围中发生模拟(如 EXECUTE AS <登录名>)时将引发此事件。等效于 Audit Server Principal |
||
|
DATABASE_PRINCIPAL_IMPERSONATION_GROUP |
数据库范围内存在模拟操作(如 EXECUTE AS <主体> 或 |
||
|
SERVER_OBJECT_OWNERSHIP_CHANGE_GROUP |
服务器范围中的对象的所有者发生更改时将引发此事件。等效于 Audit Server Object Take |
||
|
DATABASE_OWNERSHIP_CHANGE_GROUP |
使用 ALTER AUTHORIZATION |
||
|
DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP |
在数据库范围内更改对象所有者时,将引发此事件。服务器上任意数据库的任意对象所有权发生更改时,均将引发此事件。等效于 Audit Database Object Take |
||
|
SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP |
检查更改架构对象(例如表、过程或函数)的所有者的权限时,会引发此事件。使用 ALTER AUTHORIZATION |
||
|
SERVER_PERMISSION_CHANGE_GROUP |
为获取服务器范围内的权限(例如,创建登录名)而发出 GRANT、REVOKE 或 DENY 语句时,将引发此事件。等效于 Audit Server Scope GDR |
||
|
SERVER_OBJECT_PERMISSION_CHANGE_GROUP |
SQL Server 中的任何主体针对某服务器对象权限发出 GRANT、REVOKE、或 DENY 语句时,将引发此事件。等效于 Audit Server Object GDR |
||
|
DATABASE_PERMISSION_CHANGE_GROUP |
SQL Server 中的任何主体针对某语句权限发出 GRANT、REVOKE 或 DENY 服务器上任意数据库的任意数据库权限发生更改 (GDR) 时,均将引发此事件。等效于 Audit Database Scope GDR |
||
|
DATABASE_OBJECT_PERMISSION_CHANGE_GROUP |
针对数据库对象(例如,程序集和架构)发出 GRANT、REVOKE 或 DENY |
||
|
SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP |
对架构对象执行 GRANT、DENY 或 REVOKE 语句时将引发此事件。等效于 Audit Schema Object GDR |
||
|
DATABASE_OBJECT_ACCESS_GROUP |
访问数据库对象(如消息类型、程序集和协定)时将引发此事件。 此事件由对任何数据库的任何访问而引发。
等效于 Audit Database Object Access |
||
|
SCHEMA_OBJECT_ACCESS_GROUP |
每次在架构中使用对象权限时,都将引发此事件。等效于 Audit Schema Object Access |
||
|
BROKER_LOGIN_GROUP |
引发此事件的目的是为了报告与 Service Broker 传输安全性相关的审核消息。等效于 Audit Broker Login |
||
|
DATABASE_MIRRORING_LOGIN_GROUP |
引发此事件的目的是为了报告与数据库镜像传输安全性相关的审核消息。等效于 Audit Database Mirroring Login |
||
|
TRACE_CHANGE_GROUP |
对于检查 ALTER TRACE 权限的所有语句,都会引发此事件。等效于 Audit Server Alter Trace |
注意事项
服务器级别操作组涵盖了整个 SQL Server
实例中的操作。例如,如果将相应操作组添加到服务器审核规范中,则将记录任何数据库中的任何架构对象访问检查。在数据库审核规范中,仅记录该数据库中的架构对象访问。
服务器级别的操作不允许对数据库级别的操作进行详细筛选。实现详细操作筛选需要数据库级别的审核,例如,对 Employee 组中登录名的
Customers 表执行的 SELECT
操作进行的审核。在用户数据库审核规范中不要包括服务器范围的对象,例如系统视图。
数据库级别审核操作组
数据库级别审核操作组是类似于 SQL Server 安全审核事件类的操作。有关事件类的详细信息,请参阅 SQL Server
事件类参考。
下表介绍了数据库级别审核操作组,并提供了适用的等效 SQL Server 事件类。
Audit Add Member to DB Role
事件类。
|
DATABASE_OPERATION_GROUP |
数据库中发生操作(如检查点或订阅查询通知)时将引发此事件。等效于 Audit Database Operation |
|
DATABASE_CHANGE_GROUP |
创建、更改或删除数据库时将引发此事件。等效于 Audit Database Management |
|
DATABASE_OBJECT_CHANGE_GROUP |
针对数据库对象(如架构)执行 CREATE、ALTER 或 DROP 语句时将引发此事件。等效于 Audit Database Object Management |
|
DATABASE_PRINCIPAL_CHANGE_GROUP |
在数据库中创建、更改或删除主体(如用户)时,将引发此事件。等效于 Audit Database Principal 使用不推荐使用的 sp_addrole 和 sp_droprole 存储过程添加或删除数据库角色时,将引发此事件。等效于 Audit Add Role |
|
SCHEMA_OBJECT_CHANGE_GROUP |
针对架构执行 CREATE、ALTER 或 DROP 操作时将引发此事件。等效于 Audit Schema Object Management 此事件针对架构对象引发。等效于 Audit Object Derived Permission |
|
DATABASE_PRINCIPAL_IMPERSONATION_GROUP |
数据库范围中发生模拟(如 EXECUTE AS <用户> 或 SETUSER)时将引发此事件。等效于 Audit Database Principal |
|
DATABASE_OWNERSHIP_CHANGE_GROUP |
使用 ALTER AUTHORIZATION 语句更改数据库的所有者时,将引发此事件,并将检查执行该操作所需的权限。等效于 Audit Change Database Owner |
|
DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP |
数据库范围中的对象的所有者发生更改时将引发此事件。等效于 Audit Database Object Take |
|
SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP |
等效于 Audit Schema Object Take Ownership |
|
DATABASE_PERMISSION_CHANGE_GROUP |
SQL Server 中的任何用户针对某语句权限发出 GRANT、REVOKE 或 DENY |
|
DATABASE_OBJECT_PERMISSION_CHANGE_GROUP |
针对数据库对象(例如,程序集和架构)发出 GRANT、REVOKE 或 DENY 语句时将引发此事件。等效于 Audit Database Object GDR |
|
SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP |
每次对架构对象发出 GRANT、DENY 或 REVOKE 时,均会引发此事件。等效于 Audit Schema Object GDR |
|
DATABASE_OBJECT_ACCESS_GROUP |
访问数据库对象(如证书和非对称密钥)时将引发此事件。等效于 Audit Database Object Access |
|
SCHEMA_OBJECT_ACCESS_GROUP |
每次在架构中使用对象权限时,都将引发此事件。等效于 Audit Schema Object Access |
数据库级别审核操作
数据库级别的操作支持直接对数据库架构以及架构对象(例如表、视图、存储过程、函数、扩展存储过程、队列、同义词)进行的特定操作进行审核。不审核类型、XML
架构集合、数据库和架构。架构对象的审核可以在架构和数据库上配置,这意味着指定架构或数据库包含的所有架构对象上的事件都将被审核。下表介绍了数据库级别的审核操作。
| 操作 | 说明 |
|---|---|
|
SELECT |
发出 SELECT 语句时将引发此事件。 |
|
UPDATE |
发出 UPDATE 语句时将引发此事件。 |
|
INSERT |
发出 INSERT 语句时将引发此事件。 |
|
DELETE |
发出 DELETE 语句时将引发此事件。 |
|
EXECUTE |
发出 EXECUTE 语句时将引发此事件。 |
|
RECEIVE |
发出 RECEIVE 语句时将引发此事件。 |
|
REFERENCES |
检查 REFERENCES 权限时将引发此事件。 |
注意事项
数据库级别的审核操作不适用于列。
当查询处理器对查询进行参数化时,审核事件日志中会出现参数而不是查询的列值。
审核级别的审核操作组
您也可以对审核过程中的操作进行审核。这些操作可以是服务器范围或数据库范围的操作。如果在数据库范围内,则仅针对数据库审核规范而进行。下表介绍了审核级别的审核操作组。
| 操作组名称 | 说明 |
|---|---|
|
AUDIT_ CHANGE_GROUP |
发出以下命令之一时将引发此事件:
|
备注:文章内容来着SQLServer官方在线文档
总结
本篇文章主要是对审计概念有一个了解,下一篇文章会详细介绍如何收集审计信息。
|
备注: 作者:pursuer.chen 博客:http://www.cnblogs.com/chenmh 本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接,否则保留追究责任的权利。 《欢迎交流讨论》 |
SQL Server 审计操作概念的更多相关文章
- SQL Server审计功能入门:SQL Server审核 (SQL Server Audit)
原文:SQL Server审计功能入门:SQL Server审核 (SQL Server Audit) 介绍 Audit是SQL Server 2008之后才有的功能,它能告诉你"谁什么时候 ...
- SQL Server审计功能入门:CDC(Change Data Capture)
原文:SQL Server审计功能入门:CDC(Change Data Capture) 介绍 SQL Server 2008引入了CDC(Change Data Capture),它能记录: 1. ...
- SQL Server审计功能入门:更改跟踪(Change Tracking)
原文:SQL Server审计功能入门:更改跟踪(Change Tracking) 介绍 更改跟踪是一种轻量型解决方案,它为应用程序提供了一种有效的更改跟踪机制.常规的,自定义变更跟踪和读取跟踪数据, ...
- (2.1)备份与还原--sql server文件的概念及操作
概述:sql server是以文件形式存储数据与日志 1.数据文件 sql server数据文件分为2类 (1)主数据库文件 主数据库文件包含数据库的启动信息.系统对象,并指向数据库的其他文件(从数据 ...
- SQL Server 审计
审计(Audit)用于追踪和记录SQL Server实例或数据库中发生的事件,审计主要包括审计对象(Audit)和审计规范(Audit Specification),创建审计首先需要创建一个SQL S ...
- SQL Server 审计(Audit)
审计(Audit)用于追踪和记录SQL Server实例,或者单个数据库中发生的事件(Event),审计运作的机制是通过捕获事件(Event),把事件包含的信息写入到事件日志(Event Log)或审 ...
- Sql Server 常用操作2
FOR XML PATH应用 stuID学生编号,sName代表学生姓名,hobby列存学生的爱好! SELECT B.sName,LEFT(StuList,LEN(StuList)-1) as ho ...
- Sql Server 常用操作
--DDL触发器CREATE TRIGGER [TR_create_drop_alter_Table] ON DATABASE FOR CREATE_TABLE,DROP_table,ALTER_ ...
- C++对MS SQL Server的操作
今天因为在做一份C++的期末作业,突然想用C++来链接数据库,实现数据的重复利用,所以就作死去百度搜了一下. 更巧的事情是,一搜居然还有很多搜索结果,然后就照着做了. 做的过程很艰辛,就不一一诉说了, ...
随机推荐
- Android ViewPager实现图片标题轮播和点击事件
我看别人的文章,最喜欢看有图的.然后先找图看. 那我就先上效果图: 实现了图片自动轮播,手动滑动,轮播标题,以及点击事件.下面开始: 一.资源文件: 首先是布局: <?xml version=& ...
- es6+require混合开发,兼容es6 module,import,export
近一年,一直很忙,做了不少的项目,不过都不是太满意,毕竟是别人的作品,不好意思写出来.最近打算开发一个es6的项目,项目中用到require,本文主要讲解es6的module规范怎么与require的 ...
- 基于Accord.Audio和百度语言识别
---恢复内容开始--- 目标需求 使用录音形式,模拟微信语音聊天.按住录音,松开发送语音,并完成语音识别. ps:百度的语言识别有60秒长度限制,需要自己做好控制. 实现方案 采用C# winfor ...
- 使用Dagger2做静态注入, 对比Guice.
Dagger 依赖注入的诉求, 这边就不重复描述了, 在上文Spring以及Guice的IOC文档中都有提及, 既然有了Guice, Google为啥还要搞个Dagger2出来重复造轮子呢? 因为使用 ...
- 【Cocos游戏实战】功夫小子第七课之游戏主功能场景逻辑功能和暂停功能场景的分析和实现
CSDN的markdown编辑器是吃屎了么! !.什么玩意.!写了一半写不了东西还全没了,搞个毛线! 本节课的视频教程地址是:第七课在此 假设本教程有帮助到您,希望您能点击进去观看一下,并且如今注冊成 ...
- OR1200中指令Cache的结构
下面内容摘自<步步惊芯--软核处理器内部设计分析>一书 12.3 ICache结构 OR1200中实现ICache的文件有or1200_ic_top.v.or1200_ic_fsm.v.o ...
- Vboxmanage改动uuid报错的解决的方法
我的环境: Virtualbox 4.3.10 r93012 操作系统:win7 问题:Virtualbox在使用拷贝的虚拟盘时会提示uuid冲突: Because a hard disk with ...
- JAVA入门[17]-ControllerAdvice处理exception
1.关于@ControllerAdvice @ControllerAdvice注解本身已经使用了@Component,因此@ControllerAdvice注解所标注的类将会自动被组件扫描获取到,就像 ...
- ajaxSetup设置Ajax请求的默认值
ajaxSetup() 方法为将来的 AJAX 请求设置默认值.语法$.ajaxSetup({name:value, name:value, ... }) 该参数为带有一个或多个名称/值对的 AJAX ...
- 【SqlServer系列】JSON数据
1 概述 本文将结合MSDN简要概述JSON数据. 2 具体内容 JSON 是一种流行的数据格式,用于在现代 Web 和移动应用程序中交换数据. JSON 还可用于在 Microsoft Az ...