SqlServer 审核(脚本示例)

此文章主要是脚本示例,更多说明看官方文档:审核(数据库引擎)

--	必须在 master 数据库中创建审核
USE master;
GO

--	创建服务器审核对象
--	https://msdn.microsoft.com/zh-cn/library/cc280448(v=sql.100).aspx
CREATE SERVER AUDIT [Audit_ToFile]
TO FILE (		--目标类型:FILE(文件)/APPLICATION_LOG(应用程序日志)/SECURITY(安全日志)
  FILEPATH = N'E:\'			--审核日志的路径
, MAXSIZE = 100MB			--审核文件最大大小(MB、GB、TB 或 UNLIMITED)
, MAX_ROLLOVER_FILES = 5	--最大文件数(或者UNLIMITED)
, RESERVE_DISK_SPACE = ON	--预先分配MAXSIZE大小(MAXSIZE<>UNLIMITED 时适用。默认:OFF)
)
WITH (
  QUEUE_DELAY = 1000		--强制审核前时间,默认1000(毫秒),值 0 指示同步传递
, ON_FAILURE = CONTINUE		--无法写入目标文件时:CONTINUE(默认) | SHUTDOWN(需要权限)
--, AUDIT_GUID = <GUID>		--数据库镜像使用
)
GO

--	更改服务器审核对象(与创建格式一样)
--	https://msdn.microsoft.com/zh-cn/library/cc280563%28v=sql.100%29.aspx?f=255&MSPPError=-2147217396
ALTER SERVER AUDIT [Audit_ToFile]
MODIFY NAME = [Audit_ToFile]		--更改审核名称
GO

ALTER SERVER AUDIT [Audit_ToFile]
WITH (STATE = ON )					--启用审核收集记录
GO

--	删除审核(必须禁用审核收集记录)
--	https://msdn.microsoft.com/zh-cn/library/cc280899(v=sql.100).aspx
ALTER SERVER AUDIT [Audit_ToFile]
WITH (STATE = OFF )
GO

IF  EXISTS (SELECT * FROM sys.server_audits WHERE name = N'Audit_ToFile')
DROP SERVER AUDIT [Audit_ToFile]
GO

--	创建服务器审核规范对象
--	https://msdn.microsoft.com/zh-cn/library/cc280767%28v=sql.100%29.aspx?f=255&MSPPError=-2147217396
CREATE SERVER AUDIT SPECIFICATION [Audit_Specification_Server]
FOR SERVER AUDIT [Audit_ToFile]	--应用此规范的审核名称
	ADD ( FAILED_LOGIN_GROUP )	--服务器级别可审核操作组的名称 (如 登录失败审核)
WITH ( STATE = ON )				--允许或禁止审核收集此审核规范的记录
GO

--	SQL Server 审核操作组和操作
--	https://msdn.microsoft.com/zh-cn/library/cc280663%28v=sql.100%29.aspx?f=255&MSPPError=-2147217396

--	更改服务器审核规范对象(必须将审核规范的状态设置为 OFF 选项)
--	https://msdn.microsoft.com/zh-cn/library/cc280682(v=sql.100).aspx
ALTER SERVER AUDIT SPECIFICATION [Audit_Specification_Server]
WITH ( STATE = OFF )
GO

ALTER SERVER AUDIT SPECIFICATION [Audit_Specification_Server]
FOR SERVER AUDIT [Audit_ToFile]
	ADD ( SUCCESSFUL_LOGIN_GROUP ) ,
	ADD ( LOGOUT_GROUP ),
	DROP ( LOGIN_CHANGE_PASSWORD_GROUP )
WITH ( STATE = ON )
GO
/*
必须将审核规范的状态设置为 OFF 选项,以便更改审核规范,否则出现错误:

消息 33229,级别 16,状态 1,第 1 行
禁用审核规范时,对审核规范的更改必须已完成。
*/

--	删除服务器审核规范对象(必须将审核规范的状态设置为 OFF 选项)
--	https://msdn.microsoft.com/zh-cn/library/cc280603%28v=sql.100%29.aspx?f=255&MSPPError=-2147217396
ALTER SERVER AUDIT SPECIFICATION [Audit_Specification_Server]
WITH ( STATE = OFF )
GO

IF  EXISTS (SELECT * FROM sys.server_audit_specifications WHERE name = N'Audit_Specification_Server')
DROP SERVER AUDIT SPECIFICATION [Audit_Specification_Server]
GO

--	创建数据库审核规范对象 (只对当前数据库创建审核)
--	https://msdn.microsoft.com/zh-cn/library/cc280404%28v=sql.100%29.aspx?f=255&MSPPError=-2147217396
USE AdventureWorks2008R2;
GO

CREATE DATABASE AUDIT SPECIFICATION [Audit_Specification_Database]
FOR SERVER AUDIT [Audit_ToFile]
	ADD (SCHEMA_OBJECT_CHANGE_GROUP)
WITH ( STATE = ON )
GO

CREATE DATABASE AUDIT SPECIFICATION [Audit_Specification_Database]
FOR SERVER AUDIT [Audit_ToFile]
	ADD ( SELECT ON dbo.ErrorLog BY [dbo])
WITH ( STATE = ON )
GO

--	更改数据库审核规范对象 (必须禁止审核收集此审核规范的记录)
--	https://msdn.microsoft.com/zh-cn/library/cc280645%28v=sql.100%29.aspx?f=255&MSPPError=-2147217396
ALTER DATABASE AUDIT SPECIFICATION [Audit_Specification_Database]
WITH ( STATE = OFF )
GO

ALTER DATABASE AUDIT SPECIFICATION [Audit_Specification_Database]
FOR SERVER AUDIT [Audit_ToFile]
	ADD ( UPDATE,INSERT,DELETE ON dbo.ErrorLog BY [dbo]),
	DROP ( SELECT ON dbo.ErrorLog BY [dbo])
WITH ( STATE = ON )
GO

--	删除数据库审核规范对象 (必须禁止审核收集此审核规范的记录)
--	https://msdn.microsoft.com/zh-cn/library/cc280479%28v=sql.100%29.aspx?f=255&MSPPError=-2147217396
ALTER DATABASE AUDIT SPECIFICATION [Audit_Specification_Database]
WITH ( STATE = OFF )
GO

IF  EXISTS (SELECT * FROM sys.database_audit_specifications WHERE name = N'Audit_Specification_Database')
DROP DATABASE AUDIT SPECIFICATION [Audit_Specification_Database]
GO

--	当删除数据库AdventureWorks2008R2的表ErrorLog时

delete from  dbo.ErrorLog

--	审核日志记录如下

--	相关视图查询
select * from sys.server_audits							--审核对象
select * from sys.dm_server_audit_status				--审核的当前状态
select * from sys.server_audit_specifications			--服务器审核规范对象
select * from sys.server_audit_specification_details	--服务器审核规范对象的审核操作
select * from sys.database_audit_specifications			--数据库审核规范对象
select * from sys.database_audit_specification_details	--数据库审核规范对象的审核操作
select * from sys.dm_audit_actions						--所有可用的操作组
select * from sys.dm_audit_class_type_map				--审核日志中的字段映射
select * from sys.server_file_audits		--审核文件信息
select * from sys.fn_get_audit_file('E:\Audit_ToFile_*.sqlaudit',default,default);
时间: 2024-12-16 13:44:14

SqlServer 审核(脚本示例)的相关文章

linux添加开机自启动脚本示例详解

来源: linux添加开机自启动脚本示例详解 linux下(以RedHat为范本)添加开机自启动脚本有两种方法,先来简单的; 一.在/etc/rc.local中添加如果不想将脚本粘来粘去,或创建链接什么的,则:step1. 先修改好脚本,使其所有模块都能在任意目录启动时正常执行;step2. 再在/etc/rc.local的末尾添加一行以绝对路径启动脚本的行;如:$ vim /etc/rc.local#!/bin/sh## This script will be executed *after*

解决&#160;SqlServer执行脚本,文件过大,内存溢出问题

原文:解决 SqlServer执行脚本,文件过大,内存溢出问题 执行.sql脚本文件,如果文件较大时,执行会出现内存溢出问题,可用命令替代 cmd 中输入 osql -S 127.0.0.1,8433 -U sa -P sa -i d:\sql.sql ,-S 服务器名 -U 用户名 -P 密码 -i 文件地址,等待执行完毕即可 以上在sql2008R2下执行通过 如果数据库是 sql2008的 请将 osql 修改成为 sqlcmd 即可

MeteoInfo脚本示例:GrADS to netCDF

这里给出一个将GrADS数据文件转为netCDF数据文件的脚本示例程序,其它格式数据转netCDF可以参考: #----------------------------------------------------- # Author: Yaqiang Wang # Date: 2015-3-12 # Purpose: Convert CUACE grads data to netCDF (CUACE/Dust) # Note: Sample #------------------------

MeteoInfoLab脚本示例:FY-3C全球火点HDF数据

FY-3C全球火点HDF数据包含一个FIRES二维变量,第一维是火点数,第二维是一些属性,其中第3.4列分别是火点的纬度和经度.下面的脚本示例读出所有火点经纬度并绘图. 脚本程序: #Add data file fn = 'D:/Temp/hdf/FY3C_VIRRX_GBAL_L2_GFR_MLT_GLL_20150811_POAD_1000M_MS.HDF' f = addfile(fn) #Get data variable v = f['FIRES'] #Get data array d

shell脚本程序中的部分常用环境变量和参数变量的说明以及简单shell脚本示例

环境变量 $HOME 当前用户的家目录 $PATH 以冒号分隔的用来搜索命令的目录列表 $PS1 命令提示符,通常是$字符,但在bash中,可以使用一些更复杂的值.例如,字符串[\[email protected]\h\w]$就是一个流行的默认值,它给出用户名/机器名和当前的目录名,当然也包括一个$提示符. $PS2 二级提示符,用来表示后续的输入,通常是 > 字符. $IFS 输入域分隔符.当shell读取输入时,它给出用来分隔单词的一组字符,他们通常是空格,制表符和换行符. $0 shell

Linux shell脚本示例(四)

Example No. 2作为shell编写人员,经常面对数据格式不一致的问题,将数据标准话后输出是一个需要解决问题,本示例以MySQL的时间为例,脚本输入月.日.年三个参数,将其标准化后输出,月份以英文标准输出,年份如果是4个数字,直接输出,如果是0~69,则年份为2000~2069,如果是70~99,则年份为1970~1999:脚本示例: #!/bin/bash #shell name:shell_format.sh #author by woon #数据标准化输出示例 Month_to_n

MeteoInfo脚本示例:Trajectory

示例读取HYSPLIT模式输出的气团轨迹数据文件,生成轨迹图层,并显示轨迹各节点的气压图. 脚本程序: f = addfile_hytraj('D:/MyProgram/Distribution/java/MeteoInfo/MeteoInfo/sample/HYSPLIT/tdump') tlayer = f.trajlayer() stlayer = f.trajsplayer() axesm(position=[0.1,0.4,0.8,0.6]) mlayer = shaperead('D

SqlServer参数化脚本与自动参数化(简单参数化)

如果执行不带参数的SQL语句,SQL Server会在内部对该语句进行参数化以增加将其与现有执行计划相匹配的可能性.此过程称为简单参数化(在SQL Server 2000中,称为自动参数化),最终起到执行计划重用的效果. --从数据缓冲池中删除所有缓存 DBCC DROPCLEANBUFFERS GO --从执行计划缓冲区删除所有缓存的执行计划 DBCC FREEPROCCACHE GO --执行不带参数的SQL语句,SQL Server会在内部对该语句进行参数化以增加将其与现有执行计划相匹配的

MeteoInfoLab脚本示例:创建netCDF文件(合并文件)

在MeteoInfoLab中增加了创建netCDF文件并写入数据的功能,这里利用合并多个netCDF文件为一个新的netCDF文件为例. 1.创建一个可写入的netCDF文件对象(下面用ncfile表示),用addfile函数,第一个参数是文件名,第二次参数'c'表示创建新的netCDF文件.ncfile = addfile(outfn, 'c') 2.添加维(Dimensions),用ncfile的adddim函数,两个参数分别是维名称和维长度.stn = 26564stdim = ncfil