SQL Server 审核记录
适用范围:SQL Server
使用 SQL Server 审核功能,可以对服务器级别和数据库级别事件组和事件进行审核。 有关详细信息,请参阅 SQL Server 审核(数据库引擎)。 SQL Server。
审核由零个或多个审核操作项组成,这些操作项会记录到审核“ 目标”。 审核目标可以是二进制文件、Windows 应用程序事件日志或 Windows 安全事件日志。 发送到目标的记录可以包含下表中介绍的元素:
列名 | 说明 | 类型 | 始终可用 |
---|---|---|---|
event_time | 触发可审核操作的日期/时间。 | datetime2 | 是 |
sequence_no | 跟踪单个审核记录中的记录顺序,该记录太大而无法放在写入缓冲区中以进行审核。 | int | 是 |
action_id | 操作的 ID 提示:若要将 action_id 用作谓词,必须将它从字符串转换为数值。 有关详细信息,请参阅 Filter SQL Server Audit on action_id / class_type predicate(使用 action_id / class_type 谓词筛选 SQL Server 审核)。 |
varchar(4) | 是 |
succeeded | 指示触发审核事件的操作的权限检查是否成功或失败。 | bit - 1 = 成功, 0 = 失败 |
是 |
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。 此 ID 可以是: 服务器对象 数据库 数据库对象 架构对象 |
int | 否 |
target_server_principal_id | 可审核操作适用的服务器主体。 | int | 是 |
target_database_principal_id | 可审核操作适用的数据库主体。 | int | 否 |
class_type | 发生审核的可审核实体的类型。 | varchar(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 | 发生审核的实体的名称。 此名称可以是: 服务器对象 数据库 数据库对象 架构对象 Transact-SQL 语句(如有) |
sysname | 否 |
语句 | TSQL 语句(如果有) | nvarchar(4000) | 否 |
additional_information | 有关此事件的其他任何信息,存储为 XML。 | nvarchar(4000) | 否 |
注解
某些操作不填充列的值,这是因为它可能不适用于此操作。
SQL Server 审核可以为审核记录中的字符字段存储 4000 个数据字符。 当可审核操作返回的 additional_information 和 statement 值返回的字符超过 4000 个时, sequence_no 列用于将多个记录写入到单个审核操作的审核报表中以记录此数据。 过程如下:
statement 列分为 4000 个字符。
SQL Server 审核作为具有部分数据的审核记录的第一行写入。 所有其他字段在每一行中是重复的。
sequence_no 值是递增的。
此过程将一直重复,直至记录了所有数据为止。
可以使用 sequence_no 值按顺序读取行以及 event_Time、 action_id 和 session_id 列来连接数据,从而标识操作。
相关内容
CREATE SERVER AUDIT (Transact-SQL)
ALTER SERVER AUDIT (Transact-SQL)
DROP SERVER AUDIT (Transact-SQL)
CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)
ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)
DROP SERVER AUDIT SPECIFICATION (Transact-SQL)
CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)
ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL)
DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL)
sys.fn_get_audit_file (Transact-SQL)
sys.server_audits (Transact-SQL)
sys.server_file_audits (Transact-SQL)
sys.server_audit_specifications (Transact-SQL)
sys.server_audit_specification_details (Transact-SQL)
sys.database_audit_specifications (Transact-SQL)
sys.database_audit_specification_details (Transact-SQL)
sys.dm_server_audit_status (Transact-SQL)