這很重要
本文適用於商業雲端。 如果您使用政府雲端,請參閱針對機器上適用於 SQL 的 Defender 設定政府進行疑難排解 (英文) 文章。
在開始進行疑難排解步驟之前,您必須在訂用帳戶或 SQL 資源層級啟用機器上適用於 SQL 伺服器的 Defender。
步驟 1:必要的資源和啟用程式
適用於機器上的 SQL Server Defender 會自動在您的機器上建立下列資源:
| 資源類型 | 建立的層級 |
|---|---|
| 系統受控識別(只有在使用者定義受控識別不存在時才建立) | 裝載 SQL Server 實例的虛擬機/已啟用 Arc 的伺服器 |
| 適用於 SQL 的 Defender 擴充功能 | 擴充功能會安裝在裝載 SQL Server 實例的每個虛擬機/已啟用 Arc 的伺服器上 |
當您在訂用帳戶或指定的 SQL Server 上啟用適用於 SQL Server 的 Defender 時,它會執行下列動作來保護每個 SQL Server 實例:
- 如果訂用帳戶中沒有使用者受控識別,系統會建立系統受控識別。
- 在裝載 SQL Server 的虛擬機或啟用 Arc 的伺服器上安裝 SQL Defender 擴充功能。
- 模擬執行 SQL Server 服務 (預設系統管理員角色) 的 Windows 使用者,以存取 SQL Server 實例。
步驟 2:確定您已完成必要條件
訂用帳戶許可權:若要在訂用帳戶上部署方案,包括 Azure 原則,您需要 訂用帳戶擁有者 許可權。
SQL Server 實例許可權:SQL Server 服務帳戶在每個 SQL Server 實例上都必須有 sysadmin 固定伺服器角色,這是預設設定。 深入瞭解 SQL Server 服務帳戶需求。
支援的資源:
- 支援 SQL 虛擬機和 Azure Arc SQL Server 實例。
- 內部部署機器必須 上線至Arc,並註冊為 Azure Arc SQL Server 實例。
通訊:允許透過傳輸控制通訊協定 (TCP) 連接埠 443 使用傳輸層安全性 (TLS) 傳送 HTTPS 流量至 *.<region>.arcdataservices.com URL。 深入瞭解 URL需求。
擴充功能:請確定這些擴充功能不會在您的環境中遭到封鎖。 深入瞭解 限制 Windows VM 上的擴充功能安裝。
- SQL Defender(適用於 IaaS 和 Arc)
- 發行者:Microsoft.Azure.AzureDefenderForSQL
- 類型:AdvancedThreatProtection.Windows
- SQL IaaS 擴充功能 (IaaS)
- 發行者:Microsoft.SqlServer.Management
- 類型:SqlIaaSAgent
- SQL IaaS 延伸模組 (Arc)
- 發行者:Microsoft.AzureData
- 類型:WindowsAgent.SqlServer
- SQL Defender(適用於 IaaS 和 Arc)
支援的 SQL Server 版本 - SQL Server 2012 R2 (11.x) 和更新版本。
支援的作系統 - SQL Server 2012 R2 和更新版本。
步驟 3:識別並解決 SQL Server 實例層級的保護設定錯誤
請遵循 驗證程式 來識別 SQL Server 實例上的保護設定錯誤。
建議 The status of Microsoft SQL Servers on Machines should be protected 可用來驗證 SQL Server 的保護狀態,但建議應在資源層級補救。 任何未受保護的 SQL Server 會在建議的「狀況不良資源」區段中被識別,並在此列出其保護狀態和原因。
這很重要
建議只會每隔 12 小時更新一次。 若要檢查電腦的即時狀態,您必須 確認每個 SQL 伺服器的保護狀態 ,並視需要執行任何疑難解答。
利用相應的異常原因和建議措施來解決配置錯誤:
| 不健康的原因 | 建議的動作 |
|---|---|
| 身份遺失 | 將使用者定義的/系統定義受控識別指派給裝載 SQL Server 實例的虛擬機/已啟用 Arc 的伺服器。 不需要角色型訪問控制許可權。 |
| 適用於 SQL 的 Defender 擴充功能不存在 | 確定 Azure 拒絕原則不會封鎖適用於 SQL 的 Defender 擴充功能: - Publisher:Microsoft.Azure.AzureDefenderForSQL - 類型:AdvancedThreatProtection.Windows 使用提供的指令碼,藉由裝載 SQL Server 執行個體,在虛擬機器上手動安裝適用於 SQL 的 Defender 擴充。 請確定您有 2.X 版或更新版本。 1.執行此腳本 Set-AzVMExtension -Publisher 'Microsoft.Azure.AzureDefenderForSQL' -ExtensionType 'AdvancedThreatProtection.Windows' -ResourceGroupName 'resourceGroupeName' -VMName <Vm name> -Name 'Microsoft.Azure.AzureDefenderForSQL.AdvancedThreatProtection.Windows' -TypeHandlerVersion '2.0' -Location 'vmLocation' -EnableAutomaticUpgrade $true 2. 執行此腳本以設定對應的訂用帳戶內容: connect-AzAccount -Subscription SubscriptionId -UseDeviceAuthentication |
| 適用於 SQL 的 Defender 擴充功能應保持最新狀態 | 在虛擬機/已啟用 Arc 的伺服器資源中的 [擴充功能] 頁面中更新延伸模組。 |
| 安裝適用於 SQL 的 Defender 擴充功能時發生錯誤 | 請查看入口網站中的 Defender for SQL 擴充功能狀態,以取得疑難解答問題的其他資訊。 |
| SQL Server 實例非使用中 | 適用於機器上的 SQL Server Defender 只能保護執行中的 SQL Server 實例。 |
| 權限不足 | 確定 SQL Server 服務帳戶是每個 SQL Server 實例上 sysadmin 固定伺服器角色的成員(預設設定)。 深入瞭解 SQL Server 服務許可權。 |
| 缺乏溝通 | 確保已允許從虛擬機器或已啟用 Arc 的伺服器,經由傳輸層安全性 (TLS) 使用 TCP 連接埠 443 的輸出 HTTPS 流量連線至 *.<region>.arcdataservices.com URL。 深入瞭解 URL需求 |
| 需要 SQL Server 重新啟動 | 重新啟動 SQL Server 實例,讓適用於 SQL Server 的 Defender 安裝生效。 |
| 內部錯誤 | 請連絡支援人員。 |
相同虛擬機上的多個 SQL Server 實例
如果您在相同的虛擬機上安裝多個 SQL Server 實例,則建議 The status of Microsoft SQL Servers on Machines should be protected 無法區分實例。 若要將錯誤訊息與對應的 SQL Server 實例相互關聯,請檢查適用於 SQL 的 Defender 擴充功能底下的錯誤訊息。 適用於 SQL 的 Defender 擴充功能可以顯示每個實例的下列原因:
- 重新啟動 SQL Server
- 檢查權限
- 確定 SQL Server 實例作用中
步驟 4:重新驗證保護狀態
完成每個 SQL Server 實例之所有錯誤的補救之後, 會傳回每個 SQL Server 實例的保護狀態。
![顯示 [擴充功能和應用程式] 區段位置的螢幕快照。](media/troubleshoot-sql-machines-guide/extensions.png)
