共用方式為


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 參數

名稱 位於 必要 類型 Description
blobAuditingPolicyName
path True

blobAuditingPolicyName

Blob 稽核原則的名稱。

databaseName
path True

string

資料庫的名稱。

resourceGroupName
path True

string

包含資源的資源群組名稱。 您可以從 Azure 資源管理員 API 或入口網站取得這個值。

serverName
path True

string

伺服器的名稱。

subscriptionId
path True

string

可識別 Azure 訂用帳戶的訂用帳戶識別碼。

api-version
query True

string

要用於要求的 API 版本。

要求本文

名稱 必要 類型 Description
properties.state True

BlobAuditingPolicyState

指定稽核的狀態。 如果狀態為 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} 表單。

例如:依 PUBLIC SELECT 在 DATABASE::myDatabase 上的 public SELECT on SCHEMA::mySchema by public SELECT on SCHEMA::mySchema by public

如需詳細資訊,請參閱 資料庫層級稽核動作

properties.isAzureMonitorTargetEnabled

boolean

指定稽核事件是否傳送至 Azure 監視器。 若要將事件傳送至 Azure 監視器,請將 '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.predicateExpression

string

指定建立稽核時 where 子句的條件。

properties.queueDelayMs

integer

指定在強制處理稽核動作之前經過的時間長度 (以毫秒為單位)。 預設的最小值為 1000 (1 秒鐘)。 最大值為 2,147,483,647。

properties.retentionDays

integer

指定要保留在記憶體帳戶中稽核記錄中的天數。

properties.storageAccountAccessKey

string

指定稽核記憶體帳戶的標識碼金鑰。 如果狀態為 Enabled 且 storageEndpoint 已指定,則未指定 storageAccountAccessKey 將會使用 SQL Server 系統指派的受控識別來存取記憶體。 使用受控識別驗證的必要條件:

  1. 在 Azure Active Directory (AAD) 中,指派 SQL Server 系統指派的受控識別。
  2. 將「記憶體 Blob 數據參與者」RBAC 角色新增至伺服器身分識別,將 SQL Server 身分識別存取權授與記憶體帳戶。 如需詳細資訊,請參閱 使用受控識別驗證稽核記憶體
properties.storageAccountSubscriptionId

string

指定 Blob 記憶體訂用帳戶標識碼。

properties.storageEndpoint

string

指定 blob 記憶體端點 (例如 https://MyAccount.blob.core.windows.net) 。 如果狀態為 Enabled,則需要 storageEndpoint 或 isAzureMonitorTargetEnabled。

回應

名稱 類型 Description
200 OK

ExtendedDatabaseBlobAuditingPolicy

成功設定擴充資料庫 Blob 稽核原則。

201 Created

ExtendedDatabaseBlobAuditingPolicy

已成功建立擴充資料庫 Blob 稽核原則。

Other Status Codes

錯誤回應: ≦

  • 400 BlobAuditingIsNotSupportedOnResourceType - 此資源類型目前不支援 Blob 稽核。

  • 400 BlobAuditingPredicateExpressionSyntaxError - 參數 'predicateExpression' 的值無效。

  • 400 InvalidDatabaseBlobAuditingPolicyCreateRequest - 建立資料庫 Blob 稽核原則要求不存在或沒有 properties 物件。

  • 400 InvalidBlobAuditActionsAndGroups - 稽核動作或動作群組無效。

  • 400 DataSecurityInvalidUserSuppliedParameter - 用戶端提供無效的參數值。

  • 400 BlobAuditingPredicateExpressionEmpty - 無效的參數 'predicateExpression',值不能是空的。

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

範例要求

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

範例回覆

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

範例要求

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

範例回覆

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

範例要求

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

範例回覆

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

定義

名稱 Description
blobAuditingPolicyName

Blob 稽核原則的名稱。

BlobAuditingPolicyState

指定稽核的狀態。 如果狀態為 Enabled,則需要 storageEndpoint 或 isAzureMonitorTargetEnabled。

ExtendedDatabaseBlobAuditingPolicy

擴充的資料庫 Blob 稽核原則。

blobAuditingPolicyName

Blob 稽核原則的名稱。

名稱 類型 Description
default

string

BlobAuditingPolicyState

指定稽核的狀態。 如果狀態為 Enabled,則需要 storageEndpoint 或 isAzureMonitorTargetEnabled。

名稱 類型 Description
Disabled

string

Enabled

string

ExtendedDatabaseBlobAuditingPolicy

擴充的資料庫 Blob 稽核原則。

名稱 類型 Description
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} 表單。

例如:依 PUBLIC SELECT 在 DATABASE::myDatabase 上的 public SELECT on SCHEMA::mySchema by public SELECT on SCHEMA::mySchema by public

如需詳細資訊,請參閱 資料庫層級稽核動作

properties.isAzureMonitorTargetEnabled

boolean

指定稽核事件是否傳送至 Azure 監視器。 若要將事件傳送至 Azure 監視器,請將 '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.predicateExpression

string

指定建立稽核時 where 子句的條件。

properties.queueDelayMs

integer

指定在強制處理稽核動作之前經過的時間長度 (以毫秒為單位)。 預設的最小值為 1000 (1 秒鐘)。 最大值為 2,147,483,647。

properties.retentionDays

integer

指定要保留在記憶體帳戶中稽核記錄中的天數。

properties.state

BlobAuditingPolicyState

指定稽核的狀態。 如果狀態為 Enabled,則需要 storageEndpoint 或 isAzureMonitorTargetEnabled。

properties.storageAccountAccessKey

string

指定稽核記憶體帳戶的標識碼金鑰。 如果狀態為 Enabled 且 storageEndpoint 已指定,則未指定 storageAccountAccessKey 將會使用 SQL Server 系統指派的受控識別來存取記憶體。 使用受控識別驗證的必要條件:

  1. 在 Azure Active Directory (AAD) 中,指派 SQL Server 系統指派的受控識別。
  2. 將「記憶體 Blob 數據參與者」RBAC 角色新增至伺服器身分識別,將 SQL Server 身分識別存取權授與記憶體帳戶。 如需詳細資訊,請參閱 使用受控識別驗證稽核記憶體
properties.storageAccountSubscriptionId

string

指定 Blob 記憶體訂用帳戶標識碼。

properties.storageEndpoint

string

指定 blob 記憶體端點 (例如 https://MyAccount.blob.core.windows.net) 。 如果狀態為 Enabled,則需要 storageEndpoint 或 isAzureMonitorTargetEnabled。

type

string

資源類型。