共用方式為


ServerBlobAuditingPolicy interface

伺服器 Blob 稽核原則。

Extends

屬性

auditActionsAndGroups

指定要稽核的 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 語句和預存程式,且不應與其他群組搭配使用,因為這會導致重複的稽核記錄。

如需詳細資訊,請參閱 Database-Level 稽核動作群組

針對資料庫稽核原則,也可以指定特定動作(請注意,無法為伺服器稽核原則指定動作)。 要稽核的支援動作如下:SELECT UPDATE INSERT DELETE EXECUTE RECEIVE REFERENCES

定義要稽核之動作的一般窗體是: {action} ON {object} BY {principal}

請注意,上述格式可以參照數據表、檢視或預存程式或整個資料庫或架構等物件。 針對後者,會分別使用 DATABASE::{db_name} 和 SCHEMA::{schema_name} 窗體。

例如:依 public SELECT on DATABASE::myDatabase by public SELECT on SCHEMA::mySchema by public SELECT on SCHEMA::mySchema by public

如需詳細資訊,請參閱 Database-Level 稽核動作

isAzureMonitorTargetEnabled

指定稽核事件是否傳送至 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

isDevopsAuditEnabled

指定 devops 稽核的狀態。 如果狀態為 [已啟用],devops 記錄將會傳送至 Azure 監視器。 若要將事件傳送至 Azure 監視器,請將 'State' 指定為 'Enabled'、'IsAzureMonitorTargetEnabled' 為 true,並將 'IsDevopsAuditEnabled' 指定為 true

使用 REST API 設定稽核時,也應該在 master 資料庫上建立具有 『DevOpsOperationsAudit』 診斷記錄類別的診斷設定。

診斷設定 URI 格式:PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/master/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview

如需詳細資訊,請參閱 診斷設定 REST API診斷設定 PowerShell

isManagedIdentityInUse

指定受控識別是否用來存取 Blob 記憶體

isStorageSecondaryKeyInUse

指定 storageAccountAccessKey 值是否為記憶體的次要密鑰。

queueDelayMs

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

retentionDays

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

state

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

storageAccountAccessKey

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

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

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

storageEndpoint

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

繼承的屬性

id

資源標識碼。 注意:這個屬性不會串行化。 它只能由伺服器填入。

name

資源名稱。 注意:這個屬性不會串行化。 它只能由伺服器填入。

type

資源類型。 注意:這個屬性不會串行化。 它只能由伺服器填入。

屬性詳細資料

auditActionsAndGroups

指定要稽核的 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 語句和預存程式,且不應與其他群組搭配使用,因為這會導致重複的稽核記錄。

如需詳細資訊,請參閱 Database-Level 稽核動作群組

針對資料庫稽核原則,也可以指定特定動作(請注意,無法為伺服器稽核原則指定動作)。 要稽核的支援動作如下:SELECT UPDATE INSERT DELETE EXECUTE RECEIVE REFERENCES

定義要稽核之動作的一般窗體是: {action} ON {object} BY {principal}

請注意,上述格式可以參照數據表、檢視或預存程式或整個資料庫或架構等物件。 針對後者,會分別使用 DATABASE::{db_name} 和 SCHEMA::{schema_name} 窗體。

例如:依 public SELECT on DATABASE::myDatabase by public SELECT on SCHEMA::mySchema by public SELECT on SCHEMA::mySchema by public

如需詳細資訊,請參閱 Database-Level 稽核動作

auditActionsAndGroups?: string[]

屬性值

string[]

isAzureMonitorTargetEnabled

指定稽核事件是否傳送至 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

isAzureMonitorTargetEnabled?: boolean

屬性值

boolean

isDevopsAuditEnabled

指定 devops 稽核的狀態。 如果狀態為 [已啟用],devops 記錄將會傳送至 Azure 監視器。 若要將事件傳送至 Azure 監視器,請將 'State' 指定為 'Enabled'、'IsAzureMonitorTargetEnabled' 為 true,並將 'IsDevopsAuditEnabled' 指定為 true

使用 REST API 設定稽核時,也應該在 master 資料庫上建立具有 『DevOpsOperationsAudit』 診斷記錄類別的診斷設定。

診斷設定 URI 格式:PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/master/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview

如需詳細資訊,請參閱 診斷設定 REST API診斷設定 PowerShell

isDevopsAuditEnabled?: boolean

屬性值

boolean

isManagedIdentityInUse

指定受控識別是否用來存取 Blob 記憶體

isManagedIdentityInUse?: boolean

屬性值

boolean

isStorageSecondaryKeyInUse

指定 storageAccountAccessKey 值是否為記憶體的次要密鑰。

isStorageSecondaryKeyInUse?: boolean

屬性值

boolean

queueDelayMs

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

queueDelayMs?: number

屬性值

number

retentionDays

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

retentionDays?: number

屬性值

number

state

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

state?: BlobAuditingPolicyState

屬性值

storageAccountAccessKey

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

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

屬性值

string

storageAccountSubscriptionId

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

storageAccountSubscriptionId?: string

屬性值

string

storageEndpoint

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

storageEndpoint?: string

屬性值

string

繼承的屬性詳細資料

id

資源標識碼。 注意:這個屬性不會串行化。 它只能由伺服器填入。

id?: string

屬性值

string

繼承自ProxyResource.id

name

資源名稱。 注意:這個屬性不會串行化。 它只能由伺服器填入。

name?: string

屬性值

string

繼承自ProxyResource.name

type

資源類型。 注意:這個屬性不會串行化。 它只能由伺服器填入。

type?: string

屬性值

string

繼承自ProxyResource.type