ALTER SERVER AUDIT (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure

Изменяет объект аудита сервера с помощью компонента аудита SQL Server. Дополнительные сведения см. в статье Аудит SQL Server (ядро СУБД).

Соглашения о синтаксисе Transact-SQL

Синтаксис

ALTER SERVER AUDIT audit_name  
{  
    [ TO { { FILE ( <file_options> [, ...n] ) } | APPLICATION_LOG | SECURITY_LOG } | URL]  
    [ WITH ( <audit_options> [ , ...n] ) ]   
    [ WHERE <predicate_expression> ]  
}  
| REMOVE WHERE  
| MODIFY NAME = new_audit_name  
[ ; ]  
  
<file_options>::=  
{  
      FILEPATH = 'os_file_path'   
    | MAXSIZE = { max_size { MB | GB | TB } | UNLIMITED }   
    | MAX_ROLLOVER_FILES = { integer | UNLIMITED }   
    | MAX_FILES = integer   
    | RESERVE_DISK_SPACE = { ON | OFF }   
}  
  
<audit_options>::=  
{  
      QUEUE_DELAY = integer   
    | ON_FAILURE = { CONTINUE | SHUTDOWN | FAIL_OPERATION }   
    | STATE = = { ON | OFF }   
}  
  
<predicate_expression>::=  
{  
    [NOT ] <predicate_factor>   
    [ { AND | OR } [NOT ] { <predicate_factor> } ]   
    [,...n ]  
}  
  
<predicate_factor>::=   
    event_field_name { = | < > | ! = | > | > = | < | < = } { number | ' string ' }  

Аргументы

TO { FILE | APPLICATION_LOG | SECURITY |URL}
Определяет расположение целевого объекта аудита. Возможные режимы — двоичный файл, журнал событий приложений Windows или журнал безопасности Windows.

Внимание

В Управляемый экземпляр SQL Azure аудит SQL работает на уровне сервера и сохраняет .xel файлы в Хранилище BLOB-объектов Azure.

FILEPATH = 'os_file_path'
Путь следа аудита. Имя файла формируется на основе имени аудита и его идентификатора GUID.

MAXSIZE =max_size
Задает максимальный размер, до которого может увеличиваться файл аудита. Значение max_size должно быть целым числом, за которым следует MB, GB, TB или UNLIMITED. Минимальный размер для max_size составляет 2 МБ, а максимальный — 2 147 483 647 ТБ. Если указано значение UNLIMITED, увеличение размера файла будет происходить до заполнения диска. Если указано значение менее 2 МБ, возникает ошибка MSG_MAXSIZE_TOO_SMALL. Значение по умолчанию — UNLIMITED.

MAX_ROLLOVER_FILES =integer | UNLIMITED
Задает максимальное число файлов, которые хранятся в файловой системе. Если установлено значение MAX_ROLLOVER_FILES=0, отсутствует ограничение на число создаваемых файлов продолжения. Значение по умолчанию равно 0. Максимальное число файлов, которое можно указать, составляет 2 147 483 647.

MAX_FILES =integer
Задает максимальное число файлов аудита, которые могут быть созданы. При достижении предела переключение на первый файл не производится. При достижении предела MAX_FILES любое действие, которое вызывает создание дополнительных событий аудита, завершается ошибкой.
Область применения: SQL Server 2012 (11.x) и более поздних версий.

RESERVE_DISK_SPACE = { ON | OFF }
Этот параметр заранее размещает на диске файл в соответствии со значением MAXSIZE. Применяется, только если значение MAXSIZE не равно UNLIMITED. Значение по умолчанию — OFF.

QUEUE_DELAY =integer
Определяет задержку в миллисекундах, после которой продолжается выполнение действий аудита. Значение 0 соответствует синхронной доставке. Минимальное значение задаваемой задержки запроса составляет 1000 (1 секунда), и это значение используется по умолчанию. Максимальное значение составляет 2 147 483 647 (2 147 483,647 секунд или 24 дня, 20 часов, 31 минута и 23,647 секунд). Если указано недопустимое значение, происходит ошибка MSG_INVALID_QUEUE_DELAY.

ON_FAILURE = { CONTINUE | SHUTDOWN | FAIL_OPERATION}
Указывает, будет ли экземпляр, выполняющий запись в целевой объект, вызывать ошибку, продолжать или останавливать работу, если SQL Server не может выполнить запись в журнал аудита.

Продолжить
Операции SQL Server продолжаются. Записи аудита не сохраняются. Аудит продолжает попытки регистрации событий и возобновляется после устранения причины сбоя. Выбор варианта "Продолжить" разрешает непроверенные действия, которые могут нарушать политики безопасности. Используйте этот параметр, если продолжить работу ядро СУБД важнее, чем обслуживание полного аудита.

SHUTDOWN
Принудительно завершает работу экземпляра SQL Server, если SQL Server не может записывать данные в целевой объект аудита по какой-либо причине. Имя входа, выполняющее инструкцию ALTER , должно иметь SHUTDOWN разрешение в SQL Server. Поведение завершения работы сохраняется даже в том случае, если имя входа, выполняющее инструкцию, позднее отменяет разрешение SHUTDOWN. Если у пользователя нет этого разрешения, выполнение инструкции завершится ошибкой и аудит не будет изменен. Используйте этот параметр, когда сбой аудита может нанести ущерб безопасности или целостности системы. Дополнительные сведения см. в разделе SHUTDOWN.

FAIL_OPERATION
Действия с базой данных завершаются ошибкой, если они вызывают события аудита. Действия, которые не вызывают события аудита, можно продолжить, но события аудита возникать не будут. Аудит продолжает попытки регистрации событий и возобновляется после устранения причины сбоя. Используйте этот параметр при сохранении полного аудита, чем полный доступ к ядро СУБД.
Область применения: SQL Server 2012 (11.x) и более поздних версий.

STATE = { ON | OFF }
Включает или отключает аудит из сбора записей. При изменении состояния работающего аудита (из ON в OFF) создается запись аудита об остановке аудита, об остановившем аудит участнике и времени остановки аудита.

MODIFY NAME = new_audit_name
Изменяет имя аудита. Нельзя использовать совместно ни с каким другим параметром.

predicate_expression
Задает выражение предиката, используемое для определения необходимости обработки события. Выражения предиката ограничены 3000 символами, что является пределом для строковых аргументов.
Область применения: SQL Server 2012 (11.x) и более поздних версий.

event_field_name
Имя поля события, которое идентифицирует источник предиката. Поля аудита описаны в разделе sys.fn_get_audit_file (Transact-SQL). Аудиту могут быть подвержены все поля, за исключением file_name и audit_file_offset.
Область применения: SQL Server 2012 (11.x) и более поздних версий.

number
Любой числовой тип, включая decimal. Ограничения: недостаток доступной физической памяти или слишком большое число, которое невозможно представить 64-разрядным целым.
Область применения: SQL Server 2012 (11.x) и более поздних версий.

' string '
Для предикатного сравнения требуется строка в Юникоде или ANSI. Для функций предикатного сравнения не выполняется неявное преобразование строкового типа. Передача неверного типа приводит к ошибке.
Область применения: SQL Server 2012 (11.x) и более поздних версий.

Замечания

В вызове ALTER AUDIT надо указывать хотя бы одно предложение из TO, WITH и MODIFY NAME.

Чтобы внести изменения в аудит, для состояния аудита необходимо установить параметр OFF. Если инструкция DROP AUDIT выполняется, когда аудит включен с любыми параметрами, отличными от STATE=OFF, выводится сообщение об ошибке MSG_NEED_AUDIT_DISABLED.

Можно добавлять, изменять или удалять спецификации аудита без остановки аудита.

После создания аудита нельзя изменить его идентификатор GUID.

Инструкцию ALTER SERVER AUDIT нельзя использовать в пользовательской транзакции.

Разрешения

Чтобы создать, изменить или удалить участника на уровне сервера требуется разрешение ALTER ANY SERVER AUDIT или CONTROL SERVER.

Примеры

А. Изменение имени аудита сервера

В данном примере показано изменение имени аудита базы данных с HIPAA_Audit на HIPAA_Audit_Old.

USE master  
GO  
ALTER SERVER AUDIT HIPAA_Audit  
WITH (STATE = OFF);  
GO  
ALTER SERVER AUDIT HIPAA_Audit  
MODIFY NAME = HIPAA_Audit_Old;  
GO  
ALTER SERVER AUDIT HIPAA_Audit_Old  
WITH (STATE = ON);  
GO  

B. Изменение цели аудита сервера

В следующем примере аудит сервера с именем HIPAA_Audit изменяется на целевой файл.

USE master  
GO  
ALTER SERVER AUDIT HIPAA_Audit  
WITH (STATE = OFF);  
GO  
ALTER SERVER AUDIT HIPAA_Audit  
TO FILE (FILEPATH ='\\SQLPROD_1\Audit\',  
          MAXSIZE = 1000 MB,  
          RESERVE_DISK_SPACE=OFF)  
WITH (QUEUE_DELAY = 1000,  
       ON_FAILURE = CONTINUE);  
GO  
ALTER SERVER AUDIT HIPAA_Audit  
WITH (STATE = ON);  
GO  

C. Изменение предложения WHERE аудита сервера

Следующий пример изменяет предложение WHERE, которое мы создали в примере C в статье CREATE SERVER AUDIT (Transact-SQL). Новое предложение WHERE отбирает определяемые пользователем события с идентификатором 27.

ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = OFF)  
GO  
ALTER SERVER AUDIT [FilterForSensitiveData]  
WHERE user_defined_event_id = 27;  
GO  
ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = ON);  
GO  

D. Удаление предложения WHERE

Следующий пример удаляет выражение предиката предложения WHERE.

ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = OFF)  
GO  
ALTER SERVER AUDIT [FilterForSensitiveData]  
REMOVE WHERE;  
GO  
ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = ON);  
GO  

Е. Переименование аудита сервера

В данном примере показано изменение имени аудита сервера с FilterForSensitiveData на AuditDataAccess.

ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = OFF)  
GO  
ALTER SERVER AUDIT [FilterForSensitiveData]  
MODIFY NAME = AuditDataAccess;  
GO  
ALTER SERVER AUDIT [AuditDataAccess] WITH (STATE = ON);  
GO  

См. также

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)
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)
sys.dm_audit_actions (Transact-SQL)
Создание аудита сервера и спецификации аудита сервера