共用方式為


Microsoft.Sql servers/extendedAuditingSettings 2022-02-01-preview

Bicep 資源定義

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

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

資源格式

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

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

屬性值

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
LEDGER_OPERATION_GROUP

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

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

針對資料庫稽核原則,也可以指定特定動作(請注意,無法為伺服器稽核原則指定動作)。 要稽核的支援動作如下:
選擇
更新
插入
刪除
執行
收到
引用

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

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

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

如需詳細資訊,請參閱 Database-Level 稽核動作
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
isManagedIdentityInUse 指定受控識別是否用來存取 Blob 記憶體 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
Pattern = ^[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。 字串

Microsoft.Sql/servers/extendedAuditingSettings

名字 描述 價值
名字 資源名稱 'default' (必要)
父母 在 Bicep 中,您可以指定子資源的父資源。 只有在父資源外部宣告子資源時,才需要新增這個屬性。

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

ARM 樣本資源定義

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

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

資源格式

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

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

屬性值

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
LEDGER_OPERATION_GROUP

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

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

針對資料庫稽核原則,也可以指定特定動作(請注意,無法為伺服器稽核原則指定動作)。 要稽核的支援動作如下:
選擇
更新
插入
刪除
執行
收到
引用

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

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

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

如需詳細資訊,請參閱 Database-Level 稽核動作
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
isManagedIdentityInUse 指定受控識別是否用來存取 Blob 記憶體 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
Pattern = ^[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。 字串

Microsoft.Sql/servers/extendedAuditingSettings

名字 描述 價值
apiVersion API 版本 '2022-02-01-preview'
名字 資源名稱 'default' (必要)
性能 資源屬性。 ExtendedServerBlobAuditingPolicyProperties
類型 資源類型 'Microsoft.Sql/servers/extendedAuditingSettings'

Terraform (AzAPI 提供者) 資源定義

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

  • 資源群組

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

資源格式

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

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

屬性值

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
LEDGER_OPERATION_GROUP

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

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

針對資料庫稽核原則,也可以指定特定動作(請注意,無法為伺服器稽核原則指定動作)。 要稽核的支援動作如下:
選擇
更新
插入
刪除
執行
收到
引用

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

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

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

如需詳細資訊,請參閱 Database-Level 稽核動作
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
isManagedIdentityInUse 指定受控識別是否用來存取 Blob 記憶體 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
Pattern = ^[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。 字串

Microsoft.Sql/servers/extendedAuditingSettings

名字 描述 價值
名字 資源名稱 'default' (必要)
parent_id 此資源為父系之資源的標識碼。 類型資源的標識碼:伺服器
性能 資源屬性。 ExtendedServerBlobAuditingPolicyProperties
類型 資源類型 “Microsoft.Sql/servers/extendedAuditingSettings@2022-02-01-preview”