你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

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

包含该资源的资源组名称。 可以从 Azure 资源管理器 API 或门户获取此值。

serverName
path True

string

服务器的名称。

subscriptionId
path True

string

用于标识 Azure 订阅的订阅 ID。

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}。

例如:DBo.myTable 上的 SELECT by public SELECT on DATABASE::myDatabase by public SELECT on SCHEMA::mySchema by public SELECT by public

有关详细信息,请参阅 数据库级审核操作

properties.isAzureMonitorTargetEnabled

boolean

指定是否将审核事件发送到 Azure Monitor。 若要将事件发送到 Azure Monitor,请将“State”指定为“Enabled”,将“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. 在 Azure Active Directory (AAD) 中分配SQL Server系统分配的托管标识。
  2. 通过将“存储 Blob 数据参与者”RBAC 角色添加到服务器标识,授予SQL Server标识对存储帐户的访问权限。 有关详细信息,请参阅 使用托管标识身份验证审核存储
properties.storageAccountSubscriptionId

string

指定 Blob 存储订阅 ID。

properties.storageEndpoint

string

指定 blob 存储终结点 (例如 https://MyAccount.blob.core.windows.net) 。 如果状态为 Enabled,则需要 storageEndpoint 或 isAzureMonitorTargetEnabled。

响应

名称 类型 说明
200 OK

DatabaseBlobAuditingPolicy

已成功设置数据库 Blob 审核策略。

201 Created

DatabaseBlobAuditingPolicy

已成功创建数据库 Blob 审核策略。

Other Status Codes

错误响应: ***

  • 400 BlobAuditingIsNotSupportedOnResourceType - 此资源类型当前不支持 Blob 审核。

  • 400 InvalidDatabaseBlobAuditingPolicyCreateRequest - 创建数据库 Blob 审核策略请求不存在或没有 properties 对象。

  • 400 InvalidBlobAuditActionsAndGroups - 无效的审核操作或操作组。

  • 400 DataSecurityInvalidUserSuppliedParameter - 客户端提供的参数值无效。

  • 400 UpdateNotAllowedOnPausedDatabase - 用户尝试对暂停的数据库执行更新。

  • 400 BlobAuditingInsufficientStorageAccountPermissions - 对提供的存储帐户的读取或写入权限不足。

  • 400 BlobAuditingStorageAccountIsDisabled - 提供的存储帐户处于禁用状态。

  • 400 BlobAuditingNoServerIdentity - 未正确配置服务器标识。

  • 400 BlobAuditingStorageOutboundFirewallNotAllowed - 存储帐户不在允许的 FQDN 列表中,因此,出站防火墙规则将阻止请求。

  • 400 InvalidBlobAuditActionsAndGroupsForDW - DW 不支持的审核操作或操作组。

  • 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

资源 ID。

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}。

例如:DBo.myTable 上的 SELECT by public SELECT on DATABASE::myDatabase by public SELECT on SCHEMA::mySchema by public SELECT by public

有关详细信息,请参阅 数据库级审核操作

properties.isAzureMonitorTargetEnabled

boolean

指定是否将审核事件发送到 Azure Monitor。 若要将事件发送到 Azure Monitor,请将“State”指定为“Enabled”,将“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. 在 Azure Active Directory (AAD) 中分配SQL Server系统分配的托管标识。
  2. 通过将“存储 Blob 数据参与者”RBAC 角色添加到服务器标识,授予SQL Server标识对存储帐户的访问权限。 有关详细信息,请参阅 使用托管标识身份验证审核存储
properties.storageAccountSubscriptionId

string

指定 Blob 存储订阅 ID。

properties.storageEndpoint

string

指定 blob 存储终结点 (例如 https://MyAccount.blob.core.windows.net) 。 如果状态为 Enabled,则需要 storageEndpoint 或 isAzureMonitorTargetEnabled。

type

string

资源类型。