教學課程:使用自動化來設定適用於 SQL Server 的 Microsoft Entra 管理員

適用於:SQL Server 2022 (16.x)

注意

此功能適用於 SQL Server 2022 (16.x) 或更新版本,且僅支援 Windows 和 Linux 主機的內部部署 SQL Server,以及 Windows Azure VM 上的 SQL Server 2022

在本文中,我們將探討如何設定 Microsoft Entra 管理員,以允許使用 Azure 入口網站及下列 API,對 SQL Server 進行 Microsoft Entra ID (之前稱為 Azure Active Directory) 驗證:

  • PowerShell
  • Azure CLI
  • ARM 範本

我們也將探討在 Azure 入口網站中為 SQL Server 設定 Microsoft Entra 管理員的新功能,可自動化憑證建立和應用程式註冊。 先前,為 SQL Server 設定 Microsoft Entra 驗證時,必須使用 Azure 憑證和應用程式註冊,手動設定 Microsoft Entra 管理員

注意

雖然 Microsoft Entra ID 是 Azure Active Directory (Azure AD) 的新名稱,但為了防止中斷現有的環境,Azure AD 仍會保留在某些硬式編碼元素中,例如 UI 字段、連線提供者、錯誤碼和 Cmdlet。 在本文中,這兩個名稱是可互換的。

必要條件

  • 已安裝 SQL Server 2022 (16.x) 或更新版本。
  • 已連線到 Azure 雲端的 SQL Server。 如需詳細資料,請參閱將 SQL Server 連線到 Azure Arc
  • Microsoft Entra ID 已設定為在與 Azure Arc 執行個體相同的租用戶中進行驗證。
  • 需要 Azure Key Vault

設定 Microsoft Entra 管理員之前的準備

您必須具備下列權限,才能在 SQL Server – Azure ArcKey Vault 資源中設定 Microsoft Entra 管理員。

設定 Azure Arc 的權限

請遵循指南,確定 SQL Server 已連線到 Azure Arc。為 SQL Server - Azure Arc 資源設定 Microsoft Entra 管理員的使用者應該具備伺服器的參與者角色。

  1. 移至 Azure 入口網站
  2. 選取 [SQL Server – Azure Arc],然後選取您 SQL Server 主機的執行個體。
  3. 選取 [存取控制 (IAM)]。
  4. 選取 [新增]>[新增角色指派],將參與者角色新增至設定 Microsoft Entra 管理員的使用者。

設定 Azure Key Vault 的權限

建立 Azure Key Vault (如果您尚未建立)。 設定 Microsoft Entra 管理員的使用者應該具有 Azure Key Vault 的參與者角色。 若要在 Azure Key Vault 中將角色新增的使用者:

  1. 移至 Azure 入口網站
  2. 移至您的 Key Vault 資源。
  3. 選取 [存取控制 (IAM)]。
  4. 選取 [新增]>[新增角色指派],將參與者角色新增至設定 Microsoft Entra 管理員的使用者。

設定 SQL Server 主機的存取原則

  1. 在 Azure 入口網站中,瀏覽至您的 Azure Key Vault 執行個體,並選取 [存取原則]。

  2. 選取 [新增存取原則]。

  3. 針對 [金鑰權限],請使用 [簽署]。

  4. 針對 [秘密權限],選取 [取得] 和 [清單]。

  5. 針對 [憑證權限],選取 [取得] 和 [清單]。

  6. 選取 [下一步]。

  7. 在 [主體] 頁面,搜尋 [機器 - Azure Arc] 執行個體的名稱,它是 SQL Server 主機的主機名稱。

    Screenshot of Azure Arc server resource in portal.

  8. 透過選取 [下一步] 兩次,或選取 [檢閱 + 建立],略過 [應用程式 (選用)] 頁面。

    Screenshot of Azure portal to review and create access policy.

    確認主體的「物件 ID」符合指派至執行個體之受控識別的主體 ID

    Screenshot of portal control of JSON view of machine definition.

    若要確認,請移至資源頁面,然後選取 [概觀] 頁面上 [基本資料] 方塊右上方的 [JSON 檢視]。 在 [身分識別] 底下,您將發現 principalId

  9. 選取 建立

必須選取 [建立],以確保權限已套用。 若要確保權限已儲存,請重新整理瀏覽器視窗,並檢查 Azure Arc 執行個體的資料列是否仍然存在。

設定 Microsoft Entra 使用者的存取原則

  1. 在 Azure 入口網站中,瀏覽至您的 Azure Key Vault 執行個體,並選取 [存取原則]。
  2. 選取 [新增存取原則]。
  3. 針對 [金鑰權限],選取 [Get]、[List] 和 [Create]。
  4. 針對 [密碼權限],選取 [Get]、[List] 和 [Set]。
  5. 針對 [憑證權限],選取 [Get]、[List] 和 [Create]。
  6. 針對 [選取主體],新增您想要用來連線到 SQL Server 的 Microsoft Entra 使用者。
  7. 選取 [新增],然後選取 [儲存]。

設定適用於 SQL Server 的 Microsoft Entra 管理員

新的 API 和入口網站功能可讓使用者為 SQL Server 設定 Microsoft Entra 管理員,而不需要單獨建立 Azure 憑證和 Microsoft Entra 應用程式。 選取索引標籤,了解如何為連線至 Azure Arc 的 SQL Server 設定 Microsoft Entra 管理員,並自動建立憑證和應用程式。

注意

ARM 範本仍然需要在設定 Microsoft Entra 管理員之前,先建立 Azure Key Vault 憑證和 Microsoft Entra 應用程式。如需此流程的詳細資訊,請參閱教學課程:設定適用於 SQL Server 的 Microsoft Entra 驗證

使用 Azure 入口網站來設定 Microsoft Entra 管理員,在同一個程序中建立 Azure Key Vault 認證和 Microsoft Entra 應用程式。 這是搭配 SQL Server 使用 Microsoft Entra 驗證的必要條件。

注意

先前,在設定 Microsoft Entra 管理員之前,需要 Azure Key Vault 認證和 Microsoft Entra 應用程式註冊。 這已不再需要,但使用者仍然可以選擇提供自己的認證和應用程式來設定 Microsoft Entra 管理員。

使用 Azure 入口網站來設定 Microsoft Entra 管理員

  1. 移至 Azure 入口網站,然後選取 [SQL Server – Azure Arc]。請選取您 SQL Server 主機的執行個體。

  2. 檢查 SQL Server - Azure Arc 資源的狀態,並前往 [屬性] 功能表查看是否已連線。 如需詳細資訊,請參閱驗證已啟用 Arc 的 SQL Server 資源

  3. 從資源功能表中選取 [設定] 下的 [Microsoft Entra ID 和 Purview]。

  4. 選取 [設定管理員] 以開啟 Microsoft Entra ID,然後選擇將作為系統管理員登入名新增至 SQL Server 的帳戶。

  5. 選取 [受控服務的憑證]。

  6. 選取 [變更金鑰保存庫],然後選取您目前的 Azure Key Vault 資源。

  7. 選取 [服務管理的應用程式註冊]。

  8. 選取 [儲存]。 這會將要求傳送至 Arc 伺服器代理,以設定該 SQL Server 執行個體的 Microsoft Entra 驗證。 操作可能需要幾分鐘的時間才能完成;在嘗試 Microsoft Entra 登入之前,請等待 Saved successfully 來確認儲存過程。

    服務受管應用程式註冊會為您執行下列動作:

    • 在金鑰保存庫中建立證書,其名稱格式為 <hostname>-<instanceName><uniqueNumber>
    • 建立 Microsoft Entra 應用程式,其名稱類似於 <hostname>-<instanceName><uniqueNumber>,並指派該應用程式的必要權限。 如需詳細資訊,請參閱授與應用程式權限
    • 將 Azure Key Vault 中的新證書指派給應用程式。
    • 將這些設定儲存至 Azure Arc。

    Screenshot of setting Microsoft Entra authentication with automatic certificate and application generation in the Azure portal.

注意

為 Microsoft Entra 所建立的證書不會自動輪替。 客戶可以選擇為 Microsoft Entra 管理員設定提供自己的證書和應用程式。 如需詳細資訊,請參閱教學課程:設定適用於 SQL Server 的 Microsoft Entra 驗證

設定 Microsoft Entra 管理員之後,使用 Microsoft Entra 管理員認證便可連線至 SQL Server。 不過,任何涉及建立新 Microsoft Entra 登入和使用者的進一步資料庫活動都會失敗,直到將管理員同意授與 Microsoft Entra 應用程式為止。

注意

若要為應用程式授與管理員同意,授與同意的帳戶需要具有 Microsoft Entra ID 全域管理員或特殊權限角色管理員的角色。 這些角色是授與應用程式管理員同意的必要角色,但設定 Microsoft Entra 管理員時則非必要。

  1. Azure 入口網站中,選取 [Microsoft Entra ID]>[應用程式註冊],然後選取新建立的應用程式。 應用程式的名稱應該類似 <hostname>-<instanceName><uniqueNumber>

  2. 選取 [API 權限] 功能表。

  3. 選取 [授與管理員同意]。

    Screenshot of application permissions in the Azure portal.

若未對應用程式授與管理員同意,在 SQL Server 中建立 Microsoft Entra 登入或使用者將會導致下列錯誤:

Msg 37455, Level 16, State 1, Line 2
Server identity does not have permissions to access MS Graph.

使用 Microsoft Entra 驗證連線到 SQL Server

系統目前已為連線至 Azure Arc 的 SQL Server 建立 Microsoft Entra 驗證。在依照本文建立 Microsoft Entra 管理員後,請遵循教學課程:設定適用於 SQL Server 的 Microsoft Entra 驗證,以使用 Microsoft Entra 驗證連線至 SQL Server章節。

另請參閱