审计SELECT语句的SQL Server 2008 T-SQL命令

SQL Server 2008中的SQL审计已经变成一个一流的服务器对象。正如前面一篇文章所提到的,现在你甚至可以审计一个要求使用SQL跟踪或者在前面版本中的其它第三方产品的SELECT语句查询。但是,虽然使用图形用户界面对于处理小的任务是很好的,尤其是第一次学习一些东西时,但是这样做可能是很乏味的,尤其是如果你重复相同的任务时。这篇文章将和前面的文章一样通过同类的Transact-SQL语句使用相同的例子。如果你想审计,我们可以假设审计在数据库中10个或者更多的表,那么这会使你更容易地做到。我也将使用文件系统来存储审计对象。我们将使用CREATE SERVER AUDIT完成这个任务。

-- Create Server Audit object
USE master
CREATE SERVER AUDIT testAudit TO FILE(FILEPATH='C:\Temp\SelectAudit\')
GO

这个服务器审计对象负责搜集你想监测的服务器和/或者数据库级别的行为和行为组并且在实例级别上创建。这也意味着如果你有很多实例在一个服务器上运行,那么你要为每个实例创建服务器审计对象。接着,我们将在适当的数据库中创建一个叫做testAudSpec的数据库审计规范,在本例中,我们将使用AdventureWorks数据库。我们将使用CREATE DATABASE AUDIT SPECIFICATION语句来完成这个任务。

-- Create an audit specification
USE AdventureWorks
GO
CREATE DATABASE AUDIT SPECIFICATION testAudSpec FOR SERVER AUDIT testAudit
ADD (SELECT ON HumanResources.Employee BY Public)
GO

在这里我们所作的是只创建一个数据库审计规范并把它分配到我们之前创建的服务器审计对象中。然后,我们增添数据库级别的可审计的行为名称,在本例中是SELECT语句,然后捕捉所有用户执行的查询。你可以有多个行为或者行为组以及相关的数据库审计规范。你也可以创建一个服务器审计规范,它可以审计服务器级别的行为或行为组,比如跟踪成功或失败的登录,更改角色成员等。SQL Server审计行为组和行为的列表可以从联机帮助和MSCN中得到。

由于默认情况下服务器审计对象和数据库审计规范在创建之后都不能使用,我们需要使它们可用。要验证它们的状态,你可以查询sys.server_file_audits和

sys.database_audit_specifications系统对象。is_state_enabled字段能告诉我们它们的状态。

-- Verify Audit objects if turned on (1 = Enabled)
USE master
SELECT is_state_enabled,* FROM sys.server_file_audits
USE AdventureWorks
SELECT is_state_enabled,* FROM sys.database_audit_specifications
GO

时间: 2024-08-01 23:53:47

审计SELECT语句的SQL Server 2008 T-SQL命令的相关文章

sql点滴38—SQL Server 2008和SQL Server 2008 R2导出数据的选项略有不同

原文:sql点滴38-SQL Server 2008和SQL Server 2008 R2导出数据的选项略有不同 说明:       以前要将一个表中的数据导出为脚本,只有用存储过程.现在在SQL Server 2008中增加了一个新特性,除了导出表的定义外,还支持将表中的数据导出为脚本. 步骤:     右击需要导出数据的数据库,在弹出式菜单中选择"任务"下的"生成脚本"选项      在第二步选择"高级选项"如果不是2008(R2)的选择 &

SQL Server 2008使用SQL INSERT多笔Record

此功能在MySQL在3.22.5之后就有的功能,SQL Server在这个SQL Server 2008版本才加入此功能 -- 切换http://www.aliyun.com/zixun/aggregation/20522.html">测试数据库USE MyDBGO -- 建一个测试6184.html">数据表CREATE TABLE [mytable](myid nvarchar(10),givenName nvarchar(50),email nvarchar(50))

SQL Server 2008如何用命令修改字段

环境:SQL Server 2008 R2 问题:修改字段出错(将Course表的课程名字段增大长度) 解 决: 错误命令版本1: alter table Course modify column cname char(20);--'modify' 附近有语法错误. 错误命令版本2: alter table Course modify cname char(20);--'modify' 附近有语法错误. 正确的命令: alter table Course alter column cname c

SQL Server 2008、SQL Server 2008R2 自动备份数据库

让SQL Server 2008自动备份数据库,需要建立一个SQL Server作业,并启动SQL Server代理,使该作业定期运行. 具体来说,可以按以下步骤进行: 一.打开SQL Server Management Studio,在对象资源管理器中,确认SQL Server代理已启动,若没有,右击SQL Server代理节点,点击"启动". 二.展开SQL Server 代理节点,在其下的作业文件夹上右击,选择"新建作业". 三.在弹出的"新建作业&

SQL Server 2008为SQL Server代理服务提供的凭据无效 解决办法

在Windows Server 2008安装SQL Server 2008出现下面的问题: 安装时在"服务器配置"环节出现以下问题: 为sql server代理服务提供的凭据无效 为sql server服务指定的凭据无效 为analysis services服务提供的凭据无效 为reporting services服务提供的凭据无效 为integration services服务提供的凭据无效   解决方法也是非常简单的. 解决方法 SQL Server代理 选 SYSTEM SQL

Sql Server 2008 [Microsoft SQL Server,错误:2]

看着这个图是不是很揪心: 其实我比你更揪心! (一开始我以为是SQL Server 2008服务没启动,然后在run -> cmd -> net start masqlserver 但是提示你,不可用. 所以,我重装了3遍,很悲催吧!) 看到这个问题,我的第一反应就是你是先安装的Visual Studio 2010 Ultimate(其实,我也是这么干的) 然后再装的SQL Server 2008的, 是这样的吧. 解决办法很简单: 卸掉Visual Studio 2010 Ultimate

SQL Server 2008中SQL之WaitFor使用介绍_mssql2008

看MSDN:http://msdn.microsoft.com/zh-cn/library/ms187331.aspx 语法为: WAITFOR { DELAY 'time_to_pass' | TIME 'time_to_execute' | [ ( receive_statement ) | ( get_conversation_group_statement ) ] [ , TIMEOUT timeout ]} 以下示例在晚上 10:20 (22:20) 执行存储过程 sp_update_

SQL Server版本号查看sql语句(SQL Server 2000 & 2005 & 2008)

今天要查询自己的装的sqlserver2008 是否是R2版本,搜索了下,发现很多人查询此问题,现在记录如下,通过版本命令查询 同时也了解了哥哥sql server的对应版本好,一看就非常清晰了,记录下 1.查看 SQL Server 2005/2008 版本号  代码如下 复制代码 select serverproperty('productversion') ,serverproperty('productlevel') ,serverproperty('edition') 下面是 SQL

SQL Server 2008性能故障排查(二)——CPU

原文:SQL Server 2008性能故障排查(二)--CPU 承接上一篇:SQL Server 2008性能故障排查(一)--概论 说明一下,CSDN的博客编辑非常不人性化,我在word里面都排好了版,贴上来就乱得不成样了.建议CSDN改进这部分.也请大家关注内容不要关注排版.同时在翻译的过程中本人也整理了一次思路,所以还似乎非常愿意翻译,虽然有点自娱自乐,但是分享给大家也是件好事 CPU 瓶颈:CPU瓶颈可能因为某个负载所需的硬件资源不足而引起.但是过多的CPU使用通常可以通过查询优化(特

SQL server 2008 触发器

问题描述 SQL server 2008 触发器 sql server 中创建触发器,当表中的任意一列的数据更新时除了read_flag,将read_flag的置为0,这个触发器怎么写, CREATE TRIGGER trig_wmwhse4_SKU on wmwhse4.SKU instead of update as begin if (exists (select 1 from inserted a ,deleted b where a.STORERKEY = b.STORERKEY an