CREATE SERVER AUDIT (Transact-SQL)
Создает объект аудита сервера с помощью подсистемы аудита SQL Server. Дополнительные сведения см. в разделе Основные сведения о подсистеме аудита SQL Server.
Синтаксис
CREATE SERVER AUDIT audit_name
{
TO { [ FILE (<file_options> [ , ...n ]) ] | APPLICATION_LOG | SECURITY_LOG }
[ WITH ( <audit_options> [ , ...n ] ) ]
}
[ ; ]
<file_options>::=
{
FILEPATH ='os_file_path'
[ , MAXSIZE = { max_size { MB | GB | TB } | UNLIMITED } ]
[ , MAX_ROLLOVER_FILES = { integer | UNLIMITED } ]
[ , RESERVE_DISK_SPACE = { ON | OFF } ]
}
<audit_options>::=
{
[ QUEUE_DELAY =integer ]
[ , ON_FAILURE = { CONTINUE | SHUTDOWN } ]
[ , AUDIT_GUID =uniqueidentifier ]
}
Аргументы
TO { FILE | APPLICATION_LOG | SECURITY }
Определяет расположение целевого объекта аудита. Возможными параметрами являются двоичный файл, журнал приложений Windows или журнал безопасности Windows. SQL Server не может выполнить запись в журнал безопасности Windows без настройки дополнительных параметров Windows. Дополнительные сведения см. в разделе Как записывать события аудита сервера в журнал безопасности.Примечание Функция записи в журнал безопасности недоступна в Windows XP.
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 должно быть целое число или UNLIMITED. Значение по умолчанию — UNLIMITED. Этот параметр проверяется при каждом перезапуске аудита (это может происходить во время перезапуска экземпляра компонента Database Engine или после выключения и повторного включения аудита) или когда становится необходим новый файл, поскольку достигается предел MAXSIZE. При проверке значения MAX_ROLLOVER_FILES, если число файлов превышает значение параметра MAX_ROLLOVER_FILES, удаляется самый старый файл. Поэтому если параметр MAX_ROLLOVER_FILES имеет значение 0, то каждый раз, когда проверяется значение MAX_ROLLOVER_FILES, создается новый файл. При проверке значения MAX_ROLLOVER_FILES автоматически удаляется только один файл, поэтому если значение параметра MAX_ROLLOVER_FILES уменьшается, то количество файлов не будет сокращаться, если старые файлы не удалить вручную. Максимальное число файлов, которое можно указать, составляет 2 147 483 647.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 }
Указывает, будет ли экземпляр продолжать работу, если целевому объекту не удается произвести запись. Имя входа, выполняющее эту команду, должно иметь разрешение SHUTDOWN. Если учетная запись входа не имеет этого разрешения, функция завершится ошибкой с сообщением MSG_NO_SHUTDOWN_PERMISSION. Значение по умолчанию — CONTINUE.AUDIT_GUID =uniqueidentifier
Чтобы поддерживать такие сценарии, как зеркальное отображение базы данных, аудиту необходим конкретный идентификатор GUID, который совпадает с идентификатором GUID, найденным в зеркальной базе данных. Этот идентификатор GUID не может быть изменен после создания аудита.
Замечания
После создания аудит сервера находится в отключенном состоянии.
Инструкция CREATE SERVER AUDIT относится к области транзакции. Если выполняется откат транзакции, происходит также откат этой инструкции.
Разрешения
Чтобы создать, изменить или удалить аудит сервера, участникам требуется разрешение ALTER ANY SERVER AUDIT или CONTROL SERVER.
Если данные аудита сохраняются в файл, то для предотвращения подмены можно ограничить доступ к файлу.
Примеры
А. Создание аудита сервера с целевым файлом
В следующем примере создается аудит сервера с именем HIPPA_Audit, не имеющий параметров, для которого целевым является двоичный файл.
CREATE SERVER AUDIT HIPAA_Audit
TO FILE ( FILEPATH ='\\SQLPROD_1\Audit\' );
Б. Создание аудита сервера для журнала приложений Windows с параметрами
В следующем примере создается аудит сервера с именем HIPPA_Audit и журналом приложений Windows в качестве цели. Очередь записывается каждую секунду и останавливает ядро SQL Server при ошибке.
CREATE SERVER AUDIT HIPAA_Audit
TO APPLICATION_LOG
WITH ( QUEUE_DELAY = 1000, ON_FAILURE = SHUTDOWN);
См. также