Extended Database Blob Auditing Policies - Create Or Update

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

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

Параметры URI

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

blobAuditingPolicyName

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

databaseName
path True

string

Имя базы данных.

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, укажите "State" как "Включено" и "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.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

ExtendedDatabaseBlobAuditingPolicy

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

201 Created

ExtendedDatabaseBlobAuditingPolicy

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

Other Status Codes

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

  • 400 BlobAuditingIsNotSupportedOnResourceType — аудит BLOB-объектов в настоящее время не поддерживается для этого типа ресурсов.

  • 400 BlobAuditingPredicateExpressionSyntaxError — недопустимое значение параметра "predicateExpression".

  • 400 InvalidDatabaseBlobAuditingPolicyCreateRequest — запрос политики аудита blob-объектов базы данных не существует или не имеет объекта свойств.

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

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

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

  • 400 UpdateNotAllowedOnPausedDatabase — пользователь пытался выполнить обновление приостановленной базы данных.

  • 400 BlobAuditingInsufficientStorageAccountPermissions — недостаточно разрешений на чтение или запись в предоставленной учетной записи хранения.

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

  • 400 BlobAuditingNoServerIdentity — удостоверение сервера настроено неправильно.

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

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

  • 400 BlobAuditingAdalTokenError — операции не удалось получить маркер доступа для учетной записи хранения из-за ошибки Azure Active Directory.

  • 400 BlobAuditingInvalidStorageAccountName — указанная учетная запись хранения недопустимая или не существует.

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

  • 400 BlobAuditingIsNotSupportedOnGeoDr — аудит BLOB-объектов можно настроить только в базах данных-источниках.

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

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

  • 404 SourceDatabaseNotFound — база данных-источник не существует.

  • 404 DatabaseDoesNotExist — пользователь указал имя базы данных, которое не существует в этом экземпляре сервера.

  • 500 DatabaseIsUnavailable — сбой загрузки. Повторите попытку позже.

Примеры

Create or update an extended database's azure monitor auditing policy with minimal parameters
Create or update an extended database's blob auditing policy with all parameters
Create or update an extended database's blob auditing policy with minimal parameters

Create or update an extended database's azure monitor auditing policy with minimal parameters

Sample Request

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

{
  "properties": {
    "state": "Enabled",
    "isAzureMonitorTargetEnabled": true
  }
}

Sample Response

{
  "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/databases/testdb",
  "name": "default",
  "type": "Microsoft.Sql/servers/databases/extendedAuditingSettings",
  "properties": {
    "state": "Enabled",
    "isAzureMonitorTargetEnabled": true,
    "retentionDays": 0,
    "storageAccountSubscriptionId": "00000000-0000-0000-0000-000000000000",
    "auditActionsAndGroups": [
      "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
      "FAILED_DATABASE_AUTHENTICATION_GROUP",
      "BATCH_COMPLETED_GROUP"
    ]
  }
}
{
  "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/databases/testdb",
  "name": "default",
  "type": "Microsoft.Sql/servers/databases/extendedAuditingSettings",
  "properties": {
    "state": "Enabled",
    "isAzureMonitorTargetEnabled": true,
    "retentionDays": 0,
    "storageAccountSubscriptionId": "00000000-0000-0000-0000-000000000000",
    "auditActionsAndGroups": [
      "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
      "FAILED_DATABASE_AUTHENTICATION_GROUP",
      "BATCH_COMPLETED_GROUP"
    ]
  }
}

Create or update an extended database's blob auditing policy with all parameters

Sample Request

PUT https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/databases/testdb/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": [
      "DATABASE_LOGOUT_GROUP",
      "DATABASE_ROLE_MEMBER_CHANGE_GROUP",
      "UPDATE on database::TestDatabaseName by public"
    ],
    "predicateExpression": "statement = 'select 1'",
    "isAzureMonitorTargetEnabled": true
  }
}

Sample Response

{
  "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/databases/testdb",
  "name": "default",
  "type": "Microsoft.Sql/servers/databases/extendedAuditingSettings",
  "properties": {
    "state": "Enabled",
    "storageEndpoint": "https://mystorage.blob.core.windows.net",
    "retentionDays": 0,
    "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
    "isStorageSecondaryKeyInUse": false,
    "queueDelayMs": 4000,
    "auditActionsAndGroups": [
      "DATABASE_LOGOUT_GROUP",
      "DATABASE_ROLE_MEMBER_CHANGE_GROUP",
      "UPDATE on database::TestDatabaseName by public"
    ],
    "predicateExpression": "statement = 'select 1'",
    "isAzureMonitorTargetEnabled": true
  }
}
{
  "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/databases/testdb",
  "name": "default",
  "type": "Microsoft.Sql/servers/databases/extendedAuditingSettings",
  "properties": {
    "state": "Enabled",
    "storageEndpoint": "https://mystorage.blob.core.windows.net",
    "retentionDays": 0,
    "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
    "isStorageSecondaryKeyInUse": false,
    "queueDelayMs": 4000,
    "auditActionsAndGroups": [
      "DATABASE_LOGOUT_GROUP",
      "DATABASE_ROLE_MEMBER_CHANGE_GROUP",
      "UPDATE on database::TestDatabaseName by public"
    ],
    "predicateExpression": "statement = 'select 1'",
    "isAzureMonitorTargetEnabled": true
  }
}

Create or update an extended database's blob auditing policy with minimal parameters

Sample Request

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

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

Sample Response

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

Определения

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

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

BlobAuditingPolicyState

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

ExtendedDatabaseBlobAuditingPolicy

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

blobAuditingPolicyName

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

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

string

BlobAuditingPolicyState

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

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

string

Enabled

string

ExtendedDatabaseBlobAuditingPolicy

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

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

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

Тип ресурса.