Поделиться через


Extended Server Blob Auditing Policies - Create Or Update

Создает или обновляет политику аудита больших двоичных объектов расширенного сервера.

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/extendedAuditingSettings/default?api-version=2021-11-01

Параметры URI

Имя В Обязательно Тип Описание
blobAuditingPolicyName
path True

blobAuditingPolicyName

Имя политики аудита BLOB-объектов.

resourceGroupName
path True

string

Имя группы ресурсов, содержащей ресурс. Это значение можно получить из API Azure Resource Manager или портала.

serverName
path True

string

Имени сервера.

subscriptionId
path True

string

Идентификатор подписки, идентифицирующий подписку Azure.

api-version
query True

string

Версия API, используемая для запроса.

Текст запроса

Имя Обязательно Тип Описание
properties.state True

BlobAuditingPolicyState

Указывает состояние аудита. Если состояние включено, необходимо использовать storageEndpoint или isAzureMonitorTargetEnabled.

properties.auditActionsAndGroups

string[]

Указывает Actions-Groups и действия для аудита.

Рекомендуемый набор групп действий, используемый, — это следующая комбинация. Это приведет к аудиту всех запросов и хранимых процедур, выполняемых в базе данных, а также успешных и неудачных имен входа:

BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP, FAILED_DATABASE_AUTHENTICATION_GROUP.

Это сочетание выше также является набором, настроенным по умолчанию при включении аудита на портале Azure.

Поддерживаемые группы действий для аудита (примечание. Выберите только определенные группы, охватывающие потребности аудита. Использование ненужных групп может привести к очень большому количеству записей аудита):

APPLICATION_ROLE_CHANGE_PASSWORD_GROUP BACKUP_RESTORE_GROUP DATABASE_LOGOUT_GROUP DATABASE_OBJECT_CHANGE_GROUP DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP DATABASE_OBJECT_PERMISSION_CHANGE_GROUP DATABASE_OPERATION_GROUP DATABASE_PERMISSION_CHANGE_GROUP DATABASE_PRINCIPAL_CHANGE_GROUP DATABASE_PRINCIPAL_IMPERSONATION_GROUP DATABASE_ROLE_MEMBER_CHANGE_GROUP FAILED_DATABASE_AUTHENTICATION_GROUP SCHEMA_OBJECT_ACCESS_GROUP SCHEMA_OBJECT_CHANGE_GROUP SCHEMA_OBJECT_ OWNERSHIP_CHANGE_GROUP SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP USER_CHANGE_PASSWORD_GROUP BATCH_STARTED_GROUP BATCH_COMPLETED_GROUP DBCC_GROUP DATABASE_OWNERSHIP_CHANGE_GROUP DATABASE_CHANGE_GROUP LEDGER_OPERATION_GROUP

Это группы, охватывающие все инструкции SQL и хранимые процедуры, выполняемые в базе данных, и не должны использоваться в сочетании с другими группами, так как это приведет к дублированию журналов аудита.

Дополнительные сведения см. в разделе Database-Level Группы действий аудита.

Для политики аудита базы данных можно также указать определенные действия (обратите внимание, что действия не могут быть указаны для политики аудита сервера). Поддерживаемые действия для аудита: SELECT UPDATE INSERT DELETE EXECUTE RECEIVE REFERENCES

Общая форма определения действия для аудита: {action} ON {object} BY {principal}

Обратите внимание, что в приведенном выше формате может ссылаться на объект, например таблицу, представление или хранимую процедуру, или всю базу данных или схему. В последних случаях используются формы DATABASE::{db_name} и SCHEMA::{schema_name} соответственно.

Например: SELECT on dbo.myTable by public SELECT on DATABASE::myDatabase by public SELECT on SCHEMA::mySchema by public

Дополнительные сведения см. в разделе Database-Level Действия аудита

properties.isAzureMonitorTargetEnabled

boolean

Указывает, отправляются ли события аудита в Azure Monitor. Чтобы отправить события в Azure Monitor, укажите "Состояние" как "Включено" и "IsAzureMonitorTargetEnabled" как true.

При использовании REST API для настройки аудита необходимо также создать параметры диагностики с категорией журналов диагностики SQLSecurityAuditEvents в базе данных. Обратите внимание, что для аудита уровня сервера следует использовать базу данных master как {databaseName}.

Формат URI URI параметров диагностики: PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview

Дополнительные сведения см. в разделе параметры диагностики REST API или параметров диагностики PowerShell

properties.isDevopsAuditEnabled

boolean

Указывает состояние аудита devops. Если состояние включено, журналы devops будут отправляться в Azure Monitor. Чтобы отправить события в Azure Monitor, укажите "Состояние" как "Включено", "IsAzureMonitorTargetEnabled" как true и IsDevopsAuditEnabled как true

При использовании REST API для настройки аудита необходимо также создать параметры диагностики с категорией журналов диагностики DevOpsOperationsAudit в базе данных master.

Формат URI URI параметров диагностики: PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/master/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview

Дополнительные сведения см. в разделе параметры диагностики REST API или параметров диагностики PowerShell

properties.isManagedIdentityInUse

boolean

Указывает, используется ли управляемое удостоверение для доступа к хранилищу BLOB-объектов

properties.isStorageSecondaryKeyInUse

boolean

Указывает, является ли значение storageAccountAccessKey вторичным ключом хранилища.

properties.predicateExpression

string

Указывает условие расположения предложения при создании аудита.

properties.queueDelayMs

integer (int32)

Определяет количество времени в миллисекундах, которое может пройти до того, как действия аудита будут принудительно обработаны. Минимальное значение по умолчанию — 1000 (1 секунда). Максимальное значение — 2 147 483 647.

properties.retentionDays

integer (int32)

Указывает количество дней для хранения в журналах аудита в учетной записи хранения.

properties.storageAccountAccessKey

string

Указывает ключ идентификатора учетной записи хранения аудита. Если задано состояние "Включено" и storageEndpoint не указано, что storageAccountAccessKey будет использовать управляемое удостоверение, назначаемое системой SQL Server, для доступа к хранилищу. Необходимые условия для использования проверки подлинности управляемого удостоверения:

  1. Назначьте управляемое удостоверение, назначаемое системой, в Azure Active Directory (AAD).
  2. Предоставьте удостоверению SQL Server доступ к учетной записи хранения, добавив роль RBAC "Участник данных BLOB-объектов хранилища" в удостоверение сервера. Дополнительные сведения см. в статье Аудит хранилища с помощью проверки подлинности управляемого удостоверения
properties.storageAccountSubscriptionId

string (uuid)

Указывает идентификатор подписки хранилища BLOB-объектов.

properties.storageEndpoint

string

Указывает конечную точку хранилища BLOB-объектов (например, https://MyAccount.blob.core.windows.net). Если состояние включено, требуется storageEndpoint или isAzureMonitorTargetEnabled.

Ответы

Имя Тип Описание
200 OK

ExtendedServerBlobAuditingPolicy

Успешно обновлены расширенные параметры аудита.

202 Accepted

Выполняется обновление параметров расширенного аудита.

Other Status Codes

Ответы на ошибки: ***

  • 400 InvalidServerBlobAuditingPolicyCreateRequest — запрос политики аудита больших двоичных объектов сервера не существует или не имеет объекта свойств.

  • 400 InvalidBlobAuditActionsAndGroups — недопустимые действия аудита или группы действий.

  • 400 DataSecurityInvalidUserSuppliedParameter — недопустимое значение параметра было предоставлено клиентом.

  • 400 BlobAuditingPredicateExpressionEmpty — недопустимый параметр predicateExpression, значение не может быть пустым.

  • 400 BlobAuditingInvalidStorageAccountCredentials — указанная учетная запись хранения или ключ доступа недопустимы.

  • 400 InvalidBlobAuditActionsAndGroups — недопустимые действия аудита или группы действий.

  • 400 InsufficientDiskSpaceForAuditing — недостаточно места на диске для сохранения метаданных аудита в базе данных

  • 400 InvalidBlobAuditActions — недопустимое действие аудита

  • 404 SubscriptionDoesNotHaveServer — запрошенный сервер не найден

  • 404 ServerNotInSubscriptionResourceGroup — указанный сервер не существует в указанной группе ресурсов и подписке.

  • 404 OperationIdNotFound — операция с идентификатором не существует.

  • 409 ServerBlobAuditingPolicyInProgress. Настройка аудита больших двоичных объектов сервера уже выполняется.

  • 409 OperationCancelled — операция отменена пользователем.

  • 409 Operation Прервана — операция с ресурсом не удалось завершить, так как она была прервана другой операцией в том же ресурсе.

  • 429 SubscriptionTooManyCreateUpdateRequests — запросы, превышающие максимальные запросы, которые могут обрабатываться доступными ресурсами.

  • 429 SubscriptionTooManyRequests — запросы, превышающие максимальные запросы, которые могут обрабатываться доступными ресурсами.

  • 500 OperationTimedOut — время ожидания операции истекло и автоматически откатился. Повторите операцию.

  • 503 TooManyRequests — запросы, превышающие максимальные запросы, которые могут обрабатываться доступными ресурсами.

Примеры

Update a server's extended blob auditing policy with all parameters
Update a server's extended blob auditing policy with minimal parameters

Update a server's extended blob auditing policy with all parameters

Образец запроса

PUT https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/extendedAuditingSettings/default?api-version=2021-11-01

{
  "properties": {
    "state": "Enabled",
    "storageAccountAccessKey": "sdlfkjabc+sdlfkjsdlkfsjdfLDKFTERLKFDFKLjsdfksjdflsdkfD2342309432849328476458/3RSD==",
    "storageEndpoint": "https://mystorage.blob.core.windows.net",
    "retentionDays": 6,
    "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
    "isStorageSecondaryKeyInUse": false,
    "queueDelayMs": 4000,
    "auditActionsAndGroups": [
      "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
      "FAILED_DATABASE_AUTHENTICATION_GROUP",
      "BATCH_COMPLETED_GROUP"
    ],
    "predicateExpression": "object_name = 'SensitiveData'",
    "isAzureMonitorTargetEnabled": true
  }
}

Пример ответа

{
  "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/extendedAuditingSettings/default",
  "name": "default",
  "type": "Microsoft.Sql/servers/extendedAuditingSettings",
  "properties": {
    "state": "Enabled",
    "storageEndpoint": "https://mystorage.blob.core.windows.net",
    "retentionDays": 6,
    "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
    "isStorageSecondaryKeyInUse": false,
    "queueDelayMs": 4000,
    "auditActionsAndGroups": [
      "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
      "FAILED_DATABASE_AUTHENTICATION_GROUP",
      "BATCH_COMPLETED_GROUP"
    ],
    "predicateExpression": "object_name = 'SensitiveData'",
    "isAzureMonitorTargetEnabled": true
  }
}

Update a server's extended blob auditing policy with minimal parameters

Образец запроса

PUT https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/extendedAuditingSettings/default?api-version=2021-11-01

{
  "properties": {
    "state": "Enabled",
    "storageAccountAccessKey": "sdlfkjabc+sdlfkjsdlkfsjdfLDKFTERLKFDFKLjsdfksjdflsdkfD2342309432849328476458/3RSD==",
    "storageEndpoint": "https://mystorage.blob.core.windows.net"
  }
}

Пример ответа

{
  "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/extendedAuditingSettings/default",
  "name": "default",
  "type": "Microsoft.Sql/servers/extendedAuditingSettings",
  "properties": {
    "state": "Enabled",
    "storageEndpoint": "https://mystorage.blob.core.windows.net",
    "retentionDays": 6,
    "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
    "isStorageSecondaryKeyInUse": false,
    "auditActionsAndGroups": [
      "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
      "FAILED_DATABASE_AUTHENTICATION_GROUP",
      "BATCH_COMPLETED_GROUP"
    ],
    "isAzureMonitorTargetEnabled": false
  }
}

Определения

Имя Описание
blobAuditingPolicyName

Имя политики аудита BLOB-объектов.

BlobAuditingPolicyState

Указывает состояние аудита. Если состояние включено, необходимо использовать storageEndpoint или isAzureMonitorTargetEnabled.

ExtendedServerBlobAuditingPolicy

Расширенная политика аудита BLOB-объектов сервера.

blobAuditingPolicyName

Имя политики аудита BLOB-объектов.

Значение Описание
default

BlobAuditingPolicyState

Указывает состояние аудита. Если состояние включено, необходимо использовать storageEndpoint или isAzureMonitorTargetEnabled.

Значение Описание
Disabled
Enabled

ExtendedServerBlobAuditingPolicy

Расширенная политика аудита BLOB-объектов сервера.

Имя Тип Описание
id

string

Идентификатор ресурса.

name

string

Имя ресурса.

properties.auditActionsAndGroups

string[]

Указывает Actions-Groups и действия для аудита.

Рекомендуемый набор групп действий, используемый, — это следующая комбинация. Это приведет к аудиту всех запросов и хранимых процедур, выполняемых в базе данных, а также успешных и неудачных имен входа:

BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP, FAILED_DATABASE_AUTHENTICATION_GROUP.

Это сочетание выше также является набором, настроенным по умолчанию при включении аудита на портале Azure.

Поддерживаемые группы действий для аудита (примечание. Выберите только определенные группы, охватывающие потребности аудита. Использование ненужных групп может привести к очень большому количеству записей аудита):

APPLICATION_ROLE_CHANGE_PASSWORD_GROUP BACKUP_RESTORE_GROUP DATABASE_LOGOUT_GROUP DATABASE_OBJECT_CHANGE_GROUP DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP DATABASE_OBJECT_PERMISSION_CHANGE_GROUP DATABASE_OPERATION_GROUP DATABASE_PERMISSION_CHANGE_GROUP DATABASE_PRINCIPAL_CHANGE_GROUP DATABASE_PRINCIPAL_IMPERSONATION_GROUP DATABASE_ROLE_MEMBER_CHANGE_GROUP FAILED_DATABASE_AUTHENTICATION_GROUP SCHEMA_OBJECT_ACCESS_GROUP SCHEMA_OBJECT_CHANGE_GROUP SCHEMA_OBJECT_ OWNERSHIP_CHANGE_GROUP SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP USER_CHANGE_PASSWORD_GROUP BATCH_STARTED_GROUP BATCH_COMPLETED_GROUP DBCC_GROUP DATABASE_OWNERSHIP_CHANGE_GROUP DATABASE_CHANGE_GROUP LEDGER_OPERATION_GROUP

Это группы, охватывающие все инструкции SQL и хранимые процедуры, выполняемые в базе данных, и не должны использоваться в сочетании с другими группами, так как это приведет к дублированию журналов аудита.

Дополнительные сведения см. в разделе Database-Level Группы действий аудита.

Для политики аудита базы данных можно также указать определенные действия (обратите внимание, что действия не могут быть указаны для политики аудита сервера). Поддерживаемые действия для аудита: SELECT UPDATE INSERT DELETE EXECUTE RECEIVE REFERENCES

Общая форма определения действия для аудита: {action} ON {object} BY {principal}

Обратите внимание, что в приведенном выше формате может ссылаться на объект, например таблицу, представление или хранимую процедуру, или всю базу данных или схему. В последних случаях используются формы DATABASE::{db_name} и SCHEMA::{schema_name} соответственно.

Например: SELECT on dbo.myTable by public SELECT on DATABASE::myDatabase by public SELECT on SCHEMA::mySchema by public

Дополнительные сведения см. в разделе Database-Level Действия аудита

properties.isAzureMonitorTargetEnabled

boolean

Указывает, отправляются ли события аудита в Azure Monitor. Чтобы отправить события в Azure Monitor, укажите "Состояние" как "Включено" и "IsAzureMonitorTargetEnabled" как true.

При использовании REST API для настройки аудита необходимо также создать параметры диагностики с категорией журналов диагностики SQLSecurityAuditEvents в базе данных. Обратите внимание, что для аудита уровня сервера следует использовать базу данных master как {databaseName}.

Формат URI URI параметров диагностики: PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview

Дополнительные сведения см. в разделе параметры диагностики REST API или параметров диагностики PowerShell

properties.isDevopsAuditEnabled

boolean

Указывает состояние аудита devops. Если состояние включено, журналы devops будут отправляться в Azure Monitor. Чтобы отправить события в Azure Monitor, укажите "Состояние" как "Включено", "IsAzureMonitorTargetEnabled" как true и IsDevopsAuditEnabled как true

При использовании REST API для настройки аудита необходимо также создать параметры диагностики с категорией журналов диагностики DevOpsOperationsAudit в базе данных master.

Формат URI URI параметров диагностики: PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/master/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview

Дополнительные сведения см. в разделе параметры диагностики REST API или параметров диагностики PowerShell

properties.isManagedIdentityInUse

boolean

Указывает, используется ли управляемое удостоверение для доступа к хранилищу BLOB-объектов

properties.isStorageSecondaryKeyInUse

boolean

Указывает, является ли значение storageAccountAccessKey вторичным ключом хранилища.

properties.predicateExpression

string

Указывает условие расположения предложения при создании аудита.

properties.queueDelayMs

integer (int32)

Определяет количество времени в миллисекундах, которое может пройти до того, как действия аудита будут принудительно обработаны. Минимальное значение по умолчанию — 1000 (1 секунда). Максимальное значение — 2 147 483 647.

properties.retentionDays

integer (int32)

Указывает количество дней для хранения в журналах аудита в учетной записи хранения.

properties.state

BlobAuditingPolicyState

Указывает состояние аудита. Если состояние включено, необходимо использовать storageEndpoint или isAzureMonitorTargetEnabled.

properties.storageAccountAccessKey

string

Указывает ключ идентификатора учетной записи хранения аудита. Если задано состояние "Включено" и storageEndpoint не указано, что storageAccountAccessKey будет использовать управляемое удостоверение, назначаемое системой SQL Server, для доступа к хранилищу. Необходимые условия для использования проверки подлинности управляемого удостоверения:

  1. Назначьте управляемое удостоверение, назначаемое системой, в Azure Active Directory (AAD).
  2. Предоставьте удостоверению SQL Server доступ к учетной записи хранения, добавив роль RBAC "Участник данных BLOB-объектов хранилища" в удостоверение сервера. Дополнительные сведения см. в статье Аудит хранилища с помощью проверки подлинности управляемого удостоверения
properties.storageAccountSubscriptionId

string (uuid)

Указывает идентификатор подписки хранилища BLOB-объектов.

properties.storageEndpoint

string

Указывает конечную точку хранилища BLOB-объектов (например, https://MyAccount.blob.core.windows.net). Если состояние включено, требуется storageEndpoint или isAzureMonitorTargetEnabled.

type

string

Тип ресурса.