使用 Microsoft Entra 驗證連線至 Azure SQL 資源

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

本文介紹如何使用 Microsoft Entra 驗證連線到 Azure SQL 資料庫Azure SQL 受控執行個體Azure Synapse Analytics

必要條件

若要連線到 Azure SQL 資源,您需要為資源設定 Microsoft Entra 驗證

若要確認 Microsoft Entra 管理員已正確設定,請使用 Microsoft Entra 管理員帳戶連線到 master 資料庫。 若要建立以 Microsoft Entra 為基礎的自主資料庫使用者,請使用具有資料庫存取權和至少 ALTER ANY USER 權限的 Microsoft Entra 身分識別連線到資料庫。

使用 SSMS 或 SSDT 連線

下列程序示範如何使用 SQL Server Management Studio 或 SQL Server Database Tools,利用 Microsoft Entra 身分識別連線到 SQL Database。

整合型 Microsoft Entra

當您想要使用已與 Microsoft Entra ID 同盟的 Windows 認證登入時,請使用此方法。 如需詳細資訊,請參閱 Microsoft Entra 無縫單一登入

  1. 啟動 SSMS 或 SSDT,然後在 [連接到伺服器] 的 [登入] 索引標籤 (或 [連線到資料庫引擎] 對話方塊) 中:

    1. 以格式 <server-name>.database.windows.net 提供 [伺服器名稱]
    2. 針對 [驗證],選取 [Microsoft Entra 整合式驗證]。 不需要輸入密碼,因為您現有的認證已用於連線。
    3. 針對 [加密],選取 [嚴格 (SQL Server 2022 和 Azure SQL)],這應該用來連線到 Azure SQL 資源。

    SSMS 的螢幕擷取畫面,其中顯示 Microsoft Entra 整合式驗證。

  2. 在 [連線內容] 索引標籤中,在 [連線到資料庫] 欄位中,輸入您要連線的使用者資料庫的名稱。

    SSMS 中 [選項] 功能表的螢幕擷取畫面。

Microsoft Entra 密碼

當使用 Microsoft Entra 受控網域與 Microsoft Entra 主體名稱連線時,使用此方法。 您也可以將其用於沒有網域存取權的同盟帳戶,例如在遠端工作時。

使用此方法,利用 Microsoft Entra 僅雲端的身分識別使用者,或使用 Microsoft Entra 混合式身分識別的使用者,在 SQL Database 或 SQL 受控執行個體中驗證資料庫。 此方法支援想要使用其 Windows 認證,但其本機電腦並未加入網域 (例如使用遠端存取) 的使用者。 在此情況下,Windows 使用者可以指出其網域帳戶和密碼,而且可向 SQL Database、SQL 受控執行個體或 Azure Synapse 中的資料庫進行驗證。

  1. 啟動 SSMS 或 SSDT,然後在 [連接到伺服器] 的 [登入] 索引標籤 (或 [連線到資料庫引擎] 對話方塊) 中:

    1. 以格式 <server-name>.database.windows.net 提供 [伺服器名稱]
    2. 針對 [驗證],選取 [Microsoft Entra 密碼]
    3. 在 [使用者名稱] 方塊中,以 username@domain.com 格式輸入您的 Microsoft Entra 使用者名稱。 使用者名稱必須是來自 Microsoft Entra ID 的帳戶,或來自具有 Microsoft Entra ID 的受控或同盟網域的帳戶。
    4. 在 [密碼] 方塊中,針對 Microsoft Entra 帳戶或受控/同盟網域帳戶輸入您的使用者密碼。
    5. 針對 [加密],選取 [嚴格 (SQL Server 2022 和 Azure SQL)],這應該用來連線到 Azure SQL 資源。

    SSMS 中使用 Microsoft Entra 密碼驗證的螢幕擷取畫面。

  2. 在 [連線內容] 索引標籤中,在 [連線到資料庫] 欄位中,輸入您要連線的使用者資料庫的名稱。

    SSMS 中 [選項] 功能表的螢幕擷取畫面。

Microsoft Entra MFA

使用此方法進行採用多重要素驗證 (MFA) 的互動式驗證,並以互動方式要求密碼。 此方法可利用 Microsoft Entra 僅雲端的身分識別使用者,或使用 Microsoft Entra 混合式身分識別的使用者,用來驗證 SQL Database、SQL 受控執行個體和 Azure Synapse Analytics 中的資料庫。

以下步驟說明如何在最新版本的 SSMS 中使用多重要素驗證進行連線。

  1. 若要使用 MFA 進行連線,請在 SSMS 的 [連線到伺服器] 對話方塊中,選取 [Microsoft Entra MFA]

    SSMS 中 [連線到伺服器] 對話方塊的螢幕擷取畫面。已從 [驗證] 下拉式清單視窗中選取 [Microsoft Entra MFA]。

  2. 使用伺服器的名稱填入 [伺服器名稱] 方塊。 使用 user_name@domain.com 格式的 Microsoft Entra 認證填入 [使用者名稱]。

    SSMS 中 [連接到伺服器] 對話方塊設定的螢幕擷取畫面,其中已填入所有字段。

  3. 選取 Connect

  4. 當 [登入您的帳戶] 對話框顯示時,其中預先填入了您在步驟 2 中提供的 [使用者名稱]。 如果使用者不屬於與 Microsoft Entra ID 同盟的網域,則不需要輸入密碼。

    Azure SQL 資料庫和資料倉儲的 [登入您的帳戶] 對話方塊的螢幕擷取畫面。已填入帳戶和密碼。

  5. 系統會提示您使用根據 MFA 管理員設定所設定的其中一種方法進行驗證。

  6. 驗證完成時,SSMS 即會正常連線 (假設認證和防火牆存取有效)。

Microsoft Entra 服務主體

使用此方法透過 Microsoft Entra 服務主體 (Microsoft Entra 應用程式),向 SQL Database 或 SQL 受控執行個體中的資料庫進行驗證。 如需詳細資訊,請參閱使用 Azure SQL 的 Microsoft Entra 服務主體

Microsoft Entra 受控識別

使用這個方法,透過 Microsoft Entra 受控識別向 SQL Database 或 SQL 受控執行個體中的資料庫進行驗證。 如需詳細資訊,請參閱適用於 Azure SQL 的 Microsoft Entra中的受控身分識別

Microsoft Entra 預設值

使用 Microsoft Entra ID 的預設驗證選項,可透過無密碼和非互動式機制 (包括受控識別) 進行驗證。

從用戶端應用程式連線

下列程序示範如何從用戶端應用程式,使用 Microsoft Entra 身分識別連線到 SQL Database。 使用 Microsoft Entra 身分識別時,這不是完整的驗證方法清單。 如需詳細資訊,請參閱使用 Microsoft Entra 驗證和 SqlClient 連線到 Azure SQL

設定用戶端應用程式

注意

System.Data.SqlClient 使用 Azure Active Directory 驗證程式庫 (ADAL),其即將淘汰。 如果使用 System.Data.SqlClient 命名空間進行 Microsoft Entra 驗證,請將應用程式移轉至 Microsoft.Data.SqlClientMicrosoft Authentication Library (MSAL)。 若要瞭解 .NET 中可用的連線方法,請參閱使用 Microsoft Entra 驗證和 SqlClient 連線到 Azure SQL

如果想要在應用程式中繼續使用 ADAL.DLL,可以使用本節中的連結來安裝最新的 ODBC 或 OLE DB 驅動程式,其中包含最新的 ADAL.DLL 程式庫。

在您的應用程式或使用者使用 Microsoft Entra 身分識別連線到 SQL Database 或 Azure Synapse Analytics 的所有用戶端電腦上,您必須安裝下列軟體:

您可以符合這些需求,方法如下︰

Microsoft Entra 整合式驗證

若要使用整合式 Windows 驗證,網域的 Active Directory 必須與 Microsoft Entra ID 同盟,或者必須是針對以傳遞或密碼雜湊驗證進行無縫單一登入所設定的受控網域。 如需詳細資訊,請參閱 Microsoft Entra 無縫單一登入

連線到資料庫的用戶端應用程式 (或服務) 必須以使用者的網域認證,在已加入網域的機器上執行。

若要使用整合式驗證和 Microsoft Entra 身分識別連線到資料庫,資料庫連接字串中的 Authentication 關鍵字必須設定為 Active Directory Integrated。 將 <server_name> 替換為您自己的 SQL 邏輯伺服器名稱。 下列 C# 程式碼範例會使用 ADO.NET。

string ConnectionString = @"Data Source=<server-name>.database.windows.net; Authentication=Active Directory Integrated; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();

不支援使用連接字串關鍵字 Integrated Security=True 來連線到 Azure SQL 資料庫。 建立 ODBC 連線時,您必須移除空格,並將驗證設為 ActiveDirectoryIntegrated

Microsoft Entra 密碼驗證

若要使用 Microsoft Entra 僅雲端的身分識別使用者帳戶,或使用 Microsoft Entra 混合式身分識別的使用者帳戶,連線到資料庫,則必須將驗證關鍵字設定為 Active Directory Password。 連接字串必須包含使用者 ID (UID) 及密碼 (PWD) 關鍵字和值。 將 <server_name><email_address><password> 替換為適當的值。 下列 C# 程式碼範例會使用 ADO.NET。

string ConnectionString =
@"Data Source=<server-name>.database.windows.net; Authentication=Active Directory Password; Initial Catalog=testdb; UID=<email_address>; PWD=<password>";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();

深入了解使用 Microsoft Entra 驗證 GitHub 示範上所提供之示範程式碼範例的 Microsoft Entra 驗證方法。

Microsoft Entra ID 存取權杖

此驗證方法可讓中介層服務取得 JSON Web 權杖 (JWT),透過從 Microsoft Entra ID 取得權杖,以連線到 SQL Database、SQL 受控執行個體或 Azure Synapse 中的資料庫。 此方法使用以憑證為基礎的驗證來啟用各種應用程式案例,包括服務身分識別、服務主體和應用程式。 您必須完成四個基本步驟,才能使用 Microsoft Entra 權杖驗證︰

  1. 向 Microsoft Entra ID 註冊您的應用程式,並取得程式碼的用戶端識別碼。
  2. 建立代表應用程式的資料庫使用者 (如建立對應至 Microsoft Entra 身分識別的自主使用者一節中所述)。
  3. 在執行應用程式的用戶端電腦上建立證書。
  4. 將憑證加入應用程式當做索引鍵。

範例連接字串。 將 <server-name> 替換為您自己的 SQL 邏輯伺服器名稱:

string ConnectionString = @"Data Source=<server-name>.database.windows.net; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.AccessToken = "Your JWT token";
conn.Open();

如需詳細資訊,請參閱 SQL Server 安全性部落格。 如需新增認證的詳細資訊,請參閱開始在 Microsoft Entra ID 中使用以認證為基礎的驗證

Microsoft Entra 多重要素驗證

Microsoft Entra 多重要素驗證是所有 SQL 工具支援的驗證方法。 如需以程式設計方式使用 Microsoft Entra ID 驗證的資訊,請參閱 Microsoft 驗證程式庫 (MSAL) 概觀

sqlcmd

下列陳述式使用 sqlcmd 13.1 版連線。 下載適用於 SQL Server 的 Microsoft 命令列公用程式 14.0

注意

搭配 -G 命令的 sqlcmd 無法搭配系統身分識別運作,而且需要使用者主體登入。

sqlcmd -S <database or datawarehouse name>.<server-name>.database.windows.net -G
sqlcmd -S <database or datawarehouse name>.<server-name>.database.windows.net -U adrian@contoso.com -P <password> -G -l 30

在 Azure 入口網站查詢編輯器 (Azure SQL 資料庫) 中連線

如需 Azure SQL 資料庫Azure 入口網站查詢編輯器的詳細資訊,請參閱快速入門:使用 Azure 入口網站查詢編輯器來查詢 Azure SQL 資料庫

  1. 在 Azure 入口網站中,瀏覽至您的 SQL Database。 例如,瀏覽您的 Azure SQL 儀表板

  2. Azure 入口網站 SQL Database 的 [概觀] 頁面上,選取左側功能表中的 [查詢編輯器]。

  3. 在 [歡迎使用 SQL Database 查詢編輯器] 下的 [登入] 畫面上,選取 [繼續作為<您的使用者或群組 ID>]