SQL Server 审核记录

使用 SQL Server 审核功能,可以对服务器级别和数据库级别事件组和事件进行审核。有关详细信息,请参阅了解 SQL Server 审核。SQL Server.

审核由零个或多个审核操作项组成,这些操作项会记录到审核“目标”。审核目标可以是二进制文件、Windows 应用程序事件日志或 Windows 安全事件日志。发送到目标的记录可以包含下表中介绍的元素。

列名

说明

类型

始终可用

event_time

触发可审核操作的日期/时间。

datetime2

sequence_no

跟踪因过大而在审核的写缓冲区中无法容纳的单个审核记录中的记录顺序。

int

action_id

操作的 ID

char(4)

succeeded

指示触发事件的操作是否成功

bit – 1 = Success,0 = Fail

permission_bitmask

当适用时,显示授予、拒绝或撤消的权限

bigint

is_column_permission

指示列级别权限的标志

bit – 1 = True, 0 = False

session_id

发生该事件的会话 ID。

int

server_principal_id

在其中执行操作的登录上下文 ID。

int

database_principal_id

在其中执行操作的数据库用户上下文 ID。

int

object_ id

发生审核的实体的主 ID。这包括:

  • 服务器对象

  • 数据库

  • 数据库对象

  • 架构对象

int

target_server_principal_id

可审核操作适用的服务器主体。

int

target_database_principal_id

可审核操作适用的数据库主体。

int

class_type

发生审核的可审核实体的类型。

char(2)

session_server_principal_name

会话的服务器主体。

sysname

server_principal_name

当前登录名。

sysname

server_principal_sid

当前登录名 SID。

varbinary

database_principal_name

当前用户。

sysname

target_server_principal_name

操作的目标登录名。

sysname

target_server_principal_sid

目标登录名的 SID。

varbinary

target_database_principal_name

操作的目标用户。

sysname

server_instance_name

发生审核的服务器实例的名称。使用标准计算机\实例格式。

nvarchar(120)

database_name

发生此操作的数据库上下文。

sysname

schema_name

发生此操作的架构上下文。

sysname

object_name

发生审核的实体的名称。这包括:

  • 服务器对象

  • 数据库

  • 数据库对象

  • 架构对象

  • TSQL 语句(如果有)

sysname

statement

TSQL 语句(如果有)

nvarchar(4000)

additional_information

有关此事件的其他任何信息,存储为 XML。

nvarchar(4000)

注释

某些操作不填充列的值,这是因为它可能不适用于此操作。

SQL Server 审核可以为审核记录中的字符字段存储 4000 个数据字符。当可审核操作返回的 additional_informationstatement 值返回的字符超过 4000 个时,sequence_no 列用于将多个记录写入到单个审核操作的审核报表中以记录此数据。该过程如下所示:

  • statement 列分为 4000 个字符。

  • SQL Server 审核作为具有部分数据的审核记录的第一行写入。所有其他字段在每一行中是重复的。

  • sequence_no 值是递增的。

  • 此过程将一直重复,直至记录了所有数据为止。

可以使用 sequence_no 值按顺序读取行以及 event_Timeaction_idsession_id 列来连接数据,从而标识操作。

请参阅

参考

概念