加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_宿迁站长网 (https://www.0527zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2016-01-19 21:47:31 所属栏目:MsSql教程 来源:网络整理
导读:SQL Server 2008中的SQL审计已经变成一个一流的服务器对象。正如前面一篇文章所提到的,现在你甚至可以审计一个要求使用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:TempSelectAudit')
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

(编辑:云计算网_宿迁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读