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 |
---|---|---|---|---|
blob
|
path | True |
Blob 稽核原則的名稱。 |
|
database
|
path | True |
string |
資料庫的名稱。 |
resource
|
path | True |
string |
包含資源的資源群組名稱。 您可以從 Azure 資源管理員 API 或入口網站取得這個值。 |
server
|
path | True |
string |
伺服器的名稱。 |
subscription
|
path | True |
string |
可識別 Azure 訂用帳戶的訂用帳戶識別碼。 |
api-version
|
query | True |
string |
要用於要求的 API 版本。 |
要求本文
名稱 | 必要 | 類型 | 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} 表單。 例如:依 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}。 如需詳細資訊,請參閱 診斷設定 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 系統指派的受控識別來存取記憶體。 使用受控識別驗證的必要條件:
|
|
properties.storageAccountSubscriptionId |
string |
指定 Blob 記憶體訂用帳戶標識碼。 |
|
properties.storageEndpoint |
string |
指定 blob 記憶體端點 (例如 https://MyAccount.blob.core.windows.net) 。 如果狀態為 Enabled,則需要 storageEndpoint 或 isAzureMonitorTargetEnabled。 |
回應
名稱 | 類型 | Description |
---|---|---|
200 OK |
成功設定擴充資料庫 Blob 稽核原則。 |
|
201 Created |
已成功建立擴充資料庫 Blob 稽核原則。 |
|
Other Status Codes |
錯誤回應: ≦
|
範例
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 |
---|---|
blob |
Blob 稽核原則的名稱。 |
Blob |
指定稽核的狀態。 如果狀態為 Enabled,則需要 storageEndpoint 或 isAzureMonitorTargetEnabled。 |
Extended |
擴充的資料庫 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}。 如需詳細資訊,請參閱 診斷設定 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 |
指定稽核的狀態。 如果狀態為 Enabled,則需要 storageEndpoint 或 isAzureMonitorTargetEnabled。 |
|
properties.storageAccountAccessKey |
string |
指定稽核記憶體帳戶的標識碼金鑰。 如果狀態為 Enabled 且 storageEndpoint 已指定,則未指定 storageAccountAccessKey 將會使用 SQL Server 系統指派的受控識別來存取記憶體。 使用受控識別驗證的必要條件:
|
properties.storageAccountSubscriptionId |
string |
指定 Blob 記憶體訂用帳戶標識碼。 |
properties.storageEndpoint |
string |
指定 blob 記憶體端點 (例如 https://MyAccount.blob.core.windows.net) 。 如果狀態為 Enabled,則需要 storageEndpoint 或 isAzureMonitorTargetEnabled。 |
type |
string |
資源類型。 |