共用方式為


Microsoft.Sql servers/databases/auditingSettings 2020-11-01-preview

Bicep 資源定義

伺服器/資料庫/auditingSettings 資源類型可以使用目標作業來部署:

如需每個 API 版本中已變更屬性的清單,請參閱 變更記錄

資源格式

若要建立 Microsoft.Sql/servers/databases/auditingSettings 資源,請將下列 Bicep 新增至您的範本。

resource symbolicname 'Microsoft.Sql/servers/databases/auditingSettings@2020-11-01-preview' = {
  name: 'default'
  parent: resourceSymbolicName
  properties: {
    auditActionsAndGroups: [
      'string'
    ]
    isAzureMonitorTargetEnabled: bool
    isStorageSecondaryKeyInUse: bool
    queueDelayMs: int
    retentionDays: int
    state: 'string'
    storageAccountAccessKey: 'string'
    storageAccountSubscriptionId: 'string'
    storageEndpoint: 'string'
  }
}

屬性值

servers/databases/auditingSettings

名稱 描述
NAME 資源名稱

瞭解如何在 Bicep 中設定子資源的名稱和類型。
'default'
父系 (parent) 在 Bicep 中,您可以指定子資源的父資源。 只有在父資源之外宣告子資源時,才需要新增這個屬性。

如需詳細資訊,請參閱 父資源外部的子資源
類型資源的符號名稱: 資料庫
properties 資源屬性。 DatabaseBlobAuditingPolicyProperties

DatabaseBlobAuditingPolicyProperties

名稱 描述
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

這些群組涵蓋針對資料庫執行的所有 sql 語句和預存程式,不應與其他群組搭配使用,因為這樣會導致重複的稽核記錄。

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

針對資料庫稽核原則,您也可以指定特定動作 (請注意,無法針對伺服器稽核原則指定動作) 。 要稽核的支援動作如下:
SELECT
UPDATE
Insert
刪除
執行 CREATE 陳述式之前,請先執行
RECEIVE
REFERENCES

定義要稽核之動作的一般形式如下:
{action}ON {object} BY {principal}

請注意,上述格式的 {object} 可以參考數據表、檢視或預存程式或整個資料庫或架構等物件。 在後者的情況下,會分別使用DATABASE::{db_name} 和SCHEMA::{schema_name} 表單。

例如:
依 public 在 dbo.myTable 上選取
依公用在 DATABASE::myDatabase 上選取
SELECT on SCHEMA::mySchema by public

如需詳細資訊,請參閱 資料庫層級稽核動作
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
bool
isStorageSecondaryKeyInUse 指定 storageAccountAccessKey 值是否為記憶體的次要密鑰。 bool
queueDelayMs 指定在強制處理稽核動作之前經過的時間長度 (以毫秒為單位)。
預設的最小值為 1000 (1 秒鐘)。 最大值為 2,147,483,647。
int
retentionDays 指定要保留在記憶體帳戶中的稽核記錄中的天數。 int
狀態 指定稽核的狀態。 如果 state 為 Enabled,則需要 storageEndpoint 或 isAzureMonitorTargetEnabled。 'Disabled'
必要 ('Enabled')
storageAccountAccessKey 指定稽核記憶體帳戶的標識碼金鑰。
如果狀態為 Enabled 且指定 storageEndpoint,則未指定 storageAccountAccessKey 將會使用 SQL Server 系統指派的受控識別來存取記憶體。
使用受控識別驗證的必要條件:
1.在 Azure Active Directory (AAD) 中指派系統指派的受控識別 SQL Server。
2.將「記憶體 Blob 數據參與者」RBAC 角色新增至伺服器身分識別,以授與 SQL Server 記憶體帳戶的身分識別存取權。
如需詳細資訊,請參閱 使用受控識別驗證稽核記憶體
字串

約束:
敏感性值。 以安全參數的形式傳入。
storageAccountSubscriptionId 指定 Blob 記憶體訂用帳戶標識碼。 字串

約束:
最小長度 = 36
最大長度 = 36
模式 = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
storageEndpoint 指定 blob 記憶體端點 (例如 https://MyAccount.blob.core.windows.net) 。 如果狀態為 Enabled,則需要 storageEndpoint 或 isAzureMonitorTargetEnabled。 字串

ARM 範本資源定義

servers/databases/auditingSettings 資源類型可以使用目標作業來部署:

如需每個 API 版本中已變更屬性的清單,請參閱 變更記錄檔。

資源格式

若要建立 Microsoft.Sql/servers/databases/auditingSettings 資源,請將下列 JSON 新增至您的範本。

{
  "type": "Microsoft.Sql/servers/databases/auditingSettings",
  "apiVersion": "2020-11-01-preview",
  "name": "default",
  "properties": {
    "auditActionsAndGroups": [ "string" ],
    "isAzureMonitorTargetEnabled": "bool",
    "isStorageSecondaryKeyInUse": "bool",
    "queueDelayMs": "int",
    "retentionDays": "int",
    "state": "string",
    "storageAccountAccessKey": "string",
    "storageAccountSubscriptionId": "string",
    "storageEndpoint": "string"
  }
}

屬性值

servers/databases/auditingSettings

名稱 描述
類型 資源類型 'Microsoft.Sql/servers/databases/auditingSettings'
apiVersion 資源 API 版本 '2020-11-01-preview'
NAME 資源名稱

瞭解如何在 JSON ARM 範本中設定子資源的名稱和類型。
'default'
properties 資源屬性。 DatabaseBlobAuditingPolicyProperties

DatabaseBlobAuditingPolicyProperties

名稱 描述
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

這些群組涵蓋針對資料庫執行的所有 sql 語句和預存程式,不應與其他群組搭配使用,因為這樣會導致重複的稽核記錄。

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

針對資料庫稽核原則,也可以指定特定動作 (請注意,無法為伺服器稽核原則指定動作) 。 要稽核的支援動作如下:
SELECT
UPDATE
Insert
刪除
執行 CREATE 陳述式之前,請先執行
RECEIVE
REFERENCES

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

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

例如:
依公用在 dbo.myTable 上選取
SELECT on DATABASE::myDatabase by public
SELECT on SCHEMA::mySchema by public

如需詳細資訊,請參閱 資料庫層級稽核動作
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
bool
isStorageSecondaryKeyInUse 指定 storageAccountAccessKey 值是否為記憶體的次要密鑰。 bool
queueDelayMs 指定在強制處理稽核動作之前經過的時間長度 (以毫秒為單位)。
預設的最小值為 1000 (1 秒鐘)。 最大值為 2,147,483,647。
int
retentionDays 指定要保留在記憶體帳戶中的稽核記錄中的天數。 int
狀態 指定稽核的狀態。 如果 state 為 Enabled,則需要 storageEndpoint 或 isAzureMonitorTargetEnabled。 'Disabled'
必要 ('Enabled')
storageAccountAccessKey 指定稽核記憶體帳戶的標識碼金鑰。
如果狀態為 Enabled 且指定 storageEndpoint,則未指定 storageAccountAccessKey 將會使用 SQL Server 系統指派的受控識別來存取記憶體。
使用受控識別驗證的必要條件:
1.在 Azure Active Directory (AAD) 中指派系統指派的受控識別 SQL Server。
2.將「記憶體 Blob 數據參與者」RBAC 角色新增至伺服器身分識別,將 SQL Server 身分識別存取權授與記憶體帳戶。
如需詳細資訊,請參閱 使用受控識別驗證稽核記憶體
字串

約束:
敏感性值。 以安全參數的形式傳入。
storageAccountSubscriptionId 指定 Blob 記憶體訂用帳戶標識碼。 字串

約束:
最小長度 = 36
最大長度 = 36
模式 = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
storageEndpoint 指定 blob 記憶體端點 (例如 https://MyAccount.blob.core.windows.net) 。 如果狀態為 Enabled,則需要 storageEndpoint 或 isAzureMonitorTargetEnabled。 字串

Terraform (AzAPI 提供者) 資源定義

servers/databases/auditingSettings 資源類型可以使用目標作業來部署:

  • 資源群組

如需每個 API 版本中已變更屬性的清單,請參閱 變更記錄檔。

資源格式

若要建立 Microsoft.Sql/servers/databases/auditingSettings 資源,請將下列 Terraform 新增至範本。

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Sql/servers/databases/auditingSettings@2020-11-01-preview"
  name = "default"
  parent_id = "string"
  body = jsonencode({
    properties = {
      auditActionsAndGroups = [
        "string"
      ]
      isAzureMonitorTargetEnabled = bool
      isStorageSecondaryKeyInUse = bool
      queueDelayMs = int
      retentionDays = int
      state = "string"
      storageAccountAccessKey = "string"
      storageAccountSubscriptionId = "string"
      storageEndpoint = "string"
    }
  })
}

屬性值

servers/databases/auditingSettings

名稱 描述
類型 資源類型 “Microsoft.Sql/servers/databases/auditingSettings@2020-11-01-preview”
NAME 資源名稱 "default"
parent_id 此資源父系之資源的標識碼。 類型資源的標識碼: 資料庫
properties 資源屬性。 DatabaseBlobAuditingPolicyProperties

DatabaseBlobAuditingPolicyProperties

名稱 描述
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

這些群組涵蓋針對資料庫執行的所有 sql 語句和預存程式,不應與其他群組搭配使用,因為這樣會導致重複的稽核記錄。

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

針對資料庫稽核原則,也可以指定特定動作 (請注意,無法為伺服器稽核原則指定動作) 。 要稽核的支援動作如下:
SELECT
UPDATE
Insert
刪除
執行 CREATE 陳述式之前,請先執行
RECEIVE
REFERENCES

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

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

例如:
依公用在 dbo.myTable 上選取
SELECT on DATABASE::myDatabase by public
SELECT on SCHEMA::mySchema by public

如需詳細資訊,請參閱 資料庫層級稽核動作
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
bool
isStorageSecondaryKeyInUse 指定 storageAccountAccessKey 值是否為記憶體的次要密鑰。 bool
queueDelayMs 指定在強制處理稽核動作之前經過的時間長度 (以毫秒為單位)。
預設的最小值為 1000 (1 秒鐘)。 最大值為 2,147,483,647。
int
retentionDays 指定要保留在記憶體帳戶中的稽核記錄中的天數。 int
狀態 指定稽核的狀態。 如果 state 為 Enabled,則需要 storageEndpoint 或 isAzureMonitorTargetEnabled。 “Disabled”
「已啟用」 (必要)
storageAccountAccessKey 指定稽核記憶體帳戶的標識碼金鑰。
如果狀態為 Enabled 且指定 storageEndpoint,則未指定 storageAccountAccessKey 將會使用 SQL Server 系統指派的受控識別來存取記憶體。
使用受控識別驗證的必要條件:
1.在 Azure Active Directory (AAD) 中指派系統指派的受控識別 SQL Server。
2.將「記憶體 Blob 數據參與者」RBAC 角色新增至伺服器身分識別,將 SQL Server 身分識別存取權授與記憶體帳戶。
如需詳細資訊,請參閱 使用受控識別驗證稽核記憶體
字串

約束:
敏感性值。 以安全參數的形式傳入。
storageAccountSubscriptionId 指定 Blob 記憶體訂用帳戶標識碼。 字串

約束:
最小長度 = 36
最大長度 = 36
模式 = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
storageEndpoint 指定 blob 記憶體端點 (例如 https://MyAccount.blob.core.windows.net) 。 如果狀態為 Enabled,則需要 storageEndpoint 或 isAzureMonitorTargetEnabled。 字串