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


Extended Server Blob Auditing Policies - Create Or Update

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

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 или портала.

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 и хранимые процедуры, выполняемые в базе данных, и не должны использоваться в сочетании с другими группами, так как это приведет к дублированию журналов аудита.

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

Для политики аудита базы данных также можно указать определенные действия (обратите внимание, что действия не могут быть указаны для политики аудита сервера). Поддерживаемые действия для аудита: 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

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

properties.isAzureMonitorTargetEnabled

boolean

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

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

Формат 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, укажите для параметра State значение Enabled, IsAzureMonitorTargetEnabled — значение true, а для IsDevopsAuditEnabled — значение true.

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

Формат 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

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

properties.queueDelayMs

integer

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

properties.retentionDays

integer

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

properties.storageAccountAccessKey

string

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

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

string

Указывает идентификатор подписки хранилища 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 OperationInterrupted — не удалось завершить операцию с ресурсом, так как она была прервана другой операцией с тем же ресурсом.

  • 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

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

blobAuditingPolicyName

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

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

string

BlobAuditingPolicyState

Указывает состояние аудита. Если состояние — Включено, требуется storageEndpoint или isAzureMonitorTargetEnabled.

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

string

Enabled

string

ExtendedServerBlobAuditingPolicy

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

Имя Тип Описание
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 и хранимые процедуры, выполняемые в базе данных, и не должны использоваться в сочетании с другими группами, так как это приведет к дублированию журналов аудита.

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

Для политики аудита базы данных также можно указать определенные действия (обратите внимание, что действия не могут быть указаны для политики аудита сервера). Поддерживаемые действия для аудита: 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

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

properties.isAzureMonitorTargetEnabled

boolean

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

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

Формат 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, укажите для параметра State значение Enabled, IsAzureMonitorTargetEnabled — значение true, а для IsDevopsAuditEnabled — значение true.

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

Формат 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

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

properties.queueDelayMs

integer

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

properties.retentionDays

integer

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

properties.state

BlobAuditingPolicyState

Указывает состояние аудита. Если состояние — Включено, требуется storageEndpoint или isAzureMonitorTargetEnabled.

properties.storageAccountAccessKey

string

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

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

string

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

properties.storageEndpoint

string

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

type

string

Тип ресурса.