ALTER SERVER AUDIT (Transact-SQL)

Изменяет объект аудита сервера с помощью функции аудита SQL Server. Дополнительные сведения см. в разделе Подсистема аудита SQL Server (Database Engine).

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2012 до текущей версии).

Значок ссылки на раздел Синтаксические обозначения в Transact-SQL

Синтаксис

ALTER SERVER AUDIT audit_name
{
    [ TO { { FILE ( <file_options> [, ...n] ) } | APPLICATION_LOG | SECURITY_LOG } ]
    [ 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 }
    Определяет расположение целевого объекта аудита. Возможные режимы — двоичный файл, журнал событий приложений Windows или журнал безопасности Windows.

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

  • MAXSIZE **=**max_size
    Задает максимальный размер, до которого может увеличиваться файл аудита. Значение max_size должно быть целым числом с суффиксом MB, GB, TB или UNLIMITED. Минимальный размер, который можно указать для аргумента max_size, составляет 2 MB, а максимальный — 2 147 483 647 TB. Если указано значение 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 любое действие, которое вызывает создание дополнительных событий аудита, завершится ошибкой.

  • 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 не может выполнить запись в журнал аудита.

    • CONTINUE
      Работа SQL Server продолжается. Записи аудита не сохраняются. Аудит продолжает попытки регистрации событий и будет возобновлен, если причина сбоя будет устранена. Выбрав вариант продолжения, можно разрешить непроверенные действия, которые могут нарушать политики безопасности. Используйте этот параметр, когда продолжение операции компонента Компонент Database Engine является более важным, чем сохранение полного аудита.

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

    • FAIL_OPERATION
      Действия с базой данных завершаются ошибкой, если они вызывают события аудита. Действия, которые не вызывают события аудита, можно продолжить, но события аудита возникать не будут. Аудит продолжает попытки регистрации событий и будет возобновлен, если причина сбоя будет устранена. Используйте этот параметр, если обеспечение полного аудита более важно, чем полный доступ к компоненту Компонент Database Engine.

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

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

  • predicate_expression
    Задает выражение предиката, используемое для определения необходимости обработки события. Выражения предиката ограничены 3000 символами, что является пределом для строковых аргументов.

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

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

  • ' string '
    Для предикатного сравнения требуется строка в Юникоде или ANSI. Для функций предикатного сравнения не выполняется неявное преобразование строкового типа. Передача неверного типа приводит к ошибке.

Замечания

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

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

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

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

Разрешения

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

Примеры

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

В данном примере показано изменение имени аудита базы данных с HIPPA_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

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

В следующем примере аудит сервера с именем HIPPA_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

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

Следующий пример изменяет предложение WHERE, созданное в примере В раздела 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

Г.Удаление предложения 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 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_specification (Transact-SQL)

sys.database_audit_specification_details (Transact-SQL)

sys.dm_server_audit_status (Transact-SQL)

sys.dm_audit_actions (Transact-SQL)

Основные понятия

Создание аудита сервера и спецификации аудита сервера