• SQL Server: 在SQL Server 2008中为一批对象添加审核


    今天被问到这样一个问题,SQL Server 2008的审核窗口中,好像每次只能设置针对一个对象(例如表,视图等),能不能对一批对象进行审核呢?

    首先,稍微回顾一下审核功能

    image

    image

    image

    下面是我的回复:

    ==========================================================================

    关于SQL 2008中针对多个对象进行审核的功能。如果通过那个图形化界面进行设置,确实每次只能设置一个对象,即便你选择了多个,也是只有第一个。

    这个问题可以这么理解:微软并不推荐大量的表不分青红皂白地进行审核的,地球人都知道,审核会影响性能。所以,微软限制了每次设置审核的数目,借此提醒管理员思考到底是否真的要这么做。

    但是,如果真的要对大量的对象进行审核,是否就一定没有办法了呢?答案是:不是

    我给你写了一个脚本,演示了如何针对某个架构(Schema)进行审核,也就是说只要是属于该schema的,就都被包含在审核中。

    Schema是SQL Server 2005开始增加的一个新的概念,在大型数据库中,会有大量Schema.

    希望对你有帮助

     

    --第一步:创建服务器审核

    USE [master]

    GO

    CREATE SERVER AUDIT [Test]

    TO FILE

    ( FILEPATH = N'E:\Temp\'

    ,MAXSIZE = 0 MB

    ,MAX_ROLLOVER_FILES = 2147483647

    ,RESERVE_DISK_SPACE = OFF

    )

    WITH

    ( QUEUE_DELAY = 1000

    ,ON_FAILURE = CONTINUE

    ,AUDIT_GUID = 'a511e0ac-50b5-4c75-9cd9-f2bbd06b269f'

    )

    GO

    --将其启动

    ALTER SERVER AUDIT [Test] WITH (STATE = ON)

    --第二步:创建书库审核规范

    USE Northwind

    GO

    --这里是针对架构进行审核,即所有dbo架构下面的对象(表,视图等等)都被审核

    CREATE DATABASE AUDIT SPECIFICATION [demo]

    FOR SERVER AUDIT [Test]

    ADD (INSERT ON SCHEMA::[dbo] BY [dbo])

    WITH (STATE = ON)

    GO

    --第三步:测试(下面分别针对两个表进行插入,但它们都属于dbo架构)

    INSERT INTO Northwind..demo VALUES(1);

    INSERT INTO Northwind..demo2 VALUES(1);

    --第四步:清理测试

    USE [Northwind]

    GO

    IF EXISTS (SELECT * FROM sys.database_audit_specifications WHERE name = N'demo')

    BEGIN

    ALTER DATABASE AUDIT SPECIFICATION [demo] WITH(STATE=OFF)

    DROP DATABASE AUDIT SPECIFICATION [demo]

    END

    GO

    DROP TABLE demo;

    DROP TABLE demo2;

    USE [master]

    GO

    IF EXISTS (SELECT * FROM sys.server_audits WHERE name = N'Test')

    BEGIN

    ALTER SERVER AUDIT [Test] WITH (STATE = OFF)

    DROP SERVER AUDIT [Test]

    END

    GO

     

    从这个例子也可以再一次说明这样一个问题:如果仅仅会使用图形化界面,那么其实很难做好SQL Server的管理或者开发。大家还是要多学习一些脚本的命令。

    本文由作者:陈希章 于 2009/7/14 19:23:30 发布在:http://www.cnblogs.com/chenxizhang/
    本文版权归作者所有,可以转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    更多博客文章,以及作者对于博客引用方面的完整声明以及合作方面的政策,请参考以下站点:陈希章的博客中心
  • 相关阅读:
    C++实现高斯滤波器
    移动通信
    最简单的DLL
    C/C++ 编译和链接过程
    Servlet 详解
    对 Java 集合的巧妙利用
    Java 泛型
    Java 字符编码与解码
    HTTP 400 错误
    a 标签的四种样式
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1523616.html
Copyright © 2020-2023  润新知