共用方式為


Fabric 數據倉儲中的服務主體

適用於:Microsoft Fabric 中的✅ 倉儲

Azure 服務主體 (SPN) 是應用程式或自動化工具用來存取特定 Azure 資源的安全性身分識別。 不同於使用者身分識別,服務主體是非互動式的應用程式型身分識別,可指派精確的許可權,使其非常適合自動化程式或背景服務。 藉由使用服務主體,您可以安全地連線到數據源,同時將人為錯誤和身分識別型弱點的風險降到最低。 若要深入瞭解服務主體,請參閱 Microsoft Entra ID中的 應用程式和服務主體物件。

先決條件

  1. 使用 Azure建立服務主體、指派角色,以及建立秘密。

  2. 請確保租戶管理員可以在 Fabric 管理入口網站中啟用 ,使服務主體能夠使用 Fabric API

  3. 請確保具有系統管理員 工作區角色的使用者,可以通過在工作區中使用 管理存取 對SPN授與存取權。

    Fabric 入口網站的管理存取彈出視窗螢幕快照。

使用SPN透過REST API建立和存取倉儲

具有系統管理員、成員或參與者的使用者 工作區角色 可以使用服務主體進行驗證,透過網狀架構 REST API建立、更新、讀取和刪除倉儲專案。 這可讓您自動執行重複的工作,例如布建或管理倉儲,而不需要依賴用戶認證。

如果您使用委派的帳戶或固定身分識別(擁有者的身分識別)來建立倉儲,則倉儲會在存取 OneLake 時使用該認證。 當擁有者離開組織時,這會造成問題,因為倉儲將會停止運作。 若要避免這種情況,請使用SPN建立倉儲。

Fabric 也需要使用者每隔 30 天登入一次,以確保基於安全性理由提供有效的令牌。 對於數據倉儲,擁有者必須每隔 30 天登入 Fabric。 這可以使用SPN搭配 List API 來自動化。

使用 SPN 呼叫網狀架構 API POST 呼叫的螢幕快照。

使用 REST API 建立的 SPN 倉儲會顯示在網狀架構入口網站的 [工作區] 清單檢視中,並將 擁有者 名稱顯示為 SPN。 在下圖中,來自 Fabric 入口網站之工作區的螢幕截圖中,可以看到「Fabric 公用 API 測試應用程式」,這是用來建立 Contoso 行銷倉儲的 SPN。

工作區專案清單網狀架構入口網站的螢幕快照。顯示倉儲。其擁有者不是個人帳戶,而是SPN。

使用SPN連線到用戶端應用程式

您可以使用服務主體,透過 SQL Server Management Studio(SSMS)19 或更高版本等工具,連線至 Fabric 倉儲。

  • 驗證Microsoft Entra 服務主體
  • 使用者名稱:SPN 的用戶端識別碼(在必要條件一節中透過 Azure 建立)
  • 密碼:秘密(在必要條件一節中透過 Azure 建立)

使用 SQL Server Management Studio (SSMS) 中的 SPN 登入 Fabric 的螢幕快照。

控制平面許可權

SPN 可以使用工作區角色 工作區角色來授與倉儲的存取權,管理工作區中的存取權。 此外,您可以透過 Fabric 入口網站,利用 項目許可權與 SPN 共享倉庫。

資料平面許可權

一旦透過工作區角色或項目許可權將控制平面許可權授予SPN後,系統管理員可以使用 T-SQL 命令(例如 GRANT),將特定的數據平面許可權 指派給服務主體,以精確控制SPN可以存取的元數據/資料和操作。 建議遵循最低許可權原則。

例如:

GRANT SELECT ON <table name> TO <service principal name>;

授與許可權之後,SPN 就可以連線到 SSMS 等用戶端應用程式工具,從而為開發人員提供安全的存取權,來執行 COPY INTO(包括啟用或未啟用防火牆的儲存空間),並且能夠程式化地在排程中利用 Data Factory 管線執行任何 T-SQL 查詢

在 SQL Server Management Studio (SSMS)中查詢和結果的螢幕截圖,其中使用者已透過 SPN 存取 Azure 儲存體物件。

顯示器

當SPN在倉儲中執行查詢時,有各種監視工具可讓您查看執行查詢的使用者或SPN。 您可以透過下列方式找到查詢活動的使用者:

  • 動態管理檢視 (DMV)login_name中的 sys.dm_exec_sessions 欄位。
  • Query Insightslogin_name 檢視中的 queryinsights.exec_requests_history 欄。
  • 查詢活動:Fabric 查詢活動中的 submitter 欄位。
  • 容量計量應用程式:SPN 所執行之倉儲作業的計算使用量會顯示為背景作業鑽研數據表中 [使用者] 資料行底下的客戶端標識符。

如需詳細資訊,請參閱 監視網狀架構數據倉儲

接管 API

倉儲的擁有權可以從SPN變更為使用者,以及從用戶變更為SPN。

  • 從 SPN 或從一位使用者接管到另一位使用者:請參閱 接管紡織倉庫的所有權。

  • 從 SPN 或使用者接管至 SPN:使用 REST API 上的 POST 呼叫。

    POST <PowerBI Global Service FQDN>/v1.0/myorg/groups/{workspaceid}/datawarehouses/{warehouseid}/takeover
    

局限性

Microsoft網狀架構數據倉儲的服務主體限制:

  • SPN 建立的倉儲不支援預設語意模型,因此,例如在數據集檢視中列出數據表、從預設數據集建立報表的功能將無法運作。
  • 目前不支援 SQL 分析端點的服務主體。
  • 目前,COPY INTO 錯誤檔案不支援服務主體或 Entra ID 認證。
  • GIT API不支援服務主體。 SPN 支援僅適用於 部署管線 API