Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server Управляемый экземпляр SQL Azure
Создает объект аудита сервера с помощью компонента аудита SQL Server. Дополнительные сведения см. в статье Аудит SQL Server (ядро СУБД).
Соглашения о синтаксисе Transact-SQL
Syntax
CREATE SERVER AUDIT audit_name
{
TO {
[ FILE ( <file_options> [ ,... n ] ) ]
| APPLICATION_LOG
| SECURITY_LOG
| URL
| EXTERNAL_MONITOR
}
[ WITH ( <audit_options> [ ,... n ] ) ]
[ WHERE <predicate_expression> ]
}
[ ; ]
<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 } ]
[ , AUDIT_GUID = uniqueidentifier ]
[ , OPERATOR_AUDIT = { ON | OFF } ]
[ , RETENTION_DAYS = integer ]
}
<predicate_expression> ::=
{ [ NOT ] <predicate_factor>
[ { AND | OR } [ NOT ] { <predicate_factor> } ] [ ,... n ] }
<predicate_factor> ::=
event_field_name { = | < > | != | > | >= | < | <= | LIKE }
{ number | 'string' }
Arguments
audit_name
Название аудита. SQL Server 2019 (15.x) и более ранние версии не могут содержать пробелы в имени аудита.
TO { FILE | APPLICATION_LOG | SECURITY_LOG | URL-адрес | EXTERNAL_MONITOR }
Определяет расположение целевого объекта аудита. Параметры — это двоичный файл, журнал приложений Windows или журнал безопасности Windows. SQL Server не может записывать данные в журнал безопасности Windows без настройки дополнительных параметров в Windows. Дополнительные сведения см. в разделе "Запись событий аудита SQL Server" в журнал безопасности.
Целевой URL объект не поддерживается для SQL Server.
Important
В Управляемом экземпляре SQL Azure компонент аудита SQL выполняется на уровне сервера. Возможны только расположения URL или EXTERNAL_MONITOR.
FILEPATH = "os_file_path"
Путь к журналу аудита. Имя файла формируется на основе имени аудита и его идентификатора GUID. Если этот путь недопустим, аудит не создается.
FILEPATHЦелевой объект не поддерживается для Управляемый экземпляр SQL Azure. Вместо этого необходимо использовать PATH .
MAXSIZE = max_size
Задает максимальный размер, до которого может увеличиваться файл аудита. Значение max_size должно быть целым числом, за которым следует МБ, ГБ, ТБ или UNLIMITED. Минимальный размер для max_size составляет 2 МБ, а максимальный — 2 147 483 647 ТБ. При указании UNLIMITEDфайл растет до тех пор, пока диск не будет заполнен. (0 также указывает UNLIMITED.) При указании значения меньше 2 МБ возникает ошибка MSG_MAXSIZE_TOO_SMALL. Значение по умолчанию — UNLIMITED.
MAXSIZEЦелевой объект не поддерживается для Управляемый экземпляр SQL Azure.
MAX_ROLLOVER_FILES = { целое число | НЕОГРАНИЧЕННЫЙ }
Указывает максимальное количество файлов, хранимых в файловой системе помимо текущего. Значение MAX_ROLLOVER_FILES должно быть целым числом или UNLIMITED. Значение по умолчанию — UNLIMITED. Этот параметр вычисляется всякий раз, когда аудит перезапускается (что может произойти, когда экземпляр ядро СУБД перезапускается или когда аудит отключен, а затем снова) или когда новый файл необходим, так как MAXSIZE он достигнут. При MAX_ROLLOVER_FILES оценке, если число файлов превышает MAX_ROLLOVER_FILES значение параметра, удаляется самый старый файл. В результате при MAX_ROLLOVER_FILES каждом вычислении параметра 0 создается MAX_ROLLOVER_FILES новый файл. Только один файл автоматически удаляется при MAX_ROLLOVER_FILES вычислении параметра, поэтому при уменьшении значения MAX_ROLLOVER_FILES файлов число файлов не уменьшается, если старые файлы не удаляются вручную. Максимальное количество файлов, которые можно указать, составляет 2 147 483 647.
MAX_ROLLOVER_FILESне поддерживается для Управляемый экземпляр SQL Azure.
MAX_FILES = целое число
Задает максимальное число файлов аудита, которые могут быть созданы. Аудит не выполняет перекат к первому файлу при достижении предела.
MAX_FILES Когда ограничение достигнуто, любое действие, которое приводит к сбою создания дополнительных событий аудита с ошибкой.
RESERVE_DISK_SPACE = { ВКЛ | ВЫКЛ }
Этот параметр предварительно выделяет файл на диске MAXSIZE в значение. Оно применяется только в том случае, если MAXSIZE оно не равно UNLIMITED. Значение по умолчанию — OFF.
RESERVE_DISK_SPACEЦелевой объект не поддерживается для Управляемый экземпляр SQL Azure.
QUEUE_DELAY = целое число
Определяет задержку в миллисекундах, после которой продолжается выполнение действий аудита. Значение 0 соответствует синхронной доставке. Минимальное значение задержки запроса с набором — 1000 (1 секунда), которое является значением по умолчанию. Максимальное значение — 2147483647 2 147 483,647 секунд или 24 дня, 20 часов, 31 минуты, 23,647 секунды. Указание недопустимого числа вызывает ошибку MSG_INVALID_QUEUE_DELAY .
ON_FAILURE = { ПРОДОЛЖИТЬ | ОТКЛЮЧЕНИЕ | FAIL_OPERATION }
Указывает, должен ли экземпляр записывать в целевой объект ошибку, продолжить или остановить SQL Server, если целевой объект не может записать в журнал аудита. Значение по умолчанию — CONTINUE.
CONTINUE
Операции SQL Server продолжаются. Записи аудита не сохраняются. Аудит продолжает попытки регистрации событий и возобновляется после устранения причины сбоя. Выбор варианта "Продолжить" разрешает непроверенные действия, которые могут нарушать политики безопасности. Используйте этот параметр, если продолжить работу ядро СУБД важнее, чем обслуживание полного аудита.
SHUTDOWN
Принудительно завершает работу экземпляра SQL Server, если SQL Server не может записывать данные в целевой объект аудита по какой-либо причине. Имя входа, выполняющее инструкцию CREATE SERVER AUDIT , должно иметь SHUTDOWN разрешение в SQL Server. Поведение завершения работы сохраняется даже в том случае, если имя входа, выполняющее инструкцию, позднее отменяет разрешение SHUTDOWN. Если у пользователя нет этого разрешения, инструкция завершается сбоем и аудит не создается. Используйте этот параметр, когда сбой аудита может нанести ущерб безопасности или целостности системы. Дополнительные сведения см. в разделе SHUTDOWN.
FAIL_OPERATION
Действия с базой данных завершаются ошибкой, если они вызывают события аудита. Действия, которые не вызывают аудит событий, могут продолжаться, но аудит событий не может произойти. Аудит продолжает попытки регистрации событий и возобновляется после устранения причины сбоя. Используйте этот параметр при сохранении полного аудита, чем полный доступ к ядро СУБД.
AUDIT_GUID = уникальный идентификатор
Для поддержки таких сценариев, как зеркальное отображение базы данных или базы данных, участвующие в группе доступности AlwaysOn, аудиту требуется конкретный GUID, соответствующий GUID, найденному в зеркальной базе данных. После создания аудита нельзя изменить GUID.
OPERATOR_AUDIT
Применяется только к управляемому экземпляру SQL Azure.
Указывает, фиксирует ли аудит операции инженеров поддержки Майкрософт, когда им нужно получить доступ к серверу во время запроса на поддержку.
RETENTION_DAYS = целое число
Применяется только к управляемому экземпляру SQL Azure и базе данных SQL Azure.
Указывает количество дней хранения файла журнала аудита.
predicate_expression
Задает выражение предиката, используемое для определения необходимости обработки события. Выражения предиката ограничены длиной 3000 символов, что ограничивает строковые аргументы.
event_field_name
Имя поля события, определяющего источник предиката. Поля аудита описаны в sys.fn_get_audit_file. Вы можете отфильтровать все поля, кроме file_name, audit_file_offsetи event_time.
action_id Хотя поля имеют class_typeтип varchar, sys.fn_get_audit_fileих можно использовать только с числами, если они являются источником предиката для фильтрации. Чтобы получить список используемых значений class_type, выполните следующий запрос:
SELECT spt.[name], spt.[number]
FROM [master].[dbo].[spt_values] spt
WHERE spt.[type] = N'EOD'
ORDER BY spt.[name];
номер
Любой числовой тип, включая десятичный. Ограничения: недостаток доступной физической памяти или слишком большое число, которое невозможно представить 64-разрядным целым.
'string'
Для предикатного сравнения требуется строка в Юникоде или ANSI. Функции сравнения предиката не выполняют неявное преобразование типов строк. Передача неверного типа приводит к ошибке.
Remarks
Аудит сервера создается в отключенном состоянии.
Оператор CREATE SERVER AUDIT является частью транзакции. При откате транзакции оператор также откатывается.
Permissions
Чтобы создать, изменить или удалить аудит сервера, субъекты нуждаются ALTER ANY SERVER AUDIT в разрешении CONTROL SERVER .
При сохранении сведений аудита в файл ограничьте доступ к расположению файла, чтобы предотвратить изменение.
Examples
A. Создание аудита сервера с целевым объектом файла
В следующем примере создается аудит HIPAA_Audit сервера с двоичным файлом в качестве целевого объекта и нет параметров.
CREATE SERVER AUDIT HIPAA_Audit
TO FILE (FILEPATH = '\\SQLPROD_1\Audit\');
B. Создание аудита сервера с целевым объектом журнала приложений Windows с параметрами
В следующем примере создается аудит HIPAA_Audit сервера с целевым набором для журнала приложений Windows. Очередь записывается каждую секунду и завершает работу подсистемы SQL Server при сбое.
CREATE SERVER AUDIT HIPAA_Audit
TO APPLICATION_LOG
WITH (
QUEUE_DELAY = 1000,
ON_FAILURE = SHUTDOWN
);
C. Создание аудита сервера, содержащего предложение WHERE
В следующем примере создается база данных, схема и две таблицы. Таблица с именем DataSchema.SensitiveData содержит конфиденциальные данные, и доступ к ней должен регистрироваться в аудите.
Таблица с именем DataSchema.GeneralData не содержит конфиденциальных данных. Спецификация аудита базы данных осуществляет аудит доступа ко всем объектам в схеме DataSchema.
Аудит сервера создается с предложением WHERE , ограничивающим аудит сервера только таблицей SensitiveData . Аудит сервера предполагает наличие папки аудита в C:\SQLAudit.
CREATE DATABASE TestDB;
GO
USE TestDB;
GO
CREATE SCHEMA DataSchema;
GO
CREATE TABLE DataSchema.GeneralData
(
ID INT PRIMARY KEY,
DataField VARCHAR (50) NOT NULL
);
GO
CREATE TABLE DataSchema.SensitiveData
(
ID INT PRIMARY KEY,
DataField VARCHAR (50) NOT NULL
);
GO
Создайте аудит сервера в master базе данных:
USE master;
GO
CREATE SERVER AUDIT AuditDataAccess TO FILE (FILEPATH = 'C:\SQLAudit\')
WHERE object_name = 'SensitiveData';
GO
ALTER SERVER AUDIT AuditDataAccess WITH (STATE = ON);
GO
Создайте спецификацию аудита базы данных в TestDB базе данных:
USE TestDB;
GO
CREATE DATABASE AUDIT SPECIFICATION [FilterForSensitiveData]
FOR SERVER AUDIT [AuditDataAccess]
ADD (SELECT ON SCHEMA::[DataSchema] BY [public])
WITH(STATE = ON);
GO
Активируйте событие аудита, выбрав из таблиц:
SELECT ID,
DataField
FROM DataSchema.GeneralData;
SELECT ID,
DataField
FROM DataSchema.SensitiveData;
GO
Проверьте аудит для отфильтрованного содержимого:
SELECT *
FROM fn_get_audit_file('C:\SQLAudit\AuditDataAccess_*.sqlaudit', DEFAULT, DEFAULT);
GO
Transact-SQL ссылка
- Изменение аудита сервера
- УДАЛИТЬ АУДИТ СЕРВЕРА
- СОЗДАТЬ СПЕЦИФИКАЦИЮ АУДИТА СЕРВЕРА
- ИЗМЕНИТЬ СПЕЦИФИКАЦИЮ АУДИТА СЕРВЕРА
- УДАЛИТЬ СПЕЦИФИКАЦИЮ АУДИТА СЕРВЕРА
- СОЗДАТЬ СПЕЦИФИКАЦИЮ АУДИТА БАЗЫ ДАННЫХ
- ИЗМЕНИТЬ СПЕЦИФИКАЦИЮ АУДИТА БАЗЫ ДАННЫХ
- УДАЛЕНИЕ СПЕЦИФИКАЦИИ АУДИТА БАЗЫ ДАННЫХ
- ИЗМЕНИТЬ АВТОРИЗАЦИЮ
Связанный контент
- sys.fn_get_audit_file (Transact-SQL)
- sys.server_audits (Transact-SQL)
- sys.server_file_audits (Transact-SQL)
- спецификации аудита сервера (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)
- sys.dm_audit_class_type_map (Transact-SQL)
- Создание аудита сервера и спецификации аудита сервера