適用於 SQL Server 的 Microsoft Entra 驗證
適用於: SQL Server 2022 (16.x)
SQL Server 2022 (16.x) 在 Windows 和 Linux 內部部署環境以及 Azure Windows VM 上的 SQL Server 上同時引進 Microsoft Entra ID (先前為 Azure Active Directory) 驗證支援。
概觀
您現在可以使用下列 Microsoft Entra 驗證方法連線到 SQL Server:
- 預設驗證
- 使用者名稱與密碼
- 整合
- 與多重要素驗證通用
- 服務主體
- 受控識別
- 存取權杖
現有的驗證模式 (SQL 驗證和 Windows 驗證) 保持不變。
Microsoft Entra ID 是 Azure 的雲端式身分識別和存取權管理服務。 Microsoft Entra ID 在概念上類似於 Active Directory,提供集中式存放庫來管理組織資源的存取權。 身分識別是 Microsoft Entra ID 中代表使用者、群組或應用程式的物件。 可以透過角色型存取控制向這些物件指派權限,並且它們用於向 Azure 資源進行驗證。 下列項目支援 Microsoft Entra 驗證:
- Azure SQL Database
- Azure SQL 受控執行個體
- Windows Azure 上的 SQL Server
- Azure Synapse Analytics
- SQL Server
如需詳細資訊,請參閲搭配 Azure SQL 使用 Microsoft Entra 驗證以及使用 Azure SQL 設定和管理 Microsoft Entra 驗證。
如果您的 Windows Server Active Directory 與 Microsoft Entra ID 同盟,則使用者可以使用其 Windows 認證向 SQL Server 進行驗證 (無論形式為 Windows 登入還是 Microsoft Entra 登入都行)。 Microsoft Entra ID 並未支援 Windows Server Active Directory 支援的所有 AD 功能,例如服務帳戶或複雜的網路樹系架構。 Microsoft Entra ID 還具有其他功能,例如 Active Directory 無法使用的多重要素驗證。 比較 Microsoft Entra ID 與 Active Directory,了解更多資訊。
使用 Microsoft Entra ID 將 SQL Server 連線至 Azure
爲了讓 SQL Server 與 Azure 通訊,SQL Server 和其執行所在的 Windows 或 Linux 主機都必須向 Azure Arc 註冊。若要讓 SQL Server 能夠與 Azure 通訊,您需要安裝 Azure Arc 代理程式和適用於 SQL Server 的 Azure 延伸模組。
若要開始使用,請參閱將 SQL Server 連線到 Azure Arc。
注意
如果您在 Azure VM 上執行 SQL Server,則不需要向 Azure Arc 註冊 VM,您必須改為向 SQL IaaS Agent 延伸模組註冊 VM。 註冊 VM 之後,如需詳細資訊,請參閱在 Azure VM 上啟用 SQL Server 的 Azure AD 驗證。
預設驗證
使用 Microsoft Entra ID 的預設驗證選項,可透過無密碼和非互動式機制進行驗證,包括受控識別、Visual Studio、Visual Studio Code、Azure CLI 等。
使用者名稱與密碼
允許對用戶端和驅動程式指定使用者名稱和密碼。 基於安全性理由,許多租用戶通常會停用使用者名稱和密碼方法。 雖然連線已加密,但最佳做法/建議是盡可能避免使用使用者名稱和密碼,因為其需要透過網路傳送密碼。
整合
透過整合式 Windows 驗證 (IWA),Microsoft Entra ID 可為具有內部部署和雲端基礎結構的組織提供解決方案。 內部部署的 Active Directory 網域可以透過同盟與 Microsoft Entra ID 同步,允許在 Microsoft Entra ID 內處理管理和存取控制,而使用者驗證仍保留內部部署方式。 使用 IWA 時,使用者的 Windows 認證會針對 Active Directory 進行驗證,且成功之後,使用者的驗證權杖會從 Microsoft Entra ID 傳回 SQL。
與多重要素驗證通用
這是 Microsoft Entra 帳戶的多重要素驗證選項所適用的標準互動式方法。 大部分情況下,這種方法都能運作。
服務主體
服務主體是您建立的身分識別,可與自動化工具、作業和應用程式搭配使用。 藉由服務主體驗證方法,您可以使用服務主體身分識別的用戶端識別碼和密碼來連線到 SQL Server 執行個體。
受控識別
受控識別是特殊形式的服務主體。 有兩種受控識別:系統指派和使用者指派。 系統指派的受控識別會直接在 Azure 資源上啟用,而使用者指派的受控識別則是可指派給一或多個 Azure 資源的獨立資源。
注意
若要使用受控識別透過 SSMS 和 ADS 等 GUI 用戶端連線到 SQL 資源,執行用戶端應用程式的電腦必須執行 Microsoft Entra 用戶端,並在其中儲存該身分識別的憑證。 最常透過 Azure VM 來達成,因為身分識別可透過 VM 的入口網站窗格輕鬆地指派給電腦。
對於使用 SQL Server Management Studio (SSMS) 等 Azure 身分識別程式庫的工具,使用受控識別連線時,您需要使用 GUID 進行登入,例如 abcd1234-abcd-1234-abcd-abcd1234abcd1234
。 如需詳細資訊,請參閱 (ManagedIdentityCredential。 如果您不正確地傳遞使用者名稱,會發生錯誤,例如:
ManagedIdentityCredential authentication unavailable. The requested identity has not been assigned to this resource.
Status: 400 (Bad Request)
Content:
{"error":"invalid_request","error_description":"Identity not found"}
存取權杖
某些非 GUI 用戶端 (例如 Invoke-sqlcmd) 允許提供存取權杖。 存取權杖的範圍或對象必須是 https://database.windows.net/
。
備註
- 只有搭載受支援 Windows 或 Linux 作業系統的內部部署 SQL Server 2022 (16.x) 或 Windows Azure VM 上的 SQL Server 2022 才支援進行 Microsoft Entra 驗證。
- 若要將 SQL Server 連線到 Azure Arc,Microsoft Entra 帳戶需要下列權限:
- Azure Connected Machine 上線群組的成員或資源群組中參與者角色的成員。
- 資源群組中 Azure Connected Machine 資源管理員角色的成員。
- 資源群組中讀者角色的成員。