创建服务器审核和数据库审核规范

本主题介绍如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2014 中创建服务器审核和数据库审核规范。

审核 SQL Server 或 SQL Server 数据库的实例涉及跟踪和记录系统上发生的事件。 SQL Server Audit 对象收集要监视的服务器级或数据库级作和作组的单个实例。 这种审核处于 SQL Server 实例级别。 每个 SQL Server 实例可以包含多个审计。 Database-Level Audit Specification 对象属于审核。 针对每个审核,您可以为每个 SQL Server 数据库创建一个数据库审核规范。 有关详细信息,请参阅 SQL Server 审核(数据库引擎)

本主题内容

在您开始之前

局限性与限制

数据库审核规范是驻留在给定数据库中的非安全对象。 创建数据库审核规范时,该规范处于禁用状态。

在用户数据库中创建或修改数据库审核规范时,请勿在服务器范围对象(如系统视图)上包括审核作。 在包含服务器范围对象的情况下,将创建审核记录。 不过,服务器范围内的对象将不会被包含,并且不会返回任何错误。 若要审核服务器范围对象,请使用 master 数据库中的数据库审核规范。

数据库审核规范驻留在创建它们的数据库中,但系统数据库除外 tempdb

安全

权限

  • 具有 ALTER ANY DATABASE AUDIT 权限的用户可以创建数据库审核规范并将其绑定到任何审核。

  • 创建数据库审核规范后,可以使用 CONTROL SERVER、ALTER ANY DATABASE AUDIT 权限或 sysadmin 帐户的主体查看该规范。

使用 SQL Server Management Studio

创建服务器审计

  1. 在对象资源管理器中,展开 “安全 ”文件夹。

  2. 右键单击“ 审核” 文件夹,然后选择“ 新建审核...”。有关详细信息,请参阅 创建服务器审核和服务器审核规范

  3. 选择完选项后,单击“ 确定”。

创建数据库级审核规范

  1. 在对象资源管理器中,展开要在其中创建审核规范的数据库。

  2. 展开 “安全 ”文件夹。

  3. 右键单击 “数据库审核规范 ”文件夹,然后选择“ 新建数据库审核规范...”

    创建数据库审核规范 ”对话框中提供了以下选项。

    名称
    数据库审核规范的名称。 当您创建新的服务器审核规范时,会自动生成,但该规范是可编辑的。

    审核
    现有数据库审计的名称。 键入审核的名称或从列表中选择它。

    审核动作类型
    指定要捕获的数据库级审核操作组和审核操作。 有关数据库级审核操作组和审核操作的列表及它们所包含事件的描述,请参阅 SQL Server 审核操作组和操作

    对象架构
    显示指定 对象名称的架构。

    对象名称
    要审核的对象的名称。 这仅适用于审核操作,它不适用于审核组。

    省略号 (...)
    打开 “选择对象 ”对话框,根据指定的 审核作类型浏览和选择可用对象。

    主体名称
    要根据要审核的对象筛选审核的帐户。

    省略号 (...)
    打开 “选择对象 ”对话框,根据指定的 对象名称浏览和选择可用对象。

  4. 选择完选项后,单击“ 确定”。

使用 Transact-SQL

创建服务器审计

  1. “对象资源管理器” 中,连接到某个数据库引擎实例。

  2. 在标准栏上,单击“新建查询”

  3. 将以下示例复制并粘贴到查询窗口中,然后单击 执行

    USE master ;  
    GO  
    -- Create the server audit.   
    CREATE SERVER AUDIT Payrole_Security_Audit  
        TO FILE ( FILEPATH =   
    'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA' ) ;   
    GO  
    -- Enable the server audit.   
    ALTER SERVER AUDIT Payrole_Security_Audit   
    WITH (STATE = ON) ;  
    

创建数据库级审核规范

  1. “对象资源管理器” 中,连接到某个数据库引擎实例。

  2. 在标准栏上,单击“新建查询”

  3. 将以下示例复制并粘贴到查询窗口中,然后单击 执行。 该示例创建一个名为Audit_Pay_Tables的数据库审计规范,该规范根据上面定义的服务器审计,用于审核dbo用户对HumanResources.EmployeePayHistory表执行的 SELECT 和 INSERT 语句。

    USE AdventureWorks2012 ;   
    GO  
    -- Create the database audit specification.   
    CREATE DATABASE AUDIT SPECIFICATION Audit_Pay_Tables  
    FOR SERVER AUDIT Payrole_Security_Audit  
    ADD (SELECT , INSERT  
         ON HumanResources.EmployeePayHistory BY dbo )   
    WITH (STATE = ON) ;   
    GO  
    
    

有关详细信息,请参阅 CREATE SERVER AUDIT(Transact-SQL)CREATE DATABASE AUDIT SPECIFICATION(Transact-SQL)。