共用方式為


Microsoft.Sql servers/extendedAuditingSettings 2020-02-02-preview

Bicep 資源定義

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

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

資源格式

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

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

屬性值

servers/extendedAuditingSettings

名稱 描述
NAME 資源名稱

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

如需詳細資訊,請參閱 父資源外部的子資源
類型資源的符號名稱: 伺服器
properties 資源屬性。 ExtendedServerBlobAuditingPolicyProperties

ExtendedServerBlobAuditingPolicyProperties

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

這些群組涵蓋針對資料庫執行的所有 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
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
bool
isStorageSecondaryKeyInUse 指定 storageAccountAccessKey 值是否為記憶體的次要密鑰。 bool
predicateExpression 指定建立稽核時 where 子句的條件。 字串
queueDelayMs 指定在強制處理稽核動作之前經過的時間長度 (以毫秒為單位)。
預設的最小值為 1000 (1 秒鐘)。 最大值為 2,147,483,647。
int
retentionDays 指定要保留在記憶體帳戶中稽核記錄中的天數。 int
狀態 指定稽核的狀態。 如果狀態為 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 範本資源定義

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

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

資源格式

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

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

屬性值

servers/extendedAuditingSettings

名稱 描述
類型 資源類型 'Microsoft.Sql/servers/extendedAuditingSettings'
apiVersion 資源 API 版本 '2020-02-02-preview'
NAME 資源名稱

請參閱如何在 JSON ARM 樣本中設定子資源的名稱和類型。
'default'
properties 資源屬性。 ExtendedServerBlobAuditingPolicyProperties

ExtendedServerBlobAuditingPolicyProperties

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

這些群組涵蓋針對資料庫執行的所有 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
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
bool
isStorageSecondaryKeyInUse 指定 storageAccountAccessKey 值是否為記憶體的次要密鑰。 bool
predicateExpression 指定建立稽核時 where 子句的條件。 字串
queueDelayMs 指定在強制處理稽核動作之前經過的時間長度 (以毫秒為單位)。
預設的最小值為 1000 (1 秒鐘)。 最大值為 2,147,483,647。
int
retentionDays 指定要保留在記憶體帳戶中稽核記錄中的天數。 int
狀態 指定稽核的狀態。 如果狀態為 Enabled,則需要 storageEndpoint 或 isAzureMonitorTargetEnabled。 'Disabled'
必要) ('Enabled'
storageAccountAccessKey 指定稽核記憶體帳戶的標識碼金鑰。
如果狀態為 Enabled 且 storageEndpoint 已指定,則未指定 storageAccountAccessKey 將會使用 SQL Server 系統指派的受控識別來存取記憶體。
使用受控識別驗證的必要條件:
1.SQL Server 在 Azure Active Directory (AAD) 中指派系統指派的受控識別。
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/extendedAuditingSettings 資源類型可以使用目標作業進行部署:

  • 資源群組

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

資源格式

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

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

屬性值

servers/extendedAuditingSettings

名稱 描述
類型 資源類型 “Microsoft.Sql/servers/extendedAuditingSettings@2020-02-02-preview”
NAME 資源名稱 "default"
parent_id 此資源父系之資源的標識碼。 類型資源的識別碼: 伺服器
properties 資源屬性。 ExtendedServerBlobAuditingPolicyProperties

ExtendedServerBlobAuditingPolicyProperties

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

這些群組涵蓋針對資料庫執行的所有 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
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
bool
isStorageSecondaryKeyInUse 指定 storageAccountAccessKey 值是否為記憶體的次要密鑰。 bool
predicateExpression 指定建立稽核時 where 子句的條件。 字串
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。 字串