sys.fn_get_audit_file (Transact-SQL)
Возвращает сведения из файла аудита, созданного аудитом сервера в SQL Server. Дополнительные сведения см. в разделе Подсистема аудита SQL Server (Database Engine).
Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии). |
Cинтаксические обозначения в Transact-SQL
Синтаксис
fn_get_audit_file ( file_pattern,
{ default | initial_file_name | NULL },
{ default | audit_record_offset | NULL } )
Аргументы
file_pattern
Указывает каталог или путь и имя файла для файла аудита, который предстоит прочитать. Имеет тип nvarchar(260). Этот аргумент должен содержать как путь (букву диска или сетевой ресурс), так и имя файла, которое может включать символ-шаблон. Одна звездочка (*) может быть использована для выбора нескольких файлов из набора файлов аудита. Например:<path>\* — собрать все файлы аудита в указанном месте;
<путь>\LoginsAudit_{GUID} ― собрать все файлы аудита, которые имеют указанное имя и идентификатор GUID.
<path>\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) |
Идентификатор действия. Не допускает значения NULL. |
|
succeeded |
bit 1 = успешное завершение; 0 = неуспешное завершение. |
Показывает, было ли успешным действие, запустившее событие. Не допускает значения NULL. Для всех событий, отличных от событий имени входа, при этом формируются только сообщения о том, была ли проверка разрешения выполнена успешно или окончилась неудачей, а не сообщения о самой операции. |
|
permission_bitmask |
varbinary(16) |
В некоторых действиях это предоставленные, запрещенные или отмененные разрешения. |
|
is_column_permission |
bit 1 = true; 0 = false. |
Флаг, обозначающий разрешение уровня столбца. Не допускает значения NULL. Возвращает 0, если permission_bitmask = 0. |
|
session_id |
smallint |
Идентификатор сеанса, во время которого произошло событие. Не допускает значения NULL. |
|
server_principal_id |
int |
Идентификатор контекста имени входа, в котором выполнено действие. Не допускает значения NULL. |
|
database_principal_id |
int |
Идентификатор контекста пользователя базы данных, в котором выполнено действие. Не допускает значения NULL. Поддерживает 0, если это неприменимо. Например, операция сервера. |
|
target_server_principal_id |
int |
Участник на уровне сервера, над которым выполняется операция GRANT/DENY/REVOKE. Не допускает значения NULL. Если неприменимо, возвращается значение 0. |
|
target_database_principal_id |
int |
Участник базы данных, над которым выполняется операция GRANT/DENY/REVOKE. Не допускает значения NULL. Если неприменимо, возвращается значение 0. |
|
object_id |
int |
Идентификатор сущности, над которой выполнен аудит. Возможны следующие сущности:
Не допускает значения NULL. Возвращает 0, если сущностью является сам сервер или если аудит не выполняется на уровне объекта. Например, проверка подлинности. |
|
class_type |
varchar(2) |
Тип доступной для аудита сущности, для которой проводится аудит. Не допускает значения NULL. |
|
session_server_principal_name |
sysname |
Участник на уровне сервера для сеанса. Допускает значение NULL. |
|
server_principal_name |
sysname |
Текущее имя входа. Допускает значение NULL. |
|
server_principal_sid |
varbinary |
Идентификатор безопасности текущего имени входа. Допускает значение NULL. |
|
database_principal_name |
sysname |
Текущий пользователь. Допускает значение NULL. Возвращает значение NULL, если недоступно. |
|
target_server_principal_name |
sysname |
Целевое имя входа действия. Допускает значение NULL. Если неприменимо, возвращается значение NULL. |
|
target_server_principal_sid |
varbinary |
Идентификатор безопасности целевого имени входа. Допускает значение 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. Возвращает NULL, если сущностью является сам сервер или если аудит не выполняется на уровне объекта. Например, проверка подлинности. |
|
statement |
nvarchar(4000) |
Инструкция TSQL (если существует). Допускает значение NULL. Если неприменимо, возвращается значение NULL. |
|
additional_information |
nvarchar(4000) |
Уникальные сведения, применимые только к одиночному событию, возвращаются в формате XML. Немногие действия, доступные для аудита, содержат сведения этого вида. Для действий, имеющих связанный с ними стек TSQL, отображается один уровень стека TSQL в формате XML. Используется следующий формат 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). При анализе имени модуля экранируются символы, недопустимые в XML, такие как «<», «>», «/», «_x». Они представляются в виде _xHHHH_. Здесь HHHH обозначает четырехразрядный шестнадцатеричный код символа в UCS-2. Допускает значение NULL. Возвращает NULL, если событие не сообщает дополнительных сведений. |
|
file_name |
varchar(260) |
Путь и имя файла журнала аудита, из которого получена запись. Не допускает значения NULL. |
|
audit_file_offset |
bigint |
Смещение буфера в файле, который содержит запись аудита. Не допускает значения NULL. |
|
user_defined_event_id |
smallint |
Определенный пользователем идентификатор события, переданный хранимой процедуре sp_audit_write в качестве аргумента. NULL для системных событий (по умолчанию), и ненулевой идентификатор для определяемого пользователем события. Дополнительные сведения см. в разделе sp_audit_write (Transact-SQL).
|
|
user_defined_information |
nvarchar(4000) |
Используется для записи любой дополнительной информации, которую пользователю необходимо записать в журнал аудита с помощью хранимой процедуры sp_audit_write.
|
Замечания
Если аргумент file_pattern, переданный в функцию fn_get_audit_file, ссылается на несуществующий путь или файл, не являющийся файлом аудита, возвращается сообщение об ошибке 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 (Database Engine).
См. также
Справочник
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_specification (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)