sys.fn_get_audit_file (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics
Возвращает сведения из файла аудита, созданного аудитом сервера в SQL Server. Дополнительные сведения см. в статье Аудит SQL Server (ядро СУБД).
Примечание.
Для База данных SQL Azure вместо этого рекомендуется использовать sys.fn_get_audit_file_v2. sys.fn_get_audit_file_v2
предоставляет фильтрацию на основе времени как на уровне файлов, так и записей, обеспечивая значительные улучшения производительности, особенно для запросов, предназначенных для определенных диапазонов времени.
Соглашения о синтаксисе Transact-SQL
Синтаксис
fn_get_audit_file ( file_pattern ,
{ default | initial_file_name | NULL } ,
{ default | audit_record_offset | NULL } )
Аргументы
file_pattern
Указывает каталог или путь и имя файла для файла аудита, который предстоит прочитать. Тип nvarchar (260).
Передача пути без шаблона имени файла приводит к ошибке.
Этот аргумент должен содержать как путь (букву диска или сетевой ресурс), так и имя файла, которое может включать символ-шаблон. Для сбора нескольких файлов из набора файлов аудита можно использовать одну звездочку (*). Например:
\<path>\*
— сбор всех файлов аудита в указанном расположении.<path>\LoginsAudit_{GUID}*
— соберите все файлы аудита с указанным именем и парой GUID.<path>\LoginsAudit_{GUID}_00_29384.sqlaudit
— сбор определенного файла аудита.
initial_file_name
Указывает путь и имя файла для определенного файла в наборе файлов аудита, из которого предстоит начать чтение записей аудита. Тип nvarchar (260).
Аргумент initial_file_name должен содержать допустимые записи или содержать default
NULL
либо значение.
audit_record_offset
Указывает известное расположение с файлом, указанным для initial_file_name. Если этот аргумент используется, функция начинает считывать в первую запись буфера сразу после указанного смещения.
Аргумент audit_record_offset должен содержать допустимые записи или содержать default
NULL
либо значение. Тип bigint.
Возвращаемые таблицы
В следующей таблице описано содержимое файла аудита, которое может возвращаться этой функцией.
Имя столбца | Тип | Описание |
---|---|---|
event_time |
datetime2 | Дата и время срабатывания действия, доступного для аудита. Не допускает значения NULL. |
sequence_number |
int | Отслеживает последовательность записей в одной записи аудита, слишком большой, чтобы уместиться в буфере записи для аудитов. Не допускает значения NULL. |
action_id |
varchar(4) | Идентификатор действия. Не допускает значения NULL. |
succeeded |
bit | Показывает, было ли успешным действие, запустившее событие. Не допускает значения NULL. Для всех событий, отличных от событий имени входа, при этом формируются только сообщения о том, была ли проверка разрешения выполнена успешно или окончилась неудачей, а не сообщения о самой операции.1 = успех0 = сбой |
permission_bitmask |
varbinary(16) | В некоторых действиях эта битовая маска — это разрешения, которые были предоставлены, отклонены или отменены. |
is_column_permission |
bit | Флаг, обозначающий разрешение уровня столбца. Не допускает значения NULL. Возвращает значение 0 , когда permission_bitmask = 0 значение .1 = true0 = false |
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 | Текущий идентификатор безопасности входа (SID). Допускает значение 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 | Имя экземпляра сервера, где проводился аудит. Используется стандартный server\instance формат. |
database_name |
sysname | Контекст базы данных, в котором выполнялось действие. Допускает значение NULL. Возвращается NULL для аудита, происходящих на уровне сервера. |
schema_name |
sysname | Контекст схемы, в котором выполнялось действие. Допускает значение NULL. Возвращает данные NULL аудита, происходящие за пределами схемы. |
object_name |
sysname | Имя сущности, в которой произошел аудит, которая включает следующие объекты: — объекты сервера -Баз данных — объекты базы данных — объекты схемы Допускает значение NULL. Возвращает, NULL является ли сущность самой серверной или если аудит не выполняется на уровне объекта. Например, проверка подлинности. |
statement |
nvarchar(4000) | Инструкция Transact-SQL, если она существует. Допускает значение NULL. Возвращается NULL , если применимо. |
additional_information |
nvarchar(4000) | Уникальные сведения, применимые только к одиночному событию, возвращаются в формате XML. Некоторые действия, доступные для аудита, содержат такие сведения. Один уровень стека T-SQL отображается в формате XML для действий, с которыми связан стек T-SQL. Формат 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. Область применения: только SQL Server |
user_defined_event_id |
smallint | Определяемый пользователем идентификатор события, переданный в качестве аргумента sp_audit_write . NULL для системных событий (по умолчанию) и ненулевых для определяемого пользователем события. Дополнительные сведения см. в sp_audit_write.Область применения: SQL Server 2012 (11.x) и более поздних версий, База данных SQL Azure и Управляемый экземпляр SQL |
user_defined_information |
nvarchar(4000) | Используется для записи дополнительных сведений, которые пользователь хочет записать в журнал аудита с помощью хранимой sp_audit_write процедуры.Область применения: SQL Server 2012 (11.x) и более поздних версий, База данных SQL Azure и Управляемый экземпляр SQL |
audit_schema_version |
int | Всегда1 . |
sequence_group_id |
varbinary | Уникальный идентификатор. Область применения: SQL Server 2016 (13.x) и более поздних версий |
transaction_id |
bigint | Уникальный идентификатор для идентификации нескольких событий аудита в одной транзакции. Область применения: SQL Server 2016 (13.x) и более поздних версий |
client_ip |
nvarchar(128) | Исходный IP-адрес клиентского приложения. Область применения: SQL Server 2017 (14.x) и более поздних версий и База данных SQL Azure |
application_name |
nvarchar(128) | Имя клиентского приложения, которое выполнило инструкцию, которая вызвала событие аудита. Область применения: SQL Server 2017 (14.x) и более поздних версий и База данных SQL Azure |
duration_milliseconds |
bigint | Длительность выполнения запроса в миллисекундах. Применимо к: База данных SQL Azure и Управляемый экземпляр SQL |
response_rows |
bigint | Число строк, возвращаемых в результирующем наборе. Применимо к: База данных SQL Azure и Управляемый экземпляр SQL |
affected_rows |
bigint | Количество строк, затронутых выполненной инструкцией. Применимо только к: База данных SQL Azure только |
connection_id |
uniqueidentifier | Идентификатор подключения на сервере. Применимо к: База данных SQL Azure и Управляемый экземпляр SQL |
data_sensitivity_information |
nvarchar(4000) | Типы сведений и метки конфиденциальности, возвращаемые запросом аудита на основе классифицированных столбцов в базе данных. Дополнительные сведения об обнаружении и классификации данных База данных SQL Azure. Применимо только к: База данных SQL Azure только |
host_name |
nvarchar(128) | Имя узла клиентского компьютера. |
session_context |
nvarchar(4000) | Пары "ключ-значение", которые являются частью текущего контекста сеанса. |
client_tls_version |
bigint | Минимальная версия TLS, поддерживаемая клиентом. |
client_tls_version_name |
nvarchar(128) | Минимальная версия TLS, поддерживаемая клиентом. |
database_transaction_id |
bigint | Идентификатор транзакции текущей транзакции в текущем сеансе. |
ledger_start_sequence_number |
bigint | Порядковый номер операции в транзакции, при выполнении которой была создана версия строки. Применимо только к: База данных SQL Azure только |
external_policy_permissions_checked |
nvarchar(4000) | Сведения, связанные с проверкой разрешений внешней авторизации, при создании события аудита и оценке политик внешней авторизации Purview. Применимо только к: База данных SQL Azure только |
obo_middle_tier_app_id |
varchar(120) | Идентификатор приложения среднего уровня, подключающегося к База данных SQL Azure с помощью доступа от имени (OBO). Допускает значение NULL. Возвращает, NULL если запрос не выполняется с помощью доступа OBO.Применимо только к: База данных SQL Azure только |
is_local_secondary_replica |
bit | True Значение , если запись аудита возникает из локальной вторичной реплики только для чтения, False в противном случае.Применимо только к: База данных SQL Azure только |
Замечания
Если аргумент file_pattern, переданный для
fn_get_audit_file
ссылок на путь или файл, который не существует, или если файл не является файлом аудита,MSG_INVALID_AUDIT_FILE
возвращается сообщение об ошибке.fn_get_audit_file
нельзя использовать при создании аудита с параметрами илиEXTERNAL_MONITOR
параметрами.APPLICATION_LOG
SECURITY_LOG
Разрешения
ДЛЯ SQL Server 2019 (15.x) и более ранних версий требуется CONTROL SERVER
разрешение на сервере.
ДЛЯ SQL Server 2022 (16.x) и более поздних версий требуется VIEW SERVER SECURITY AUDIT
разрешение на сервере.
Примеры
В следующем примере выполняется чтение из файла, который имеет имя \\serverName\Audit\HIPAA_AUDIT.sqlaudit
.
SELECT *
FROM sys.fn_get_audit_file(
'\\serverName\Audit\HIPAA_AUDIT.sqlaudit',
DEFAULT,
DEFAULT
);
GO
Полный пример создания аудита см. в статье Подсистема аудита SQL Server (ядро СУБД).
Ограничения
Выбор строк в sys.fn_get_audit_file
списке "Создание таблицы как выбор" (CTAS) или INSERT INTO
ограничение при запуске в Azure Synapse Analytics. Несмотря на успешное завершение запроса и отсутствие сообщений об ошибках, в таблице нет строк, созданных с помощью CTAS или INSERT INTO
.
Дополнительные сведения
Представления системного каталога:
- 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)
Transact-SQL:
- CREATE SERVER AUDIT (Transact-SQL)
- ALTER SERVER AUDIT (Transact-SQL)
- DROP SERVER AUDIT (Transact-SQL)
- CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)
- СПЕЦИФИКАЦИЯ ALTER SERVER AUDIT (Transact-SQL)
- СПЕЦИФИКАЦИЯ АУДИТА DROP SERVER (Transact-SQL)
- CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)
- ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL)
- DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)
- ALTER AUTHORIZATION (Transact-SQL)