建立及設定資料庫監看員 (預覽版)
適用於: Azure SQL 資料庫 Azure SQL 受控執行個體
本文包含在 Azure 入口網站 中針對 Azure SQL 資料庫和 Azure SQL 受控執行個體建立、設定及啟動資料庫監看員的詳細步驟。
資料庫監看員無需部署和維護任何監視代理程式或其他監視基礎結構。 您可以在幾分鐘內啟用 Azure SQL 資源的深入資料庫監視。
如需建立和設定資料庫監看員的簡易逐步範例,請參閱快速入門:建立資料庫監看員以監視 Azure SQL。
若要了解如何使用 Bicep 或 ARM 範本建立及設定資料庫監看員,請參閱建立資料庫監看員程式碼範例。
若要以程式設計方式管理資料庫監看員,請參閱資料庫監看員 REST API 文件。
注意
資料庫監看員目前為預覽狀態。
必要條件
若要使用資料庫監看員,需要具備下列必要條件。
您需要作用中的 Azure 訂用帳戶。 如果您沒有訂用帳戶,請建立免費帳戶。 您必須是訂用帳戶或資源群組的參與者角色或擁有者角色的成員,才能建立資源。
若要設定並啟動資料庫監看員,您需要現有的 SQL 目標:Azure SQL 資料庫、彈性集區或 SQL 受控執行個體。
- 如果您尚未建立 Azure SQL 資料庫,請瀏覽快速入門:建立單一資料庫。 尋找使用供應項目以免費試用 Azure SQL 資料庫(預覽版) 的選項。
- 或者,免費試用 Azure SQL 受控執行個體 (預覽版)。
您必須在 Azure 訂用帳戶上註冊
Microsoft.DatabaseWatcher
、Microsoft.Kusto
和Microsoft.Network
資源提供者。- 若要使用 SQL 驗證連線到 Azure SQL 資源,還必須註冊
Microsoft.KeyVault
資源提供者。 請參閱使用 SQL 驗證的其他組態。
如果您擁有訂用帳戶層級的擁有者或參與者 RBAC 角色會員資格,則資源提供者註冊為自動。 否則,其中一個角色中的使用者必須先註冊資源提供者,才能建立及設定監看員。 如需更多資訊,請參閱註冊資源業者。
- 若要使用 SQL 驗證連線到 Azure SQL 資源,還必須註冊
建立及設定監看員和 Azure Data Explorer 叢集資源的使用者,必須是建立這些資源之資源群組或訂用帳戶的擁有者或參與者 RBAC 角色成員。
此外,如果使用 SQL 驗證,使用者必須是資源群組的擁有者角色成員,或是儲存 SQL 驗證認證的金鑰保存庫的擁有者或使用者存取系統管理員角色的成員。
設定監看員的使用者必須具有存取 Azure SQL 目標的系統管理員權限。 管理員應向監看員授與對 SQL 監視目標的有限、特定存取權。 如需詳細資訊,請參閱授與對目標的存取權。
若要授與監看員對 SQL 目標的存取權,管理員必須使用 SQL Server Management Studio (SSMS)、Azure Data Studio 或 Visual Studio Code 以及 SQL Server mssql 擴充功能來執行 T-SQL 指令碼。
若要使用 Azure Private Link 實現與 Azure 資源的私人連線,核准私人端點的使用者必須是擁有者 RBAC 角色的成員,或必須具有必要的 RBAC 權限。 如需詳細資訊,請參閱私人端點的核准 Approval RBAC。
建立監看員
在 Azure 入口網站的導覽功能表中,選取 [所有服務]。 選取 [監視] 作為類別,然後在 [監視工具] 底下,選取 [資料庫監看員]。 或者,您可以在入口網站頁面頂端的 [搜尋] 框中輸入資料庫監看員,然後選取 [資料庫監看員]。
[資料庫監看員] 檢視開啟後,請選取 [建立]。
在 [基本] 索引標籤上,選取監看員的訂用帳戶和資源群組,輸入監看員的名稱,然後選取監看員的 Azure 區域。
提示
在預覽期間,如果您的區域尚未提供資料庫監看員,您可以在不同的區域中建立。 如需詳細資訊,請參閱區域可用性。
在 [ 身分 識別] 索引標籤上,預設會啟用監看員系統指派的受控識別。 如果您希望監看員改用使用者指派的受控識別,請選取 [新增 ] 按鈕、尋找您想要使用的身分識別,然後選取 [ 新增 ] 按鈕。 若要讓使用者指派的身分識別對監看員有效,請停用系統指派的受控識別。
如需資料庫監看員中受控識別的詳細資訊,請參閱 修改監看員身分識別。
選擇監看員的資料存放區。
建立監看員預設也會建立 Azure Data Explorer 叢集,並將該叢集上的資料庫新增為所收集監視資料的資料存放區。
根據預設,新的 Azure Data Explorer 叢集會使用額外的小型計算最佳化 SKU。 這是一款最經濟實惠的 SKU,且仍可提供服務等級協定 (SLA)。 您可以稍後視需要縮放此叢集。
或者,您可以在現有的 Azure Data Explorer 叢集、免費的 Azure Data Explorer 叢集或即時分析上使用資料庫。
- 在 [資料存放區] 索引標籤上,選擇 [選取資料存放區] 選項,然後選取 [新增]。
- 選取即時分析資料庫或 Azure Data Explorer 叢集。
- 如果使用現有的 Azure Data Explorer 叢集,您必須啟用串流擷取。
- 建立新的資料庫或使用現有的資料庫。
注意
您選取的任何現有資料庫必須是空的,或必須是您先前用來作為資料庫監看員資料存放區的資料庫。 不支援選取包含非資料庫監看員建立的任何物件的資料庫。
或者,您此時可以略過新增資料存放區,稍後再新增。 啟動監看員需要資料存放區。
在 [SQL 目標] 索引標籤上,新增一或多個要監視的 Azure SQL 資源。 您可以在建立監看員時略過新增 SQL 目標,稍後再新增。 您需要先新增至少一個目標,然後再啟動監看員。
在 [檢閱 + 建立] 索引標簽上,檢閱監看員設定,然後選取 [建立]。 如果選取預設選項來建立新的 Azure Data Explorer 叢集,部署通常需要 15-20 分鐘。 如果在現有的 Azure Data Explorer 叢集、免費 Azure Data Explorer 叢集或即時分析上選取資料庫,則部署通常需要長達五分鐘的時間。
部署完成後,授與監看員對 SQL 目標的存取權。
您可能也需要將數據存放區的存取權授與監看員。
- 當建立監看員的使用者為叢集的擁有者 RBAC 角色之成員時,系統會在建立監看員時自動授與全新或現有 Azure Data Explorer 叢集叢集上資料庫的存取權。
- 不過,如果選取以下項目中的資料庫,則必須使用 KQL 命令來授與對資料存放區的存取權:
- Microsoft Fabric 中的即時分析。
- 免費的 Azure 數據總管叢集。
-
- 如果 SQL 目標上的公用存取已啟用資料存放區和金鑰保存庫,而且您想要使用公用連線,請確定已滿足所有 公用連線 必要條件。
啟動和停止監看員
建立監看員時,它不會自動啟動,因為可能需要其他設定。
若要啟動監看員,其必須具有:
- 資料存放區。
- 至少一個目標。
- 對資料存放區和目標的存取權。
- 如果已針對任何目標選取 SQL 驗證,也需要存取金鑰保存庫。
- 對目標的金鑰保存庫 (如果使用 SQL 驗證) 及資料存放區的私人或公用連線。
- 若要使用私人連線,請建立私人端點。
完整設定監看員之後,使用 [概觀] 頁面上的 [開始] 按鈕來啟動資料收集。 幾分鐘後,新的監視資料會在資料存放區中和儀表板上顯示。 如果您在五分鐘內看不到新的資料,請參閱疑難排解。
如果您不需要監視 Azure SQL 資源一段時間,可以使用 [停止] 按鈕來停止監看員。
若要重新啟動監看員,請停止它,然後再次予以啟動。
修改監看員
在 Azure 入口網站 中,您可以新增或刪除目標、建立或刪除私人端點、針對現有的監看員使用不同的數據存放區,或修改監看員的受控識別。
注意
除非另有不同說明,否則您在停止並重新啟動監看員之後,對監看員設定所做的變更即會生效。
將 SQL 目標新增至監看員
若要啟用對 Azure SQL 資料庫、彈性集區或 SQL 受控執行個體的資料庫監看員監視,您需要將此資源新增為 SQL 目標。
- 若要新增目標,請在 [SQL 目標] 頁面上,選取 [新增]。
- 尋找您想要監視的 Azure SQL 資源。 選取資源類型和訂用帳戶,然後從資源清單中選取 SQL 目標。 SQL 目標可以位於與監看員同一個 Microsoft Entra ID 租用戶內的任何訂用帳戶中。
- 若要監視資料庫、彈性集區或 SQL 受控實例的主要複本和高可用性次要複本,請為相同的資源新增兩個不同的 SQL 目標,然後核取其中一個的 [讀取意圖] 方塊。 同樣地,針對異地複本及其高可用性次要複本建立兩個不同的 SQL 目標,如果有的話。
- 核取 [讀取意圖] 方塊可僅設定高可用性次要複本的 SQL 目標。
- 如果您想要只監視主要複本或僅異地複本,或此資源的高可用性次要複本不存在,或已停用讀取向外延展功能,請勿核取 [讀取意圖] 方塊。
根據預設,資料庫監看員在連線到 SQL 目標時,會使用 Microsoft Entra 驗證。 如果您想要監看員使用 SQL 驗證,請核取 [使用 SQL 驗證] 方塊,然後輸入必要詳細資料。 如需詳細資訊,請參閱使用 SQL 驗證的其他設定。
從監看員移除 SQL 目標
若要移除一或多個目標,請開啟 [SQL 目標] 頁面,選取您想要在清單中移除的目標,然後選取 [刪除]。
若移除目標,則會在監看員重新啟動後,停止監視 Azure SQL 資源,但不會刪除實際資源。
如果您刪除由資料庫監看員監視的 Azure SQL 資源,還應移除對應的目標。 由於監看員可以擁有的 SQL 目標數目有限,因此保留已淘汰的目標可能會阻止您新增目標。
建立受控私人端點
如果您想要使用私人連線從 SQL 目標收集資料、擷取至資料存放區,以及連線到金鑰保存庫,則必須建立受控私人端點。 如果您未建立私人端點,資料庫監看員預設為使用公用連線。
注意
資料庫監看員需要自己的受控私人端點才能連線到 Azure 資源。 監看員無法使用 Azure SQL 邏輯伺服器、SQL 受控執行個體、Azure 資料總管叢集或金鑰保存庫的可能已經存在的任何私人端點。
若要為監看員建立受控私人端點:
如果您為其建立受控私人端點的資源、資源群組或訂用帳戶上有唯讀鎖定,請移除鎖定。 成功建立私人端點之後,可以再次新增鎖定。
瀏覽至 Azure 入口網站中的資料庫監看員,開啟 [受控私人端點] 頁面,然後選取 [新增]。
輸入私人端點的名稱。
選取您要為其建立私人端點的 Azure 資源的訂用帳戶。
根據您想要建立私人端點的資源類型,選取 [資源類型] 和 [目標子資源],如下所示:
資源 資源類型 目標子資源 邏輯伺服器 Microsoft.Sql/servers
sqlServer
SQL 受控執行個體 Microsoft.Sql/managedInstances
managedInstance
Azure Data Explorer 叢集 Microsoft.Kusto/clusters
cluster
Key vault Microsoft.KeyVault/vaults
vault
選取您要為其建立私人端點的資源。 這可以是 Azure SQL 邏輯伺服器、SQL 受控實例、Azure 數據總管叢集或密鑰保存庫。
- 為 Azure SQL 資料庫邏輯伺服器建立私人端點,即可為該伺服器上所有資料庫和彈性集區目標的資料庫監看員啟用私人連線。
或者,輸入私人端點的描述。 這樣有助於資源擁有者核准要求。
選取 建立。 建立私人端點可能需要幾分鐘的時間。 一旦私人端點的佈建狀態從 [已接受] 或 [執行中] 變更為 [已成功] 之後,就會建立私人端點。 重新整理檢視,以查看目前的佈建狀態。
重要
私人端點會以 [擱置] 狀態建立。 在資料庫監看員可以使用它連接到資源之前,必須先獲得資源擁有者的核准。
若要讓資源擁有者控制網路連線,資料庫監看員私人端點不會自動核准。
資源擁有者必須核准私人端點要求。
- 在 Azure 入口網站中,資源的擁有者可搜尋 [私人連結],以開啟 Private Link 中心。 在 [擱置連線] 底下,尋找您建立的私人端點,確認其描述和詳細資料,然後選取 [核准]。
- 您也可以使用 Azure CLI 核准私人端點要求。
如果監看員已在核准私人端點時執行,則必須重新啟動,才能開始使用私人連線。
提示
如果已停用叢集公用連線,您必須為 Azure 數據總管叢集建立額外的私人端點。 如需詳細資訊,請參閱資料存放區的私人連線。
刪除受控私人端點
- 如果您為其刪除或唯讀受控私人端點的資源、資源群組或訂用帳戶上有刪除鎖定,請移除鎖定。 成功刪除私人端點之後,可以再次新增鎖定。
- 在資料庫監看員的 [Azure 入口網站] 頁面中,開啟 [受控私人端點] 頁面。
- 選取您要刪除的私人端點。
- 選取 [刪除]。
刪除受控私人端點會停止使用此私人端點之 SQL 目標的資料收集。 刪除 Azure Data Explorer 叢集的受控私人端點會停止所有目標的資料收集。 若要繼續資料收集,請重新建立私人端點或啟用公用連線,然後重新啟動監看員。
變更監看員的資料存放區
監看員只能有一個資料存放區。
若要變更目前的資料存放區,請移除現有的資料存放區,然後新增資料存放區。
若要移除目前的資料存放區,請開啟 [資料存放區] 頁面,選取方格中的資料存放區,然後選取 [刪除]。
- 移除資料存放區並不會刪除 Azure Data Explorer 叢集或 Microsoft Fabric 中的即時分析上的實際資料存放區資料庫。
- 若要停止資料收集至已移除的資料存放區,請停止監看員。
- 如果您移除資料存放區,您必須先新增資料存放區,才能再次啟動監看員。
若要新增資料存放區,請選取 [資料存放區] 頁面上的 [新增],然後在 Azure Data Explorer 叢集或即時分析中選取或建立資料庫。
- 您選取的資料庫必須是空的,或必須是您先前用來作為資料庫監看員資料存放區的資料庫。 不支援選取包含非資料庫監看員建立的任何物件的資料庫。
- 新增資料存放區之後,您必須授與監看員使用它的存取權。 如需詳細資訊,請參閱授與對資料存放區的存取權。
- 重新啟動監看員之後,它會開始使用新的資料存放區。
修改監看員身分識別
監看員必須具有受控識別,才能向 SQL 目標、金鑰保存庫和數據存放區進行驗證。 您可以使用系統指派或使用者指派的受控識別。 如需 Azure 中受控識別的詳細資訊,請參閱 什麼是 Azure 資源的受控識別?
下列考慮可協助您選擇監看員的受控識別類型:
系統指派
使用者指派
- 只有在監看員停用系統指派的身分識別時,才會生效。
- 相同的使用者指派身分識別可以指派給多個監看員,以簡化存取管理,例如監視大型 Azure SQL 資產時。 您可以授與單一使用者指派身分識別的存取權,而不是將存取權授與多個監看員的系統指派身分識別。
- 為了支持職責分離,身分識別管理可以與監看員管理分開。 在建立監看員之前或之後,可以建立使用者指派的身分識別,並授與其他使用者的存取權。
- 相反地,刪除監看員時,使用者指派的身分識別及其存取權會保持不變。 然後,相同的身分識別可以用於新的監看員。
- 不支援為監看員指定多個使用者指派的身分識別。
若要修改監看員的受控識別,請開啟監看員的 [ 身 分識別] 頁面。
若要使用系統指派的身分識別,請啟用 [ 系統指派的身分 識別] 切換。
若要使用使用者指派的身分識別,請停用系統 指派的身 分識別切換。 選取 [ 新增 ] 按鈕,以尋找並新增現有的使用者指派身分識別。
若要建立新的使用者指派的身分識別,請參閱 建立使用者指派的受控識別。
若要從監看員移除使用者指派的身分識別,請在清單中選取該身分識別,然後選取 [ 移除]。 拿掉使用者指派的身分識別之後,您必須新增不同的使用者指派身分識別,或啟用系統指派的身分識別。
拿掉的使用者指派身分識別不會從 Microsoft Entra ID 租使用者中刪除。
選取 [儲存 ] 按鈕以儲存身分識別變更。 如果這會導致監看員沒有身分識別,則您無法儲存身分識別變更。 不支持沒有有效受控識別的監看員。
提示
建議您在Microsoft Entra ID 租使用者內,監看員受控識別的顯示名稱是唯一的。 您可以在為監看員建立使用者指派的身分識別時,選擇唯一的名稱。
系統指派身分識別的顯示名稱與監看員名稱相同。 如果您使用系統指派的身分識別,請確定監看員名稱在您Microsoft Entra ID 租使用者中是唯一的。
如果受控識別顯示名稱不是唯一的, 則授與監看員對SQL目標的存取權的 T-SQL 腳本 會失敗,並出現重複的顯示名稱錯誤。 如需詳細資訊和因應措施,請參閱 Microsoft Entra 登入和具有非唯一顯示名稱的使用者。
儲存身分識別變更后不久,監看員會重新連線到 SQL 目標、密鑰保存庫(如果使用),以及使用其目前受控識別的數據存放區。
刪除監看員
如果監看員、其資源群組或其訂用帳戶上有刪除或唯讀鎖定,請移除鎖定。 成功刪除監看員之後,可以再次新增鎖定。
當您刪除已啟用其系統指派受控識別的監看員時,也會刪除身分識別。 這樣一來,就會移除您授與此身分識別的任何存取權。 如果您稍後重新建立監看員,則必須將存取權授與新監看員指派的受控識別,以向每個資源進行驗證。 這包括:
您必須授與重新建立的監看員存取權,即使您使用相同的監看員名稱也是如此。
當您刪除監看員時,不會刪除參考為 SQL 目標的 Azure 資源,而且不會刪除資料存放區。 您可以在資料存放區中保留收集的 SQL 監視資料,如果稍後建立新的監看員,則可以使用與資料存放區相同的 Azure Data Explorer 或 Real-Time Analytics 資料庫。
授與對 SQL 目標的存取權
若要允許監看員收集 SQL 監視資料,您需要執行 T-SQL 指令碼來授與監看員特定、有限的 SQL 權限。
若要在 Azure SQL 資料庫中執行指令碼,您需要伺服器管理員存取包含您要監視的資料庫和彈性集區的邏輯伺服器。
- 在 Azure SQL 資料庫中,您只需要針對您建立的每個監看員,為每個邏輯伺服器執行指令碼一次。 這會授與監看員對該伺服器上所有現有和新的資料庫和彈性集區的存取權。
若要在 Azure SQL 受控執行個體中執行指令碼,您必須是
sysadmin
或securityadmin
伺服器角色的成員,或具有 SQL 受控執行個體上的CONTROL
伺服器權限。- 在 Azure SQL 受控執行個體中,您需要在想要監視的每個執行個體上執行指令碼。
瀏覽至 Azure 入口網站中的監看員,選取 [SQL 目標],選取其中一個 [授與存取權] 連結以開啟 T-SQL 指令碼,然後複製指令碼。 務必為目標型別選擇正確的連結,以及您想要使用的驗證類型。
重要
Azure 入口網站 中的Microsoft Entra 驗證腳本是監看員特有的,因為它包含監看員的受控識別名稱。 如需您可為每個監看員自訂的一般指令碼版本,請參閱使用 T-SQL 指令碼授與對 SQL 目標的存取權。
在 SQL Server Management Studio、Azure Data Studio 或任何其他 SQL 用戶端工具中,開啟新的查詢時段,並將它連線到包含目標的 Azure SQL 邏輯伺服器上的
master
資料庫,或連線到 SQL 受控執行個體目標上的master
資料庫。貼上並執行 T-SQL 指令碼,以授與監看員存取權。 指令碼會建立登入,監看員可將其用來連線並授與特定、有限權限,以收集監視資料。
- 如果您使用Microsoft Entra 驗證腳本,且監看員會使用系統指派的受控識別,則必須在執行腳本時建立監看員。 如果監看員將使用使用者指派的受控識別,您可以在建立監看員之前或之後執行腳本。
執行授與受控識別存取權的 T-SQL 存取腳本時,您必須與 Microsoft Entra 驗證連線。
如果您稍後將新的目標新增至監看員,則您需要以類似的方式授與對這些目標的存取權,除非這些目標位於已授與存取權的邏輯伺服器上。
使用 T-SQL 指令碼授與對 SQL 目標的存取權
Microsoft Entra 驗證和 SQL 驗證以及 Azure SQL 資料庫和 Azure SQL 受控執行個體目標具有不同的指令碼。
重要
一律使用提供的指令碼來授與資料庫監看員存取權。 以不同的方式授與存取權可以阻止資料收集。 如需詳細資訊,請參閱監看員授權。
在執行指令碼之前,請以實際值取代指令碼中可能出現的所有預留位置執行個體,例如 login-name-placeholder
和 password-placeholder
。
授與 Microsoft Entra 已驗證監看員存取權
此指令碼會在 Azure SQL 資料庫中的邏輯伺服器上建立 Microsoft Entra (舊稱為 Azure Active Directory) 驗證登入。 系統會為監看員的受控識別建立登入。 指令碼會授與監看員必要且足夠的權限,以收集邏輯伺服器上所有資料庫和彈性集區的監視資料。
如果監看員使用系統指派的受控識別,您必須使用監看員名稱作為登入名稱。 如果監看員使用使用者指派的受控識別,您必須使用身分識別的顯示名稱作為登入名稱。
必須在邏輯伺服器上的 master
資料庫中執行指令碼。 您必須使用 Microsoft Entra 驗證登入 (即伺服器管理員) 來登入。
CREATE LOGIN [identity-name-placeholder] FROM EXTERNAL PROVIDER;
ALTER SERVER ROLE ##MS_ServerPerformanceStateReader## ADD MEMBER [identity-name-placeholder];
ALTER SERVER ROLE ##MS_DefinitionReader## ADD MEMBER [identity-name-placeholder];
ALTER SERVER ROLE ##MS_DatabaseConnector## ADD MEMBER [identity-name-placeholder];
授與 SQL 已驗證監看員存取權
使用 SQL 驗證時需要其他步驟,請參閱使用 SQL 驗證的其他設定。
此指令碼會在 Azure SQL 資料庫的邏輯伺服器上建立 SQL 驗證登入。 它會授與登入必要且足夠的權限,以收集該邏輯伺服器上所有資料庫和彈性集區的監視資料。
指令碼必須使用邏輯伺服器管理員的登入,在邏輯伺服器上的 master
資料庫中執行。
CREATE LOGIN [login-name-placeholder] WITH PASSWORD = 'password-placeholder';
ALTER SERVER ROLE ##MS_ServerPerformanceStateReader## ADD MEMBER [login-name-placeholder];
ALTER SERVER ROLE ##MS_DefinitionReader## ADD MEMBER [login-name-placeholder];
ALTER SERVER ROLE ##MS_DatabaseConnector## ADD MEMBER [login-name-placeholder];
使用 SQL 驗證的其他設定
若要安全地儲存驗證認證,請在資料庫監看員中使用 SQL 驗證需要其他設定。
提示
如需更安全、更簡單且較不容易出錯的組態,建議您為 Azure SQL 資源啟用 Microsoft Entra 驗證,並使用它,而不是 SQL 驗證。
若要設定資料庫監看員可使用 SQL 驗證連線到目標,請遵循下列步驟:
在 Azure Key Vault 中建立保存庫,或識別可以使用的現有保存庫。 保存庫必須使用 RBAC 權限模型。 RBAC 權限模型是新保存庫的預設值。 如果您想要使用現有保存庫,請確定它未設定為使用較舊的存取原則模型。
如果您想要使用與保存庫的私人連線,請在 [受控私人端點] 頁面上建立私人端點。 選取
Microsoft.KeyVault/vaults
為 [資源類型],然後選取vault
為 [目標子資源]。 請確定私人端點處於已核准狀態,然後再啟動監看員。如果您想要使用公用連線,則保存庫必須允許來自所有網路的公用存取。 資料庫監看員不支援限制對特定網路的公用保存庫連線。
在您想要監視的每個 Azure SQL 邏輯伺服器或受控執行個體上建立 SQL 驗證登入,並使用提供的存取指令碼來授與特定、有限的權限。 在指令碼中,將登入名稱和密碼預留位置取代為實際值。 請使用強式密碼。
在保存庫中,建立兩個祕密:登入名稱的祕密,以及密碼的單獨祕密。 使用任何有效的名稱作為祕密名稱,並輸入您在 T-SQL 指令碼中使用的登入名稱和密碼作為每個祕密的祕密值。
例如,這兩個祕密的名稱可能是
database-watcher-login-name
和database-watcher-password
。 祕密值將是登入名稱和強式密碼。若要建立祕密,您必須是金鑰保存庫祕密員 RBAC 角色的成員。
新增 SQL 目標至監看員。 新增目標時,核取使用 SQL 驗證方塊,然後選取儲存登入名稱和密碼祕密的保存庫。 在對應欄位中,輸入登入名稱和密碼的祕密名稱。
新增 SQL 目標時,請勿輸入實際的登入名稱和密碼。 使用先前的範例,您可輸入
database-watcher-login-name
和database-watcher-password
祕密名稱。當您在 Azure 入口網站 中新增 SQL 目標時,如果目前使用者是密鑰保存庫角色的成員,或密鑰保存庫的使用者存取系統管理員角色的成員,監看員的受控識別會自動獲得密鑰保存庫密碼的必要存取權。 否則,請依照下一個步驟手動授與必要的存取權。
從每個祕密的 [存取控制 (IAM)] 頁面,在金鑰保存庫祕密使用者RBAC 角色中,為監看員的受控識別新增角色指派。 若要遵循最低權限原則,請為每個祕密 (而非整個保存庫) 新增此角色指派。 只有在保存庫設定為使用 RBAC 權限模型時,才會顯示存取控制 (IAM) 頁面。
如果您想要在不同的 SQL 目標上使用不同的 SQL 驗證認證,您需要建立多個祕密對。 您可以使用相同的保存庫或不同的保存庫來儲存每個 SQL 目標的祕密。
注意
如果您在監看員執行時更新金鑰保存庫中登入名稱或密碼的祕密值,監看員會在 15 分鐘內使用新的 SQL 驗證認證重新連線到目標。 如果您想要立即開始使用新認證,請停止並重新啟動監看員。
授與對資料存放區的存取權
若要在資料存放區內建立和管理資料庫結構描述,以及擷取監視資料,資料庫監看員需要 Azure Data Explorer 叢集上或 Real-Time Analytics 中資料存放區資料庫內管理員 RBAC 角色的會員資格。 資料庫監看員不需要對 Azure Data Explorer 叢集進行任何叢集層級存取,或存取可能存在於相同叢集上的其他資料庫。
如果您在 Azure 數據總管叢集上使用資料庫作為數據存放區,則如果您是叢集擁有 者 RBAC 角色的成員,系統會自動授與此存取權。 否則,必須如本節所述授與存取權。
如果您在即時分析中使用資料庫,或在免費的 Azure 數據總管叢集上使用資料庫,則必須 使用 KQL 來授與存取權。
使用 Azure 入口網站授與 Azure Data Explorer 資料庫的存取權
您可以使用 Azure 入口網站來授與 Azure Data Explorer 叢集上資料庫的存取權:
- 針對 Azure Data Explorer 叢集上的資料庫,請在 [安全性 + 網络] 底下的[資源] 功能表中,選取 [權限]。 請勿使用叢集的 [權限] 頁面。
- 選取 [新增],然後選取 [管理員]。
- 在 [ 新增主體] 頁面上,選取 [企業應用程式]。 如果監看員使用系統指派的受控識別,請在 [搜尋] 方塊中輸入監看員的名稱。 如果監看員使用使用者指派的受控識別,請在 [搜尋] 方塊中輸入該身分識別的顯示名稱。
- 選取監看員受控識別的企業應用程式。
使用 KQL 授與 Azure Data Explorer 資料庫的存取權
您也可以使用 KQL 命令來授與對資料庫的存取權,而不是使用 Azure 入口網站。 使用此方法,在即時分析或免費的 Azure Data Explorer 叢集上授與資料庫的存取權。
使用 Kusto Explorer 或 Azure Data Explorer Web UI 連線至 Azure Data Explorer 叢集上的資料庫。
在下列範例 KQL 命令中,取代三個預留位置,如資料表中所提:
.add database [adx-database-name-placeholder] admins ('aadapp=identity-principal-id-placeholder;tenant-primary-domain-placeholder');
預留位置 取代 adx-database-name-placeholder
Azure Data Explorer 叢集或即時分析上的資料庫名稱。 identity-principal-id-placeholder
在監看員的 [身分識別] 頁面上找到受控識別 (GUID) 的主體標識碼值。 如果已啟用系統指派的身分識別,請使用其 主體標識碼 值。 否則,請使用 使用者指派身分識別的主體 標識碼值。 tenant-primary-domain-placeholder
監看員受控識別Microsoft Entra ID 租使用者的功能變數名稱。 在 Azure 入口網站的 Microsoft Entra ID 概觀頁面上找到此資訊。 您也可以使用租使用者標識碼 GUID 值,而不是租使用者主要網域。
如果您在即時分析中或在免費的 Azure 數據總管叢集上使用資料庫,則需要此命令的這個部分。
Azure 數據總管叢集上的資料庫可以省略功能變數名稱或租使用者標識碼值(以及先前的分號),因為叢集一律位於與監看員受控識別相同的Microsoft Entra ID 租使用者中。例如:
.add database [watcher_data_store] admins ('aadapp=9da7bf9d-3098-46b4-bd9d-3b772c274931;contoso.com');
如需詳細資訊,請參閱 Kusto 角色型存取控制。
授與使用者和群組對資料存放區的存取權
可以使用 Azure 入口網站或 KQL 命令,將 Azure 資料總管叢集或即時分析中資料庫的存取權授與給使用者和群組。 若要授與存取權,您必須是資料庫中管理員 RBAC 角色的成員。
使用 KQL 命令,授與免費 Azure Data Explorer 叢集或即時分析上資料庫的存取權。 若要遵循最低權限準則,建議預設不要將使用者和群組新增至檢視者以外的任何 RBAC 角色。
重要
在授與檢視資料庫監看員所收集 SQL 監視資料的存取權時,請仔細考量您的資料隱私權和安全性需求。
即使資料庫監看員無法收集儲存在 SQL Database 的使用者資料表中的任何資料,但某些資料集,例如作用中工作階段、索引中繼資料、遺漏索引、查詢執行階段統計資料、查詢等候統計資料、工作階段統計資料和資料表中繼資料可能包含潛在的敏感資料,例如資料表和索引名稱、查詢文字、查詢參數值、登入名稱等。
藉由將資料存放區的檢視存取權授與無法存取 SQL Database 中檢視此資料的使用者,您可讓他們查看在其他情況下無法看見的敏感資料。
使用 Azure 入口網站授與對資料存放區的存取權
您可以使用 Azure 入口網站,以將 Azure Data Explorer 叢集上資料庫的存取權授與使用者和群組:
- 針對 Azure Data Explorer 叢集中的資料庫,請在 [安全性 + 網络] 底下的 [資源] 功能表中,選取 [權限]。 請勿使用叢集的 [權限] 頁面。
- 選取 [新增],然後選取 [檢視人員]。
- 在 [新增主體] 頁面上,於 [搜尋] 框中輸入使用者或群組的名稱。
- 選取使用者或群組。
使用 KQL 授與對資料存放區的存取權
您也可以使用 KQL 命令來授與使用者和群組對資料庫的存取權,而不是使用 Azure 入口網站。 下列範例 KQL 命令會將資料讀取存取權授與具有特定租用戶 ID 值的 Microsoft Entra ID 租用戶中的 mary@contoso.com 使用者和 SQLMonitoringUsers@contoso.com 群組:
.add database [watcher_data_store] viewers ('aaduser=mary@contoso.com');
.add database [watcher_data_store] viewers ('aadgroup=SQLMonitoringUsers@contoso.com;8537e70e-7fb8-43d3-aac5-8b30fb3dcc4c');
如需詳細資訊,請參閱 Kusto 角色型存取控制。
若要將資料存放區的存取權授與來自另一個租用戶的使用者和群組,則必須在 Azure Data Explorer 叢集上啟用跨租用戶驗證。 如需詳細資訊,請參閱允許跨租用戶查詢和命令。
提示
為了向 Microsoft Entra ID 租用戶中的使用者和群組授與存取權,可在即時分析中和免費的 Azure 資料總管叢集上啟用跨租用戶驗證。
管理資料存放區
本節說明如何管理監視資料存放區,包括縮放、資料保留和其他設定。 如果在 Azure Data Explorer 叢集上使用資料庫,則本節中的叢集調整考慮是相關的。 如果您在 Fabric 中的即時分析中使用資料庫,則會自動管理縮放。
調整 Azure Data Explorer 叢集
您可以視需要調整 Azure Data Explorer 叢集。 例如,如果不需要服務等級協定 (SLA),而且查詢和資料擷取效能仍可接受,則您可以將叢集相應縮小為超小型開發/測試 SKU。
對於許多資料庫監看員部署,預設超小型計算最佳化 2 執行個體叢集 SKU 將足以無限期使用。 在某些情況下,視您的設定和工作負載變更而定,您可能需要調整叢集,以確保適當的查詢效能,並維持低資料擷取延遲。
Azure Data Explorer 支援垂直和水平叢集調整。 透過垂直縮放比例,您可以變更叢集 SKU,以變更每個執行個體的 vCPU、記憶體和快取數目 (節點)。 使用水平縮放時,SKU 會維持不變,但叢集中的執行個體數目會增加或減少。
如果您注意到下列一或多個徵兆,您需要相應放大 (水平) 或縮小 (垂直) 叢集:
- 儀表板或臨機操作查詢效能速度變慢。
- 您可以在叢集上執行許多並行查詢,並觀察節流錯誤。
- 資料擷取延遲會持續高於可接受的程度。
一般而言,您不需要縮放叢集,因為資料存放區中的資料量會隨著時間而增加。 這是因為儀表板查詢和最常見的分析查詢只會使用最新的資料,且這會在叢集節點上的本機 SSD 記憶體中快取。
不過,如果您執行跨越較長時間範圍的分析查詢,隨著所收集的資料總量增加且不再適合本機 SSD 儲存體,這些查詢可能會隨著時間推移而變慢。 在此情況下,可能需要調整叢集,以維持適當的查詢效能。
如果您需要縮放叢集,建議您先水平調整,以增加執行個體數目。 這樣一來,叢集在縮放過程即可用於查詢和擷取。
- 您可以啟用最佳化的自動縮放,以自動減少或增加執行個體數目,進而回應工作負載變更或季節性趨勢。
您可能會發現,即使在水平放大叢集之後,某些查詢仍不會如預期般執行。 如果查詢效能是由叢集執行個體 (節點) 上可用的資源約束,就可能發生此情況。 在此情況下,請垂直擴大叢集。
- 垂直叢集調整需要幾分鐘的時間。 在該過程中,會有一段停機時間,而這可能會停止由監看員進行的資料收集。 如果發生該情況,請在完成縮放作業之後,停止並重新啟動監看員。
免費 Azure 數據總管叢集
免費的 Azure 數據總管叢集具有特定 容量限制,包括原始未壓縮數據的記憶體容量限制。 您無法調整免費的 Azure 數據總管叢集,以增加其計算或記憶體容量。 當叢集接近達到其儲存容量或容量時,免費叢集頁面上會出現警告訊息。
如果您達到儲存容量,則不會內嵌新的監視數據,但現有的數據仍可在資料庫監看員 儀錶板 上存取,而且可以使用 KQL 或 SQL 查詢進行分析 。
如果您發現免費叢集的規格不足以滿足您的需求,您可以 升級至完整的 Azure 數據總管叢集 ,並保留所有收集的數據。 因為升級期間可能會停機,因此您可能需要在升級完成後,停止並重新啟動監看員以繼續資料收集。
若要繼續使用免費的 Azure 數據總管叢集, 請管理數據保留 以自動刪除較舊的數據,並釋放新數據的空間。 一旦儲存空間可用,您可能需要 停止並重新啟動 監看員以繼續數據收集。
管理資料保留
如果您不需要較舊的資料,您可以設定資料保留原則以自動清除。 根據預設,在 Azure Data Explorer 叢集或即時分析的新資料庫中,資料保留期會設定為 365 天。
- 您可以減少資料庫層級或資料庫中個別資料表的資料保留期間。
- 如果需要儲存監視資料超過一年,您也可以增加保留期間。 資料保留期間沒有上限。
- 如果您為不同的資料表設定不同的資料保留期間,儀表板遇到較舊的時間範圍可能無法如預期般運作。 如果資料仍然存在於某些資料表中,但已使用相同的時間間隔在其他資料表中被清除,就會發生這種情況。
數據存放區中內嵌的 SQL 監視數據量取決於您的 SQL 工作負載和 Azure SQL 資產的大小。 您可以使用下列 KQL 查詢來檢視每天擷取的平均數據量、估計一段時間的記憶體耗用量,以及管理數據保留原則。
.show database extents
| summarize OriginalSize = sum(OriginalSize),
CompressedSize = sum(CompressedSize)
by bin(MinCreatedOn, 1d)
| summarize DailyAverageOriginal = format_bytes(avg(OriginalSize)),
DailyAverageCompressed = format_bytes(avg(CompressedSize));
資料庫監看員資料存放區中的結構描述和存取變更
一段時間後,Microsoft 可能會引進新的資料庫監看員資料集,或擴展現有的資料集。 這表示可能會自動新增資料存放區中的新資料表,或現有資料表中的新資料行。
為此,資料庫監看員的目前受控識別必須是資料存放區中管理員 RBAC 角色的成員。 撤銷此角色會員資格,或將其取代為任何其他 RBAC 角色的會員資格可能會影響資料庫監看員資料收集和結構描述管理,而且不受支援。
同樣地,不支援在資料庫監看員資料存放區中建立任何新的物件,例如資料表、外部資料表、具體化檢視、函式等。 您可以使用跨叢集和跨資料庫查詢,從其他 Azure Data Explorer 叢集,或從相同叢集上的其他資料庫查詢資料存放區中的資料。
重要
如果您變更資料庫監看員對其資料存放區的存取,或進行任何會影響資料擷取的資料庫結構描述或組態變更,您可能需要將該監看員的資料存放區變更為新的空白資料庫,並授與監看員對此新資料庫的存取權,以繼續資料收集並還原為支援的組態。
已停止 Azure Data Explorer 叢集
您可以停止 Azure Data Explorer 叢集,例如為了節省成本。 根據預設,在 Azure 入口網站建立的 Azure Data Explorer 叢集會在閒置數天後自動停止。 例如,如果您停止會將資料擷取至叢集上唯一資料庫的監看員,而且不會在此資料庫中執行任何查詢,就可能發生這種情況。
如果在建立新監看員時使用預設選項建立新的 Azure Data Explorer 叢集,則會停用自動停止行為,以允許不間斷的資料收集。
如果叢集停止,資料庫監看員資料收集也會停止。 若要繼續資料收集,必須啟動叢集。 在叢集開始執行之後,請重新啟動監看員。
如果您想要讓叢集保持可用 (即使在非使用中狀態),您也可以停用自動停止行為。 這可能會增加叢集成本。
串流擷取
資料庫監看員要求包含資料存放區資料庫的 Azure Data Explorer 叢集已啟用串流擷取。 您建立新的監看員時所建立的新 Azure Data Explorer 叢集,會自動啟用串流擷取。 即時分析和免費的 Azure Data Explorer 叢集上也會啟用。
如果您想要使用現有的 Azure Data Explorer 叢集,請務必先啟用串流擷取。 這需要幾分鐘的時間,而且會重新啟動叢集。
資料存放區的私人連線
如果 Azure 資料總管叢集上的公用存取已停用,您必須建立私人端點以從瀏覽器連線到叢集,並查看儀表板上的 SQL 監視資料,或直接查詢資料。 除了受控私人端點之外,還建立此私人端點,讓監看員能夠將監視資料內嵌至 Azure 資料總管叢集上的資料庫中。
如果您要從 Azure VM 連線到 Azure 資料總管叢集,請在部署 Azure VM 的 Azure 虛擬網路中,為 Azure 資料總管叢集建立私人端點。
如果要從內部部署機器連線到 Azure 資料總管叢集,您可以:
- 使用 Azure VPN 閘道,透過 Azure ExpressRoute 線路的私人對等互連,建立從內部部署網路到 Azure 的虛擬網路。
- 在 VPN 或 ExpressRoute 連線終止的 Azure 虛擬網路中,或在機器內部部署流量可存取的另一個 Azure 虛擬網路中,為 Azure 資料總管叢集建立另一個私人端點。
- 設定該私人端點的 DNS 。
私人連線不適用於免費的 Azure 資料總管叢集,也不適用於 Microsoft Fabric 中的即時分析。
監視大型資產
若要監視大型 Azure SQL 資產,您可能需要建立多個監看員。
每個監看員都需要 Azure Data Explorer 叢集或即時分析上的資料庫作為資料存放區。 您建立的監看員可以使用單一資料庫作為一般資料存放區,或將資料庫分隔為個別資料存放區。 下列考慮可協助您為監視案例和需求做出最佳設計選擇。
一般資料存放區的考量:
- 整個 Azure SQL 資產都有單一窗格檢視。
- 任何監看員的儀表板都會顯示資料存放區中的所有資料,即使資料是由其他監看員所收集也一樣。
- 具有資料存放區存取權的使用者可以存取整個 Azure SQL 資產的監視資料。
個別資料存放區的考量:
- 系統會獨立監視 Azure SQL 資產的子集。 Azure 入口網站中的資料庫監看員儀表板始終顯示來自單一資料存放區的資料。
- 具有多個資料存放區存取權的使用者可以使用跨叢集或跨資料庫 KQL 查詢,以使用單一查詢存取多個資料存放區中的監視資料。
- 由於 Azure Data Explorer 中的資料存取和即時分析是按資料庫進行管理,因此,您可以以細微的方式管理資產子集的監視資料存取權。
- 您可以將多個資料庫放在相同的 Azure Data Explorer 叢集上,以共用叢集資源並節省成本,同時仍會將資料隔離在每個資料庫中。
- 如果需要完整的區隔環境,包括 Azure Data Explorer 叢集的網路存取,您可以將不同的資料庫放在不同的叢集上。