共用方式為


作為 SQL 驗證替代方案的 Microsoft Entra 驗證

適用於:✅ Microsoft Fabric 中的 SQL 分析端點和倉儲

本文涵蓋使用者和客戶可以採用的技術方法,以便在 Microsoft Fabric 內從 SQL 驗證轉換到 Microsoft Entra 驗證。 Microsoft Entra 驗證是透過 SQL 驗證使用使用者名稱和密碼登入的替代方案,用於登入 Microsoft Fabric 中 Lakehouse 或倉儲的 SQL 分析端點。 Microsoft Entra 驗證對於建立安全的資料平台是可取且至關重要的。

本文著重介紹 Microsoft Entra 驗證,作為 Microsoft Fabric 項目 (例如 Warehouse 或 Lakehouse SQL 分析端點) 中 SQL 認證的替代方案。

Microsoft Entra 驗證在 Fabric 中的優點

Microsoft Fabric 的核心原則之一是透過設計確保安全。 Microsoft Entra 透過確保強大的資料保護、治理和合規性,是 Microsoft Fabric 安全性不可或缺的一部分。

Microsoft Entra 在 Microsoft Fabric 的安全性中扮演重要角色,原因如下:

  • 驗證:使用 Microsoft Entra ID 來驗證使用者和服務主體,這會授與 Fabric 內作業的存取權杖。
  • 安全存取:從任何裝置或網路安全地連線到雲端應用程式,保護向 Fabric 提出的要求。
  • 條件式存取:管理員可以設定原則,以評定使用者登入內容、控制存取,或強制執行額外的驗證步驟。
  • 整合:Microsoft Entra ID 可順暢地與所有 Microsoft SaaS 供應項目搭配運作 (包括 Fabric),允許跨裝置和網路輕鬆存取。
  • 廣泛的平台:不論是透過 Fabric 入口網站、SQL 連接字串、REST API,還是 XMLA 端點,透過任何方法存取具有 Microsoft Entra ID 的 Microsoft Fabric。

Microsoft Entra 採用完整的零信任原則,為僅限於使用者名稱和密碼的傳統 SQL 驗證提供了更優越的替代方案。 此方法:

  • 防止使用者模擬。
  • 針對使用者識別、環境、裝置等,啟用更細緻的存取控制。
  • 支援進階安全性,如 Microsoft Entra 多重要素驗證

Fabric 設定

與倉儲或 Lakehouse SQL 分析端點搭配使用的 Microsoft Entra 驗證需要在 [租用戶] 和 [工作區] 設定中進行設定。

租用戶設定

租用戶中的 Fabric 管理員必須允許 SPN 存取 Fabric API,SPN 才能將 SQL 連接字串連接到 Fabric 倉儲或 SQL 分析端點項目。

此設定位於 [開發人員設定] 區段中,且標示 為服務主體可以使用網狀架構 API。 請確定該項目 [已啟用]

租用戶設定中 [開發人員設定] 頁面 Fabric 入口網站的螢幕擷取畫面。

工作區設定

工作區中的 Fabric 管理員必須授與使用者/SPN 存取 Fabric 項目的存取權。

有兩種方法可授與使用者/SPN 存取權:

  • 將使用者/SPN 成員資格授與角色:任何工作區角色(管理員、成員、參與者或查看器)都足以使用 SQL 連接字串 連線到倉儲或 Lakehouse 專案。

    1. 在工作區的 [管理存取權] 選項中,指派 [參與者] 角色。 如需詳細資訊,請參閱服務角色
  • 將使用者/SPN 指派給特定專案:將存取權授與 Lakehouse 的特定 Warehouse 或 SQL 分析端點。 Fabric 管理員可以從不同的權限等級中選擇。

    1. 瀏覽至相關的倉儲或 SQL 分析端點項目。
    2. 選取 [更多選項 ],然後選取 [管理權限]。 選取 [新增使用者]
    3. 在 [授與人員存取權] 頁面上新增 [使用者/SPN]。
    4. 將必要的權限指派給使用者/SPN。 選擇 [其他權限] 以僅授與連線權限。

    [授與人員存取權] 頁面 Fabric 入口網站的螢幕擷取畫面。

您可以變更系統提供給使用者/SPN 的預設權限。 使用 T-SQL GRANTDENY 命令,視需要變更權限,或使用 ALTER ROLE 將會員資格新增至角色。

目前,SPN 沒有使用者帳戶的功能,無法使用 GRANT/DENY 進行詳細的權限設定。

支援使用者識別和服務主體名稱 (SPN)

Fabric 在 SQL 連線中原生支援對倉儲和 SQL 分析端點項目的 Microsoft Entra 使用者和服務主體名稱 (SPN) 的驗證和授權。

  • 使用者識別是組織內每個使用者的唯一認證。
  • SPN 代表租用戶內的應用程式物件,並作為應用程式執行個體的身分識別,扮演驗證和授權這些應用程式的角色。

支援表格式資料流 (TDS)

當您使用 連接字串 連線時,網狀架構會使用表格式數據流 (TDS) 通訊協定,與 SQL Server 相同。

網狀架構與任何能夠使用 SQL 資料庫 引擎連線至產品的應用程式或工具相容。 類似於 SQL Server 執行個體連線,TDS 會在 TCP 連接埠 1433 上運作。 如需 Fabric SQL 連線的詳細資訊,請參閱連線

若要取得連接字串,請在 Fabric 倉儲或 SQL 分析端點項目上選取 [更多選項]

[更多選項] 特色選單的 Fabric 入口網站螢幕擷取畫面。[複製 SQL 連接字串] 選項會醒目顯示。

SQL 連接字串如下所示:<guid_unique_your_item>.datawarehouse.fabric.microsoft.com

應用程式和用戶端應用程式可以在連接字串中設定 Authentication 連線屬性,以選擇 Microsoft Entra 驗證模式。 下表詳細說明不同的Microsoft Entra 驗證模式,包括支援 Microsoft Entra 多重要素驗證 (MFA)。

驗證模式 案例 註解
Microsoft Entra 互動 在使用者驗證可以互動進行的情況下,或可接受手動介入認證驗證時,由應用程式或工具使用。 啟動 MFAMicrosoft Entra 條件式存取原則,以強制執行組織規則。
Microsoft Entra 服務主體 應用程式使用安全驗證,無需人為介入,最適合應用程式整合。 建議啟用 Microsoft Entra 條件式存取原則
Microsoft Entra 密碼 當應用程式因不相容而無法使用 SPN 型驗證時,或需要為許多使用者提供一般使用者名稱和密碼時,或其他方法不可行時。 MFA 必須關閉,且無法設定條件式存取原則。 建議您先向客戶的安全性小組驗證,再選擇此解決方案。

顯示 Microsoft Entra 驗證模式和決策點的流程圖。

Microsoft Entra 驗證的驅動程式支援

雖然大部分的 SQL 驅動程式一開始都支援 Microsoft Entra 驗證,但最近的更新已將相容性擴充到包含 SPN 型驗證。 這項增強功能可透過驅動程式升級,和新增對 Microsoft Entra 驗證的支援,簡化各種應用程式和工具向 Microsoft Entra 驗證的轉移。

不過,有時必須調整其他設定,例如啟用特定連接埠或防火牆,以協助主機電腦上的 Microsoft Entra 驗證。

應用程式和工具必須將驅動程式升級至支援 Microsoft Entra 驗證的版本,並在 SQL 連接字串 中新增驗證模式關鍵詞,例如 ActiveDirectoryInteractiveActiveDirectoryServicePrincipalActiveDirectoryPassword

Fabric 與 Microsoft 原生驅動程式相容,包括 OLE DB、Microsoft.Data.SqlClient 和泛型驅動程式,例如 ODBC 和 JDBC。 應用程式使用 Fabric 的轉換可透過重新設定來管理,以使用 Microsoft Entra ID 型驗證。

如需詳細資訊,請參閱 Microsoft Fabric 中的資料倉儲連線

Microsoft OLE DB

OLE DB Driver for SQL Server 是專為 OLE DB 設計的獨立資料存取 API,並首次隨 SQL Server 2005 (9.x) 發行。 此後,擴充的功能包括版本 18.5.0 的 SPN 型身份驗證,並新增至早期版本的現有驗證方法。

驗證模式 SQL 連接字串
Microsoft Entra 互動 Microsoft Entra 互動式驗證
Microsoft Entra 服務主體 Microsoft Entra 服務主體驗證
Microsoft Entra 密碼 Microsoft Entra 使用者名稱和密碼驗證

如需使用 OLE DB 搭配 SPN 型驗證的 C# 程式碼片段,請參閱 System.Data.OLEDB.Connect.cs

Microsoft ODBC 驅動程式

Microsoft ODBC Driver for SQL Server 是單一動態連結程式庫 (DLL),包含使用機器碼 API 連線至 SQL Server 的應用程式執行階段支援。 建議使用最新版本的應用程式與 Fabric 整合。

如需搭配 ODBC 進行 Microsoft Entra 驗證的詳細資訊,請參閱搭配使用 Microsoft Entra ID 與 ODBC 驅動程式範例程式碼

驗證模式 SQL 連接字串
Microsoft Entra 互動 DRIVER={ODBC Driver 18 for SQL Server};SERVER=<SQL Connection String>;DATABASE=<DB Name>;UID=<Client_ID@domain>;PWD=<Secret>;Authentication=ActiveDirectoryInteractive
Microsoft Entra 服務主體 DRIVER={ODBC Driver 18 for SQL Server};SERVER=<SQL Connection String>;DATABASE=<DBName>;UID=<Client_ID@domain>;PWD=<Secret>;Authentication=ActiveDirectoryServicePrincipal
Microsoft Entra 密碼 DRIVER={ODBC Driver 18 for SQL Server};SERVER=<SQL Connection String>;DATABASE=<DBName>;UID=<Client_ID@domain>;PWD=<Secret>;Authentication=ActiveDirectoryPassword

如需使用 ODBC 搭配 SPN 型驗證的 Python 程式碼片段,請參閱 pyodbc-dw-connectivity.py

Microsoft JDBC Driver

Microsoft JDBC Driver for SQL Server 為 Type 4 JDBC 驅動程式,透過可在 Java 平台上取得的標準 JDBC API 提供資料庫連接。

從 9.2 版本開始,mssql-jdbc 引入了對 ActiveDirectoryInteractiveActiveDirectoryServicePrincipal 的支援,12.2 以上版本支援 ActiveDirectoryPassword。 此驅動程式需要額外的 jar 作為相依性,這必須與應用程式中使用的 mssql-driver 版本相容。 如需詳細資訊,請參閱 JDBC 驅動程式的功能相依性用戶端設定需求

驗證模式 其他相關資訊
Microsoft Entra 互動 使用 ActiveDirectoryInteractive 驗證模式來連線
Microsoft Entra 服務主體 使用 ActiveDirectoryServicePrincipal 驗證模式來連線
Microsoft Entra 密碼 使用 ActiveDirectoryPassword 驗證模式來連線

如需使用 JDBC 搭配 SPN 型驗證的 Java 程式碼片段,請參閱 fabrictoolbox/dw_connect.java範例 POM 檔案 pom.xml

.NET Core 中的 Microsoft.Data.SqlClient (C#)

Microsoft.Data.SqlClient 是 Microsoft SQL Server 和 Azure SQL Database 的資料提供者。 它是兩個獨立存在於 .NET Framework 和 .NET Core 中的 System.Data.SqlClient 元件的聯合,提供了一組類別來存取 Microsoft SQL Server 資料庫。 建議針對所有新的和未來的開發使用 Microsoft.Data.SqlClient

驗證模式 其他相關資訊
Microsoft Entra 互動 使用互動式驗證
Microsoft Entra 服務主體 使用服務主體驗證
Microsoft Entra 密碼 使用密碼驗證

使用 SPN 的程式碼片段: