• 37-SQLServer的审核/审计功能介绍


    一、总结

    1、SQLServer2008开始支持审计功能,审计规范分为服务器级别和数据库级别两种;

    2、无论是服务器级别的审计还是数据库级别的审计,第一步创建审计对象的方式一样,最后创建完都是在实例下的安全性查看;

    3、创建审计对象的时候,不能在创建脚本里直接启用审计(也就是添加state=on),在创建审计规范对象的时候的可以直接在创建脚本里直接添加state=on,直接启用审计规范;

     4、SQLServer审核功能相对而言性能影响较小,审核粒度也非常灵活;

     5、审核的日志文件是二进制的,不能使用文本编辑器直接打开;

    6、在SQLServer中,一个审计对象只能绑定一个审核规范,而一个审核规范可以被多个审计对象使用;

    7、不管是修改审计还是审计规范都得先禁用,再修改,再启用;

    8、不能审核tempdb中的数据库操作;

    二、创建审计对象

    1、创建审计对象

    create server audit MyFileAudit to file(
    filepath='D:sqlaudits',
    maxsize=4gb,
    max_rollover_files=6)
    with(
    on_failure=continue,
    queue_delay=1000
    );

     参数详解:

      maxsize:定义每个审核日志的最大大小是4GB;

      max_rollover_files:定义滚动文件的数目,达到6个文件的时候,开始删除前面的历史记录,复用文件空间;

      on_failure:指明当审核发生错误的时候,是否继续审计,如果指明shutdown,那么将会shutdown整改实例;

      query_delay:指定审核数据写入的延迟时间,1000表示1秒,如果指定0表示实时写入,当然性能也有些影响;

    2、开启审计
    命令:alter server audit MyAudit with(state=on)

    3、禁用审计
    命令:alter server audit MyFileAudit with(state=off)

    4、修改审计选项(修改之前要先禁用审计,修改完之后再启用审计)
    命令:alter server audit MyAudit with(state=off)
              alter server audit MyAudit with (queue_delay=1000)
              alter server audit MyAudit with(state=on)

    5、查看审计的状态(1表示启用,0表示禁用)
    命令:select name,is_state_enabled from sys.server_file_audits

     6、删除审计

    命令:drop  server audit MyFileAudit

    三、创建服务器级别的审核规范

    1、创建服务器级别的审核规范

    create server audit specification CaptureLoginsToFile
    
    for server audit MyAudit
    
    add (failed_login_group),
    
    add (successful_login_group)
    
    with(state=on)
    
    go

     2、修改审核规范

    --(1)禁用审核规范
    
    alter server audit specification CaptureLoginsToFile with (state=off)
    
    --(2)修改审核规范
    
    alter server audit specification CaptureLoginsToFile
    
    add (login_change_password_group),     --改变登录名的密码后,写入审计日志
    
    drop (successful_login_group)               --删除登录成功信息的审计
    
    --(3)启用审核规范
    
    alter server audit specification CaptureLoginsToFile with (state=on

     3、查看审核规范状态

     命令:select name,is_state_enabled from sys.server_audit_specifications

     4、查看审核规范的详细信息

     命令:select * from sys.server_audit_specification_details

     5、删除审计规范

     命令:drop server audit  specification CaptureLoginsToFile

    6、使用sys.[fn_get_audit_file]()函数查看审核日志

     命令:select * from sys.[fn_get_audit_file]('D:sqlauditsMyAudit_C3C37587-2CFA-41C2-90B0-3F87F16135EA_0_132400485274590000.sqlaudit',default,default)

    7、在SSMS里查看审核日志

     

     

    四、创建数据库级别的审核规范

    1、创建审计对象(服务器级别和数据库级别创建方式一致)

    create server audit MyDBAudit to file(
    
    filepath='D:sqlauditsdbaudits',
    
    maxsize=4gb,
    
    max_rollover_files=6)
    
    with(
    
    on_failure=continue,
    
    queue_delay=1000
    
    );

     2、创建数据库级别的审核规范

    use [test]
    
    go
    
    create database audit specification CaptureDBToFile
    
    for server audit MyDBAudit
    
    add (database_object_change_group),
    
    add (select,insert,update,delete on schema::dbo by public)
    
    with(state=on)
    
    go

     3、修改数据库级别的审计规范

    --(1)禁用审核规范
    
    alter database audit specification CaptureDBToFile with (state=off)
    
    --(2)修改审核规范
    
    alter database audit specification CaptureDBToFile
    
    drop (select on schema::dbo by public)    --删除select的审计
    
    --(3)启用审核规范
    
    alter database audit specification CaptureDBToFile with (state=on)

     4、查看审核规范状态

     命令:select name,is_state_enabled from test.sys.database_audit_specifications

     5、查看审计规范的详细信息

     命令:select * from test.sys.database_audit_specification_details

    6、删除审计规范

     命令:drop database audit  specification CaptureDBToFile

    7、使用sys.[fn_get_audit_file]()函数查看审计结果

    select * from sys.[fn_get_audit_file]('D:sqlauditsdbauditsMyDBAudit_A5675035-43BB-4A19-B647-D6792E0120F9_0_132400509506420000.sqlaudit',default,default)

     五、审核功能相关视图

    1、查看审核对象信息
    
    select * from sys.server_file_audits
    
    2、查看服务器级别审核规范
    
    select * from sys.server_audit_specifications
    
    select * from sys.server_audit_specification_details
    
    3、查看数据库级别的审核规范
    
    select * from sys.database_audit_specifications
    
    select * from sys.database_audit_specification_details
    
    4、查看审核对象的状态
    
    select * from sys.dm_server_audit_status
    
    5、查看有所有的操作组
    
    select * from sys.dm_audit_actions  
    
    select * from sys.dm_audit_class_type_map

    参考网址

    https://www.cnblogs.com/lyhabc/p/4074003.html

    ***************************************************

    如下是个人开发系统,欢迎大家体验,纯属个人爱好,想一块玩的,私信。

    易本浪账:www.jialany.com  

    ***************************************************

  • 相关阅读:
    PHP实现http与https转化
    HTTP和HTTPS详解
    如何防止SWF文件被反编译
    Swf Decrypt详解
    PCIE体系结构
    windows设备驱动安装指南
    [转]RegOpenKeyEx函数失败的问题
    用Setup系列函数完成驱动卸载安装[驱动安装卸载程序]
    Skipped Rebuild All: Project with VS2008
    LINK : fatal error LNK1000: Internal error during IncrBuildImage
  • 原文地址:https://www.cnblogs.com/jialanyu/p/13373166.html
Copyright © 2020-2023  润新知