共用方式為


Azure Synapse 工作區存取控制概觀

本文概述可用來控制 Azure Synapse 計算資源和資料存取權的機制。

Azure Synapse 提供全面且精細的訪問控制系統,可整合:

  • 用於資源管理和存取記憶體中數據的 Azure 角色
  • 用於管理程式代碼和執行即時存取的 Synapse 角色
  • SQL 集區中數據平面存取數據的 SQL 角色
  • 原始程式碼控制的 Git 許可權 ,包括持續整合和部署支援

Azure Synapse 角色提供了可套用在不同範圍的權限集合。 這種細微程度可讓您輕鬆地將適當的存取權授與管理員、開發人員、安全性人員和操作員,以計算資源和資料。

您可以使用與人員作業角色一致的安全性群組來簡化存取控制。 您只需要從適當的安全性群組新增和移除使用者,以管理存取權。

存取控制元素

建立及管理 Azure Synapse 計算資源

Azure 角色可用來控制管理:

  • 專用 SQL 集區
  • 資料總管集區
  • Apache Spark 集區
  • 整合執行階段

若要「建立」這些資源,您必須是資源群組的 Azure 擁有者或參與者。 若要「管理」這些已建立的資源,您必須是資源群組或個別資源的 Azure 擁有者或參與者。

擁有者或參與者可以啟用或停用 Azure Synapse 工作區的僅限項目驗證Microsoft。 如需Microsoft僅限 Entra 驗證的詳細資訊,請參閱 使用 Microsoft Entra 驗證搭配 Synapse SQL 進行驗證。

在 Azure Synapse 中開發和執行程式碼

Synapse 支援兩種開發模型。

  • Synapse 實時開發: 您在 Synapse Studio 中開發和偵錯程式代碼,然後將其 發佈 以儲存和執行。 Synapse 服務是程式碼編輯和執行的實際來源。 若關閉 Synapse Studio,任何未發佈的工作都會遺失。

  • 已啟用 Git 的開發: 您可以在 Synapse Studio 中開發和偵錯程式代碼,並將 變更認可 至 Git 存放庫的工作分支。 來自一或多個分支的工作已整合到共同作業分支中,您從此位置將其發佈至服務。 Git 存放庫是程式碼編輯的實際來源,而服務是執行的實際來源。 您必須先將變更認可至 Git 存放庫,或在關閉 Synapse Studio 之前發佈至服務。 若要深入瞭解如何搭配 Git 使用 Synapse Analytics,請參閱 Azure Synapse Analytics 工作區的持續整合和傳遞。

在這兩種開發模型中,具有 Synapse Studio 存取權的任何使用者都可以建立程式碼成品。 不過,您需要額外的權限才能將成品發佈至服務、讀取已發佈的成品、將變更認可至 Git、執行程式碼,以及存取受認證保護的連結資料。 用戶必須在 Synapse 工作區上擁有 Azure 參與者或更高角色,才能設定、編輯設定,並使用 Synapse 中斷 Git 存放庫的連線。

Azure Synapse 角色

Azure Synapse 角色可用來控制 Synapse 服務的存取權。 不同的角色可讓您進行下列操作:

  • 列出已發佈的程式代碼成品
  • 發佈程式代碼成品、連結服務和認證定義
  • 執行使用 Synapse 計算資源的程式代碼或管線
  • 執行程式代碼或管線,以存取受認證保護的鏈接數據
  • 檢視與已發佈程式代碼成品相關聯的輸出
  • 監視計算資源狀態,並檢視運行時間記錄

您可以在工作區範圍或更精細的範圍指派 Azure Synapse 角色,以限制授與特定 Azure Synapse 資源的權限。

Git 權限

針對 Git 模式中已啟用 Git 的開發,除了 Synapse 使用者或 Synapse RBAC 角色之外,您還需要 Git 許可權,才能讀取程式代碼成品,包括鏈接服務和認證定義。 若要在 Git 模式中認可程式代碼成品的變更,您需要 Git 許可權和 Synapse Artifact Publisher 角色。

存取 SQL 中的資料

針對專用和無伺服器 SQL 集區,數據平面存取是使用 SQL 許可權來控制。

系統會指派工作區的建立者為工作區的 Active Directory 管理員。 建立之後,此角色可以指派給不同的使用者或 Azure 入口網站中的安全性群組。

  • 無伺服器 SQL 集區:內建的無伺服器 SQL 集區上會授與 db_owner Synapse 系統管理員 (DBO) 許可權。 若要將無伺服器 SQL 集區的存取權授與其他使用者,Synapse 管理員需要在無伺服器集區上執行 SQL 指令碼。

  • 專用 SQL 集區:Synapse 管理員具有專用 SQL 集區中資料的完整存取權,以及將存取權授與其他使用者的能力。 Synapse 管理員也可以在專用集區上執行設定和維護活動,但卸載資料庫除外。 系統會將 Active Directory 管理員權限授與工作區和工作區 MSI 的建立者; 除非自動授與,否則系統不會授與存取專用 SQL 集區的權限。 若要將專用 SQL 集區的存取權授與其他使用者或群組,Active Directory 管理員或 Synapse 管理員必須針對每個專用的 SQL 集區執行 SQL 指令碼。

如需在 SQL 集區中授與 SQL 許可權的 SQL 腳本範例,請參閱 如何設定 Azure Synapse 工作區的訪問控制。

存取數據總管集區中的數據

針對數據總管集區,數據平面存取是透過數據總管許可權來控制。 Synapse 管理員會獲得資料總管集區的 All Database admin 權限。 若要將資料總管集區的存取權授與其他使用者或群組,Synapse 管理員應該參考安全性角色管理。 如需數據平面存取的詳細資訊,請參閱 訪問控制概觀

存取記憶體中的系統管理數據

無伺服器 SQL 集區和 Apache Spark 數據表會將其資料儲存在與工作區相關聯的 Azure Data Lake Storage Gen2 容器中。 使用者安裝的 Apache Spark 程式庫也會在相同的儲存體帳戶中進行管理。 若要啟用這些使用案例,使用者和工作區 MSI 必須獲 授與此工作區 Azure Data Lake Storage 容器的記憶體 Blob 數據參與者 存取權。

使用安全組作為最佳做法

若要簡化管理存取控制,您可以使用安全性群組將角色指派給個人和群組。 您可以建立安全性群組,以鏡像方式處理組織中需要存取 Synapse 資源或成品的角色或工作函式。 然後,可以將一或多個 Azure 角色、Synapse 角色、SQL 權限或 Git 權限指派給這些角色型安全性群組。 使用妥善選擇的安全性群組,將所需的權限新增至適當的安全性群組,即可輕鬆地將其指派給使用者。

注意

如果您使用安全組來管理存取權,在變更生效之前,Microsoft Entra ID 引進額外的延遲。

Synapse Studio 中的存取控制強制執行

Synapse Studio 會根據您的許可權和目前模式,以不同的方式運作:

  • Synapse 即時模式: 如果您沒有必要的許可權,Synapse Studio 可防止您看到已發佈的內容、發佈內容,或採取其他動作。 在某些情況下,您無法建立無法使用或儲存的程式代碼成品。
  • Git 模式: 如果您有 Git 許可權,可讓您將變更認可至最新分支,則如果您有權將變更發佈至即時服務(Synapse Artifact Publisher 角色),則允許認可動作。

在某些情況下,即使您沒有發佈或認可的權限,也可以建立程式碼成品。 這可讓您執行程式碼 (使用必要的執行權限)。 如需一般工作所需角色的詳細資訊,請參閱了解在 Azure Synapse 中執行一般工作所需的角色

如果在 Synapse Studio 中停用功能,工具提示會指出必要的許可權。 使用 Synapse RBAC 角色指南查詢所需的角色,以提供缺少的權限。