你当前正在访问 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-preview

URI 参数

Name In Required Type Description
blobAuditingPolicyName
path True

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 版本。

请求正文

Name Required Type Description
properties.state True

指定审核的状态。 如果状态为 Enabled,则需要 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 SELECT by public SCHEMA::mySchema by public

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

properties.isAzureMonitorTargetEnabled
  • boolean

指定是否将审核事件发送到 Azure Monitor。 若要将事件发送到 Azure Monitor,请将“State”指定为“Enabled”,将“IsAzureMonitorTargetEnabled”指定为 true。

使用 REST API 配置审核时,还应在数据库上创建具有“SQLSecurityAuditEvents”诊断日志类别的诊断设置。 请注意,对于服务器级别审核,应使用“master”数据库作为 {databaseName}。

诊断设置 URI 格式:PUThttps://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

指定审核存储帐户的标识符密钥。 如果状态为 Enabled,并且指定 storageEndpoint,则不指定 storageAccountAccessKey 将使用SQL服务器系统分配的托管标识来访问存储。 使用托管标识身份验证的先决条件:

  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。

响应

Name Type Description
200 OK

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

201 Created

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

Other Status Codes

错误响应: ***

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

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

  • 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-preview

{
  "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-preview

{
  "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-preview

{
  "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

指定审核的状态。 如果状态为 Enabled,则需要 storageEndpoint 或 isAzureMonitorTargetEnabled。

DatabaseBlobAuditingPolicy

数据库 Blob 审核策略。

blobAuditingPolicyName

Blob 审核策略的名称。

Name Type Description
default
  • string

BlobAuditingPolicyState

指定审核的状态。 如果状态为 Enabled,则需要 storageEndpoint 或 isAzureMonitorTargetEnabled。

Name Type Description
Disabled
  • string
Enabled
  • string

DatabaseBlobAuditingPolicy

数据库 Blob 审核策略。

Name Type Description
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} 形式。

例如:SELECT on dbo.myTable by public SELECT on DATABASE::myDatabase by public SELECT on SCHEMA::mySchema by public SELECT by public SCHEMA::mySchema by public

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

properties.isAzureMonitorTargetEnabled
  • boolean

指定是否将审核事件发送到 Azure Monitor。 若要将事件发送到 Azure Monitor,请将“State”指定为“Enabled”,将“IsAzureMonitorTargetEnabled”指定为 true。

使用 REST API 配置审核时,还应在数据库上创建具有“SQLSecurityAuditEvents”诊断日志类别的诊断设置。 请注意,对于服务器级别审核,应使用“master”数据库作为 {databaseName}。

诊断设置 URI 格式:PUThttps://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

指定审核的状态。 如果状态为 Enabled,则需要 storageEndpoint 或 isAzureMonitorTargetEnabled。

properties.storageAccountAccessKey
  • string

指定审核存储帐户的标识符密钥。 如果状态为 Enabled,并且指定 storageEndpoint,则不指定 storageAccountAccessKey 将使用SQL服务器系统分配的托管标识来访问存储。 使用托管标识身份验证的先决条件:

  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

资源类型。