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


Server Blob Auditing Policies - Create Or Update

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

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/auditingSettings/default?api-version=2023-08-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.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

ServerBlobAuditingPolicy

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

202 Accepted

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

Заголовки

Location: string

Other Status Codes

ErrorResponse

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

  • 400 ManagedInstanceStoppingOrStoppingOrStopped — конфликтующая операция, отправленная во время остановки или остановки экземпляра

  • 400 ManagedInstanceStarting — конфликтующая операция, отправленная во время запуска экземпляра

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

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

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

  • 400 BlobAuditingInvalidPolicyLength — недопустимая длина политики должна быть в пределах 200 символов.

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

  • 400 BlobAuditingNetworkSecurityPerimeterNotAllowed — периметр сетевой безопасности заблокирован исходящий запрос к учетной записи хранения

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

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

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

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

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

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

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

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

  • 409 CannotCancelOperation — операция управления находится в состоянии, которое не может быть отменено.

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

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

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

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

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

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

Примеры

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

Update a server's 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/auditingSettings/default?api-version=2023-08-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"
    ],
    "isAzureMonitorTargetEnabled": true
  }
}

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

{
  "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/auditingSettings/default",
  "name": "default",
  "type": "Microsoft.Sql/servers/auditingSettings",
  "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"
    ],
    "isAzureMonitorTargetEnabled": true
  }
}

Update a server's 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/auditingSettings/default?api-version=2023-08-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/auditingSettings/default",
  "name": "default",
  "type": "Microsoft.Sql/servers/auditingSettings",
  "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"
    ]
  }
}

Определения

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

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

BlobAuditingPolicyState

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

ErrorAdditionalInfo

Дополнительные сведения об ошибке управления ресурсами.

ErrorDetail

Сведения об ошибке.

ErrorResponse

Ответ на ошибку

ServerBlobAuditingPolicy

Политика аудита больших двоичных объектов сервера.

blobAuditingPolicyName

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

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

BlobAuditingPolicyState

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

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

ErrorAdditionalInfo

Дополнительные сведения об ошибке управления ресурсами.

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

object

Дополнительные сведения.

type

string

Дополнительный тип сведений.

ErrorDetail

Сведения об ошибке.

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

ErrorAdditionalInfo[]

Дополнительные сведения об ошибке.

code

string

Код ошибки.

details

ErrorDetail[]

Сведения об ошибке.

message

string

Сообщение об ошибке.

target

string

Целевой объект ошибки.

ErrorResponse

Ответ на ошибку

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

ErrorDetail

Объект ошибки.

ServerBlobAuditingPolicy

Политика аудита больших двоичных объектов сервера.

Имя Тип Описание
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.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

Тип ресурса.