sys.fn_get_audit_file (Transact-SQL)
从由服务器审核创建的审核文件返回信息。 有关详细信息,请参阅SQL Server 审核(数据库引擎)。
语法
fn_get_audit_file ( file_pattern,
{ default | initial_file_name | NULL },
{ default | audit_record_offset | NULL } )
参数
file_pattern
指定要读取的审核文件集的目录(或路径)和文件名。 类型为 nvarchar(260)。 此参数必须包括路径(驱动器盘符或网络共享)和文件名,可以包含通配符。 单个星号 (*) 可用于收集审核文件集中的多个文件。 例如:<路径>\* - 收集指定位置中的所有审核文件。
<路径>\LoginsAudit_{GUID} - 收集具有指定名称和 GUID 对的所有审核文件。
<路径>\LoginsAudit_{GUID}_00_29384.sqlaudit - 收集特定审核文件。
注意 在无文件名模式的情况下传递路径将生成错误。
initial_file_name
指定审核文件集中要开始读取审核记录的特定文件的路径和名称。 类型为 nvarchar(260)。注意 initial_file_name 参数必须包含有效条目或者必须包含默认 | NULL 值。
audit_record_offset
指定一个已知位置,该位置包含为 initial_file_name 指定的文件。 使用此参数时,函数将从缓冲区中紧跟指定偏移量之后的第一个记录开始读取。注意 audit_record_offset 参数必须包含有效条目或者必须包含默认 | NULL 值。 类型为 bitint。
返回的表
下表描述此函数可返回的审核文件内容。
列名 |
类型 |
说明 |
---|---|---|
event_time |
datetime2 |
触发可审核操作的日期和时间。 不可为 null。 |
sequence_number |
int |
跟踪单个审核记录中的记录顺序,该记录太大而无法放在写入缓冲区中以进行审核。 不可为 Null 值。 |
action_id |
varchar(4) |
操作的 ID。 不可为 null。 |
succeeded |
bit 1 = 成功 0 = 失败 |
指示触发事件的操作是否成功。 不可为 Null。 对于除登录事件之外的所有事件,它仅报告权限检查(而不是操作)成功或失败。 |
permission_bitmask |
varbinary(16) |
在某些操作中,这是授予、拒绝或撤消的权限。 |
is_column_permission |
bit 1 = true 0 = false |
标志,用于指示是否为列级别权限。 不可为 null。 当 permission_bitmask = 0 时返回 0。 |
session_id |
smallint |
发生该事件的会话的 ID。 不可为 null。 |
server_principal_id |
int |
在其中执行操作的登录上下文 ID。 不可为 Null 值。 |
database_principal_id |
int |
在其中执行操作的数据库用户上下文 ID。 不可为 Null 值。 如果不适用,则返回 0。 例如,如果是服务器操作,则返回 0。 |
target_server_principal_id |
int |
执行 GRANT/DENY/REVOKE 操作的服务器主体。 不可为 null。 如果不适用,则返回 0。 |
target_database_principal_id |
int |
执行 GRANT/DENY/REVOKE 操作的数据库主体。 不可为 null。 如果不适用,则返回 0。 |
object_id |
int |
发生审核的实体的 ID。 其中包括:
不可为 Null。 如果实体是服务器本身或者没有在对象级别执行审核,则返回 0。 例如,对于 Authentication,则返回 NULL。 |
class_type |
varchar(2) |
发生审核的可审核实体的类型。 不可为 null。 |
session_server_principal_name |
sysname |
会话的服务器主体。 可以为 Null。 |
server_principal_name |
sysname |
当前登录名。 可以为 Null。 |
server_principal_sid |
varbinary |
当前登录名 SID。 可以为 Null。 |
database_principal_name |
sysname |
当前用户。 可以为 Null。 如果不可用,则返回 NULL。 |
target_server_principal_name |
sysname |
操作的目标登录名。 可以为 Null。 如果不适用,则返回 NULL。 |
target_server_principal_sid |
varbinary |
目标登录名的 SID。 可以为 Null。 如果不适用,则返回 NULL。 |
target_database_principal_name |
sysname |
操作的目标用户。 可以为 Null。 如果不适用,则返回 NULL。 |
server_instance_name |
sysname |
发生审核的服务器实例的名称。 使用标准服务器\实例格式。 |
database_name |
sysname |
发生此操作的数据库上下文。 可以为 Null。 对于在服务器级别发生的审核,返回 NULL。 |
schema_name |
sysname |
发生此操作的架构上下文。 可以为 Null。 对于在架构外发生的审核,返回 NULL。 |
object_name |
sysname |
发生审核的实体的名称。 其中包括:
可以为 Null。 如果实体是 Server 自身或者没有在对象级别执行审核,则返回 NULL。 例如,对于 Authentication,则返回 NULL。 |
statement |
nvarchar(4000) |
TSQL 语句(如果存在)。 可以为 Null。 如果不适用,则返回 NULL。 |
additional_information |
nvarchar(4000) |
仅适用于单个事件的唯一信息,以 XML 的形式返回。 有少量的可审核操作包含此类信息。 对于具有与操作相关联的 TSQL 堆栈的操作,将以 XML 格式显示一个级别的 TSQL 堆栈。 该 XML 格式如下: <tsql_stack><frame nest_level = '%u' database_name = '%.*s' schema_name = '%.*s' object_name = '%.*s' /></tsql_stack> Frame nest_level 指示框架的当前嵌套级别。 模块名称表示为由三部分组成的格式(database_name、schema_name 和 object_name)。 将对该模块名称进行分析,以使 '<'、'>'、'/'、'_x' 之类的无效 xml 字符转义。 这些无效字符将转义为 _xHHHH_。 HHHH 代表该字符对应的四位十六进制 UCS-2 代码。 可以为 Null。 如果事件没有报告其他信息,则返回 NULL。 |
file_name |
varchar(260) |
作为记录来源的审核日志文件的路径和名称。 不可为 null。 |
audit_file_offset |
bigint |
包含审核记录的文件中的缓冲区偏移量。 不可为 null。 |
user_defined_event_id |
smallint |
作为 sp_audit_write 参数传递的用户定义事件 ID。 对于系统事件为 NULL(默认值),对于用户定义事件为非零值。 有关详细信息,请参阅 sp_audit_write (Transact-SQL)。 |
user_defined_information |
nvarchar(4000) |
用于记录用户想要通过使用 sp_audit_write 存储过程记录在审核日志中的任何附加信息。 |
注释
如果传递给 fn_get_audit_file 的 file_pattern 参数引用不存在的路径或文件,或者该文件不是审核文件,则会返回 MSG_INVALID_AUDIT_FILE 错误消息。
权限
需要 CONTROL SERVER 权限。
示例
此示例从名为 \\serverName\Audit\HIPPA_AUDIT.sqlaudit 的文件读取。
SELECT * FROM sys.fn_get_audit_file ('\\serverName\Audit\HIPPA_AUDIT.sqlaudit',default,default);
GO
有关如何创建审核的完整示例,请参阅SQL Server 审核(数据库引擎)。
请参阅
参考
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.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)
sys.dm_audit_actions (Transact-SQL)
sys.dm_audit_class_type_map (Transact-SQL)