Database Blob Auditing Policies - Create Or Update

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

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/auditingSettings/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, укажите "Состояние" как "Включено" и "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.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

DatabaseBlobAuditingPolicy

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

201 Created

DatabaseBlobAuditingPolicy

Политика аудита blob-объектов базы данных успешно создана.

Other Status Codes

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

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

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

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

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

  • 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 a database's azure monitor auditing policy with minimal parameters
Create or update a database's blob auditing policy with all parameters
Create or update a database's blob auditing policy with minimal parameters

Create or update a 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/auditingSettings/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/auditingSettings",
  "kind": "V12",
  "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/auditingSettings",
  "kind": "V12",
  "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 a 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/auditingSettings/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"
    ],
    "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/auditingSettings",
  "kind": "V12",
  "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"
    ],
    "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/auditingSettings",
  "kind": "V12",
  "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"
    ],
    "isAzureMonitorTargetEnabled": true
  }
}

Create or update a 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/auditingSettings/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/auditingSettings",
  "kind": "V12",
  "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/auditingSettings",
  "kind": "V12",
  "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.

DatabaseBlobAuditingPolicy

Политика аудита BLOB-объектов базы данных.

blobAuditingPolicyName

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

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

string

BlobAuditingPolicyState

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

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

string

Enabled

string

DatabaseBlobAuditingPolicy

Политика аудита BLOB-объектов базы данных.

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

string

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

kind

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.isManagedIdentityInUse

boolean

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

properties.isStorageSecondaryKeyInUse

boolean

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

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

Тип ресурса.