共用方式為


使用 Microsoft Entra 驗證

適用於:Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics

本文概述如何使用 Microsoft Entra ID (先前稱為 Azure Active Directory) 來完成 Azure SQL 資料庫Azure SQL 受控執行個體Windows Azure VM 上的 SQL ServerAzure Synapse Analytics 中的 Synapse SQL,以及適用於 Windows 和 Linux 的 SQL Server 驗證。

若要了解如何建立並填入 Microsoft Entra ID,並使用 Azure SQL 資料庫、Azure SQL 受控執行個體和 Azure Synapse Analytics 中的 Synapse SQL,請檢閱設定 Microsoft Entra IDAzure VM 中的 Microsoft Entra ID 搭配 SQL Server

注意

Microsoft Entra ID 先前稱為 Azure Active Directory (Azure AD)。

概觀

您可以使用 Microsoft Entra 驗證,在單一中央位置集中管理資料庫使用者和其他 Microsoft 服務的身分識別。 中央 ID 管理提供單一位置以管理資料庫使用者並簡化權限管理。 包括以下優點:

  • 它提供 SQL Server 驗證的替代方案。

  • 有助於停止跨伺服器使用過多的使用者身分識別。

  • 允許在單一位置變換密碼。

  • 客戶可以使用 Microsoft Entra 群組來管理資料庫權限。

  • 它可以藉由啟用整合式 Windows 驗證和 Microsoft Entra ID 支援的其他形式驗證來避免儲存密碼。

  • Microsoft Entra 驗證會使用自主資料庫使用者,在資料庫層級驗證身分。

  • Microsoft Entra ID 針對連線至 SQL Database 和 SQL 受控執行個體的應用程式支援權杖型驗證。

  • Microsoft Entra 驗證支援:

  • SQL Server Management Studio 支援使用 Microsoft Entra 搭配多重要素驗證的連線。 多重要素驗證包含增強式驗證功能,提供一系列的簡易驗證選項,例如電話、簡訊、含有 PIN 的智慧卡或行動應用程式通知。 如需詳細資訊,請參閱將 Microsoft Entra 多重要素驗證用於 Azure SQL 資料庫、SQL 受控執行個體和 Azure Synapse 的 SSMS 支援

  • SQL Server Data Tools (SSDT) 也支援使用 Microsoft Entra ID 的各種驗證選項。 如需詳細資訊,請參閱 SQL Server Data Tools (SSDT) 中的 Microsoft Entra ID 支援

設定步驟包括以下設定和使用 Microsoft Entra 驗證的程序。

  1. 建立並填入 Microsoft Entra 租用戶。
  2. 選用:關聯或變更與 Azure 訂用帳戶關聯的目前目錄。
  3. 建立 Microsoft Entra 管理員。
  4. 設定用戶端電腦。
  5. 建立對應至 Microsoft Entra 身分識別的自主資料庫使用者。
  6. 透過 Microsoft Entra 身分識別連線至您的資料庫。

注意

針對 Azure SQL、Azure VM 和 SQL Server 2022,Microsoft Entra 驗證僅支援來自 Microsoft Entra ID 的存取權杖,且不支援協力廠商存取權杖。 Microsoft Entra ID 也不支援將 Microsoft Entra ID 查詢重新導向至第三方端點。 這適用於所有支援 Microsoft Entra 驗證的 SQL 平台,以及所有作業系統。

信認架構

  • 只有 Microsoft Entra、SQL Database、SQL 受控執行個體、[Windows Azure VM 上的 SQL Server] 和 Azure Synapse Analytics 的雲端部分會視為 Microsoft Entra 原生使用者密碼的支援。
  • 若要支援 Windows 單一登入認證 (或 Windows 認證的使用者/密碼),請使用設定為透過傳遞和密碼雜湊驗證進行無縫單一登入的同盟或受控網域中的 Microsoft Entra 認證。 如需詳細資訊,請參閱 Microsoft Entra 無縫單一登入
  • 若要支援同盟驗證 (或 Windows 認證的使用者/密碼),需要與 ADFS 區塊進行通訊。

如需 Microsoft Entra 混合式身分識別、設定與同步處理的詳細資訊,請參閱下列文章:

如需使用 ADFS 基礎結構 (或 Windows 認證的使用者/密碼) 的同盟驗證範例,請參閱下圖。 箭頭表示通訊路徑。

適用於 Azure SQL 的 Microsoft Entra 驗證的圖表。

下圖表示允許用戶端藉由提交權杖連線到資料庫的同盟、信任和主控關聯性。 此權杖是由 Microsoft Entra ID 所驗證,並受到資料庫信任。 客戶 1 可以代表 Microsoft Entra ID 與原生使用者或 Microsoft Entra ID 與同盟使用者。 客戶 2 代表包含已匯入使用者的可能解決方案;在此範例中,來自同盟 Microsoft Entra ID 且 ADFS 正與 Microsoft Entra ID 進行同步處理。 請務必了解使用 Microsoft Entra 驗證存取資料庫的必要條件是託管訂用帳戶要與 Microsoft Entra ID 相關聯。 必須使用相同的訂用帳戶來建立 Azure SQL 資料庫、SQL 受控執行個體或 Azure Synapse 資源。

圖表顯示 Microsoft Entra 組態中的訂用帳戶之間的關聯性。

管理員結構

使用 Microsoft Entra 驗證時,有兩個管理員帳戶:原始 Azure SQL 資料庫管理員和 Microsoft Entra 管理員。 Azure Synapse 適用相同的概念。 只有以 Microsoft Entra 帳戶為基礎的管理員可以在使用者資料庫中建立第一個 Microsoft Entra ID 自主資料庫使用者。 Microsoft Entra 管理員登入可以是 Microsoft Entra 使用者或 Microsoft Entra 群組。 管理員是群組帳戶時,可由任何群組成員使用,而讓伺服器可以有多個 Microsoft Entra 管理員。 以管理員身分使用群組帳戶,可讓您集中新增和移除 Microsoft Entra 中的群組成員,而無須變更 SQL Database 或 Azure Synapse 中的使用者或權限,藉以增強管理性。 一律只能設定一個 Microsoft Entra 管理員 (使用者或群組)。

圖表顯示與 SQL Server 搭配使用之 Microsoft Entra ID 的系統管理員結構。

注意

使用 Azure SQL 的 Microsoft Entra 驗證僅支援 Azure SQL 資源目前所在的單一 Microsoft Entra 租用戶。 此租用戶中的所有 Microsoft Entra 物件都可以設定為允許使用者存取此租用戶中的 Azure SQL。 Microsoft Entra 管理員也必須來自 Azure SQL 資源的租用戶。 不支援從不同租用戶存取 Azure SQL 的 Microsoft Entra 多租用戶驗證。

權限

若要建立新的使用者,您必須具有資料庫中的 ALTER ANY USER 權限。 任何資料庫使用者皆可授與 ALTER ANY USER 權限。 ALTER ANY USER 權限的擁有者還包括伺服器管理員帳戶、具備資料庫之 CONTROL ON DATABASEALTER ON DATABASE 權限的資料庫使用者,以及 db_owner 資料庫角色的成員。

若要在 Azure SQL 資料庫、Azure SQL 受控執行個體或 Azure Synapse Analytics 中建立自主資料庫使用者,必須使用 Microsoft Entra 身分識別連線至資料庫或執行個體。 若要建立第一個自主資料庫使用者,必須使用 Microsoft Entra 管理員 (資料庫的擁有者) 連線到資料庫。 這在使用 SQL Database 或 Azure Synapse 設定和管理 Microsoft Entra 驗證中有示範。 僅當為 Azure SQL 資料庫、Azure SQL 受控執行個體或 Azure Synapse Analytics 建立 Microsoft Entra 管理員時,才可進行 Microsoft Entra 驗證。 如果 Microsoft Entra 管理員已從伺服器中移除,則先前在伺服器內建立的現有 Microsoft Entra 使用者無法再使用其 Microsoft Entra 認證連線到資料庫。

Microsoft Entra 功能和限制

  • 您可以為 Azure SQL 資料庫佈建下列 Microsoft Entra ID 成員:

    • Microsoft Entra 使用者:Microsoft Entra 租用戶中任何使用者類型,包括內部、外部、來賓和成員。 也支援為與 Microsoft Entra ID 同盟而設定的 Active Directory 網域成員,並可設定為無縫單一登入
    • 應用程式:存在於 Azure 的應用程式可以使用服務主體或受控識別,直接向 Azure SQL 資料庫進行驗證。 使用受控識別進行驗證為慣用,因為它是無密碼的,而且無需開發人員管理的認證。
    • Microsoft Entra 群組,可根據群組成員資格來管理適當的使用者和應用程式存取,以簡化整個組織的存取管理。
  • Microsoft Entra 使用者若屬於 db_owner 伺服器角色的群組,則無法對 Azure SQL 資料庫和 Azure Synapse Analytics 使用 CREATE DATABASE SCOPED CREDENTIAL 語法。 您將會看到下列錯誤:

    SQL Error [2760] [S0001]: The specified schema name 'user@mydomain.com' either doesn't exist or you do not have permission to use it.

    減輕 CREATE DATABASE SCOPED CREDENTIAL 問題直接新增獨立 Microsoft Entra 使用者 db_owner 角色。

  • 下列系統函數在由 Microsoft Entra 主體執行時並不支援且會傳回 NULL 值:

    • SUSER_ID()
    • SUSER_NAME(<ID>)
    • SUSER_SNAME(<SID>)
    • SUSER_ID(<name>)
    • SUSER_SID(<name>)
  • Azure SQL 資料庫不會為作為 Microsoft Entra 群組成員資格一部分登入的使用者建立隱含使用者。 因此,需要指派所有權的各種作業將會失敗,即使 Microsoft Entra 群組會新增為具有這些權限的角色成員也一樣。

    例如,透過具有 db_ddladmin 角色的 Microsoft Entra 群組登入資料庫的使用者將無法執行 CREATE SCHEMA、ALTER SCHEMA 和其他物件建立陳述式,而不需明確定義結構描述 (例如資料表、檢視或類型)。 若要解決此問題,您必須為該使用者建立 Microsoft Entra 使用者,或必須變更 Microsoft Entra 群組,將 DEFAULT_SCHEMA 指派給 dbo

SQL 受控執行個體

  • SQL 受控執行個體支援 Microsoft Entra 伺服器主體 (登入) 和使用者。

  • SQL 受控執行個體不支援將對應至 Microsoft Entra 群組的 Microsoft Entra 登入設定為資料庫擁有者。

    • 擴充功能是當群組新增為 dbcreator 伺服器角色的一部分時,此群組中的使用者可以連線至 SQL 受控執行個體並建立新的資料庫,但將無法存取資料庫。 這是因為新的資料庫擁有者是 SA,而不是 Microsoft Entra 使用者。 如果將個別使用者新增至 dbcreator 伺服器角色,則不會顯示這個問題。
  • Microsoft Entra 登入支援 SQL Agent 管理和作業執行。

  • Microsoft Entra 伺服器主體 (登入) 可以執行資料庫備份和還原作業。

  • 支援稽核與 Microsoft Entra 伺服器主體 (登入) 和驗證事件相關的所有陳述式。

  • 屬於 sysadmin 伺服器角色成員的 Microsoft Entra 伺服器主體 (登入) 支援專用管理員連線。

    • 透過 SQLCMD 公用程式和 SQL Server Management Studio 支援。
  • 來自 Microsoft Entra 伺服器主體 (登入) 的登入事件支援登入觸發程序。

  • Service Broker 和 DB 電子郵件可使用 Microsoft Entra 伺服器主體 (登入) 來設定。

使用 Microsoft Entra 身分識別進行連線

Microsoft Entra 驗證支援以下使用 Microsoft Entra 身分識別連線到資料庫的方法:

  • Microsoft Entra 密碼
  • 已與 Microsoft Entra 整合
  • 具有多重要素驗證的 Microsoft Entra Universal
  • 使用應用程式權杖驗證

Microsoft Entra 伺服器主體 (登入) 支援下列驗證方法:

  • Microsoft Entra 密碼
  • 已與 Microsoft Entra 整合
  • 具有多重要素驗證的 Microsoft Entra Universal

其他考量

  • 若要增強管理性,建議您以管理員身分佈建專用的 Microsoft Entra 群組。
  • 無論何時,對於 SQL Database 或 Azure Synapse 中的伺服器,都只能建立一個 Microsoft Entra 管理員 (使用者或群組)。
    • 為 SQL 受控執行個體新增 Microsoft Entra 伺服器主體 (登入) 後,就能建立可新增至 sysadmin 角色的多個 Microsoft Entra 伺服器主體 (登入)。
  • 只有伺服器的 Microsoft Entra 管理員一開始可以使用 Microsoft Entra 帳戶連線到伺服器或受控執行個體。 Microsoft Entra 管理員可以設定後續的 Microsoft Entra 資料庫使用者。
  • 如果 Microsoft Entra 使用者和服務主體 (Microsoft Entra 應用程式) 屬於超過 2048 個 Microsoft Entra 安全性群組的成員,則不支援登入 SQL Database、SQL 受控執行個體或 Azure Synapse 中的資料庫。
  • 建議將連接逾時設定為 30 秒。
  • SQL Server 2016 Management Studio 和 SQL Server Data Tools for Visual Studio 2015 (版本 14.0.60311.1 [2016 年 4 月] 或更高版本) 支援 Microsoft Entra 驗證。 (.NET Framework Data Provider for SqlServer 支援 Microsoft Entra 驗證,最低版本 .NET Framework 4.6)。 因此,這些工具和資料層應用程式 (DAC 和 BACPAC) 的最新版本可以使用 Microsoft Entra 驗證。
  • 從 15.0.1 版起,sqlcmd 公用程式bcp 公用程式都支援使用多重要素驗證的 Active Directory 互動式驗證。
  • SQL Server Data Tools for Visual Studio 2015 至少需要 2016 年 4 月版本的 Data Tools (版本 14.0.60311.1)。 Microsoft Entra 使用者目前不會顯示在 SSDT 物件總管中。 解決方法是在 sys.database_principals 中檢視使用者。
  • Microsoft JDBC Driver 6.0 for SQL Server 支援 Microsoft Entra 驗證。 此外,請參閱 設定連接屬性
  • PolyBase 無法使用 Microsoft Entra 驗證進行驗證。
  • 使用 Azure 入口網站的 [匯入資料庫] 和 [匯出資料庫] 刀鋒視窗,支援 Azure SQL 資料庫和 Azure Synapse 的 Microsoft Entra 驗證。 PowerShell 命令也支援使用 Microsoft Entra 驗證的匯入和匯出。
  • 使用 CLI 可支援 SQL Database、SQL 受控執行個體和 Azure Synapse 的 Microsoft Entra 驗證。 如需詳細資訊,請參閱使用 SQL Database 或 Azure Synapse 設定和管理 Microsoft Entra 驗證SQL Server - az sql server

下一步