Microsoft Dataverse 中的基於所有權的安全

Dataverse 為多種商業場景提供彈性的安全模型。 此模型僅適用於擁有 Dataverse 資料庫的環境。 作為管理員,你負責管理使用者、驗證其安全設定,並排除存取問題。

以角色為基礎的安全性

Dataverse 使用 安全角色 對許可權進行分組。 可直接將安全角色指派給使用者或 Dataverse 團隊。 團隊成員會獲得分配給團隊的特權。

安全權限是累積的。 使用者將獲得由所有角色及團隊成員所賦予的最廣泛存取權限。 例如,如果一個角色授予組織層級對所有聯絡人紀錄的讀取權限,另一個角色則無法對使用者隱藏特定聯絡人。

業務單位

提示

觀看讓業務單位現代化。

業務單位與資安角色合作,以判定使用者的存取權限。 它們定義了安全邊界,幫助你管理使用者與資料。 每個 Dataverse 資料庫都有一個根業務單位。

建立子業務單位 ,將使用者與資料劃分為更小的安全邊界。 環境中的每個使用者都屬於一個業務單位。 你的事業單位結構可以與組織階層相匹配,但不必如此。

以下範例使用三個事業單位。 Woodgrove 是核心業務單位,並始終位居階層頂端。 A部門與B部門為子業務單位。 每個部門的使用者有不同的存取需求。

階層式資料存取結構

使用階層式結構將使用者與資料分隔成樹狀階層。

將每個使用者指派到一個事業單位,並指派該業務單位中的一個安全角色給使用者。 預設情況下,使用者的事業單位擁有使用者所建立的紀錄。 安全角色決定使用者在該業務單位中可存取哪些紀錄。

在此範例中,使用者 A 屬於部門 A,並擁有部門 A 的資安角色 Y。使用者 A 可以存取聯絡人 #1 和聯絡人 #2。 使用者B屬於B部門,因此使用者B無法存取A部門的聯絡人,但可以存取聯絡人#3。

階層式業務單位的示意圖,使用者A存取部門A聯絡人,使用者B存取部門B的聯絡人#3。

矩陣資料存取結構(現代化事業單位)

使用矩陣結構將資料組織成樹狀階層,同時允許使用者存取多個業務單位的資料,無論他們所屬的事業單位為何。

針對使用者需要存取其資料的每個事業單位,將一個安全性角色指派給該使用者。 當使用者建立紀錄時,可以選擇擁有該紀錄的事業單位。

在此範例中,使用者 A 可以屬於任何事業單位,包括根事業單位。 A 部門中的安全性角色 Y 會授與使用者 A 對聯絡人 #1 和聯絡人 #2 的存取權限。 B部門的安全角色Y會讓使用者A存取聯絡人#3。

圖示顯示使用者A透過各事業單位分配的角色Y存取A部門與B部門的聯絡人。

啟用矩陣資料存取結構

注意

在啟用此功能前,先發布所有自訂內容,使此功能適用於新資料表。 如果啟用該功能後未發佈的資料表仍無法運作,請使用 Microsoft Dynamics CRM 的 OrgDBOrgSettings 工具,將 RecomputeOwnershipAcrossBusinessUnits 設定為 true。 此設定允許您設定並更新 擁有事業單位 欄位。

  1. 請以 Dynamics 365 管理員或 Microsoft Power Platform 管理員身份登入 Power Platform 管理中心。
  2. 在導覽窗格中,選擇管理。
  3. 在 管理 面板中,選擇 環境,然後選擇環境。
  4. 選取設定>產品>功能。
  5. 啟用 跨業務單位的記錄所有權。
  6. 選取儲存。

啟用此功能後,當您將安全性角色指派給使用者時,請選取一個事業單位。 這個選項讓你能將不同事業單位的角色指派給使用者。 要執行模型驅動應用程式,使用者還需要來自自己事業單位的角色,包含必要的 使用者設定權限。 基本使用者角色顯示要啟用哪些使用者設定權限。

你可以將使用者設為任何業務單位中的紀錄擁有者,只要其某個安全性角色授予其對該紀錄所屬資料表的 讀取 權限。 使用者不需要擁有來自該記錄擁有業務單位的安全性角色。 欲了解更多資訊,請參閱 現代化事業單位的唱片所有權。

注意

EnableOwnershipAcrossBusinessUnits 設定會儲存這個功能的狀態。 你也可以用 OrgDBOrgSettings 工具來更改 Microsoft Dynamics CRM 的設定。

將業務單位與 Microsoft Entra 安全性群組關聯

將業務單位映射到 Microsoft Entra 安全群組,以簡化使用者管理與角色分配。

為每個事業單位建立 Microsoft Entra 安全群組。

針對每個事業單位:

  1. 建立 Microsoft Entra 安全性群組。
  2. 為安全群組建立一個 Dataverse 群組團隊 。
  3. 將該業務單位的安全角色指派給 Dataverse 團隊。
  4. 將使用者加入 Microsoft Entra 安全群組。

當使用者首次存取環境時,Dataverse 會在根業務單位建立該使用者。 使用者與 Dataverse 群組團隊可留在根業務單位。 他們所分配的安全角色會授權存取對應業務單位的資料。

若要存取矩陣資料,請將使用者新增至其需要存取之各業務單位的 Microsoft Entra 安全性群組。

擁有事業單位

每筆紀錄都有一個擁有業務 單位 欄位,用以識別擁有該紀錄的事業單位。 當使用者建立紀錄時,欄位預設為該使用者的業務單位。 只有在 跨事業單位的記錄擁有權 已啟用時,才能變更該值。

注意

更換擁有的事業單位可能會引發連鎖變化。 更多資訊請參閱使用 SDK for .NET 來設定串接行為。

若要讓使用者設定 所屬業務單位 欄位,請為該使用者的安全性角色授與 Business Unit 資料表的本地層級 附加至 權限。

將欄位加入:

  • 一個表單體或標題。
  • 一個景色。
  • 柱 映射。 如果你使用 AutoMapEntity,請將該欄位包含在地圖中。

注意

若資料同步作業的結構中包含 擁有業務單位 ,當目標環境不包含相同值時,該工作將因外鍵限制違規而失敗。 將欄位從來源結構中移除,或將其來源值改為目標環境中存在的業務單位。

當你將資料複製到外部資源(如 Power BI)時,只有當目的地支援該欄位時,才包含擁有業務單位。

資料表和記錄的所有權

Dataverse 支援兩種紀錄擁有權類型:

  • 所屬組織: 特權要麼適用於所有紀錄,要麼不適用。
  • 使用者或團隊擁有: 大多數權限支援使用者、事業單位、上層-下層事業單位和組織存取層級。

你在建立資料表時選擇擁有權類型,之後就不能更改了。 例如,使用者層級的讀取連絡人資料表權限,允許使用者只能讀取自己擁有的連絡人記錄。

若使用者 A 屬於部門 A,且擁有業務單位層級 的聯絡 資料表讀取權限,使用者 A 可讀取聯絡人 #1 與聯絡人 #2,但無法讀取聯絡人 #3。

當你設定安全角色時,為每個權限選擇一個存取等級。

安全角色核心記錄分頁的截圖,顯示透過分享建立權限等級,並標示聯絡表。

分別設定標準資料表權限: 建立、 讀取、 寫入、 刪除、 附加、 附加、 指派和 分享。 特權圖示顯示已授權的存取等級。

安全角色特權金鑰的截圖,顯示「未選取」、「使用者」、「業務單位」、「父:子業務單位」及「組織」的圖示。

在此範例中,組織層級的聯絡人資料表存取權限允許 A 部門的使用者查看並更新任何人擁有的聯絡人。 只授予使用者所需的存取權限。 廣泛的權限可能會削弱原本設計良好的安全模型。

現代化事業單位的唱片所有權

透過現代化的事業單位,使用者可以擁有任何業務單位的紀錄。 使用者需要來自任何業務單位的安全角色,該角色能賦予該紀錄資料表 的讀取 權限。 使用者不需要在每個包含其所擁有記錄的業務單位中都具備角色。

如果您在預覽期間於生產環境中啟用跨業務單位的記錄擁有權:

  1. 安裝 組織設定編輯器。
  2. 將 RecomputeOwnershipAcrossBusinessUnits 設為 true。 系統會在重新計算期間鎖住,此過程最多可能需要五分鐘。 重新計算後,使用者可以在不同事業單位間擁有紀錄,無需與每個事業單位分開擔任獨立的安全角色。 紀錄擁有者也可以將紀錄指派給該紀錄擁有業務單位以外的使用者。
  3. 設定 AlwaysMoveRecordToOwnerBusinessUnit 為 false。 當所有權變更時,紀錄仍留在原擁有的事業單位中。

對於非生產環境,請將 AlwaysMoveRecordToOwnerBusinessUnit 設為 false。

注意

如果您關閉 跨事業單位的記錄擁有權,或將 RecomputeOwnershipAcrossBusinessUnits 設為 false,則無法設定或更新 擁有事業單位 欄位。 Dataverse 也會將每筆受影響記錄的所屬業務單位變更為與該記錄擁有者的業務單位一致。

團隊(包括 群組團隊)

每個團隊都屬於一個事業單位。 Dataverse 會自動為每個事業單位建立預設團隊並管理其成員。 預設團隊總是包含整個事業單位的所有使用者。 你無法手動新增或移除它的成員。 當你將 使用者與業務單位關聯或解除關聯時,Dataverse 會更新會員資格。

Dataverse 提供兩種類型的團隊:

  • 擁有者隊伍 可以擁有紀錄。 每位隊員都能直接存取團隊的紀錄。 使用者可以同時屬於多個擁有者團隊。
  • 存取團隊 提供共享紀錄存取權,但不擁有紀錄或擔任安全角色。

共用記錄

將個別紀錄分享給使用者或團隊,以處理你所有權和事業單位模式無法涵蓋的例外情況。 只在例外情況下使用共享,因為這效率較低,且比基於角色的存取更難排查。 與團隊共享比分別與每個使用者分享更有效率。

使用存取團隊範本自動建立存取團隊並定義紀錄權限。 你也可以在沒有範本的情況下建立存取團隊,並手動管理成員。 存取團隊不擁有紀錄,也不能擔任資安角色。 團隊成員會獲得存取權限,因為紀錄是與團隊共享的。

Dataverse 中的記錄層級安全性

使用者的紀錄存取權結合了他們所有的安全角色、事業單位成員資格、團隊成員資格及共享紀錄。 存取權限是在 Dataverse 資料庫中累積的。 Dataverse 會針對每個資料庫分別追蹤存取權限,使用者必須擁有適當的 Dataverse 授權。

Dataverse 中的資料行層級安全性

當記錄層級安全無法提供足夠控制時,請使用欄位層級的安全。 啟用所有自訂欄位和大多數系統欄位。 大多數包含個人識別資訊(PII)的系統欄位都支援欄位層級的安全。 系統欄位的元資料會顯示你是否能保護它。

為每欄分別啟用欄位層級的安全。 接著,建立一個欄位安全性設定檔,授與建立、更新及讀取受保護欄位的存取權限。 將設定檔指派給使用者或團隊。

欄位層級的安全不會授權存取紀錄。 使用者必須先擁有記錄存取權,欄位安全設定檔才能授權存取受保護欄位。 僅在必要時使用欄位層級安全,因為過度使用會降低效能。

跨多環境管理安全

使用 Dataverse 解決方案在不同環境間移動安全角色與欄位安全設定檔。 在每個環境中分別建立和管理業務單位與團隊。 你也必須在每個環境中將使用者指派給適當的安全元件。

設定使用者安全性

建立角色、團隊及業務單位後,請設定每位使用者的存取權限:

  1. 將使用者與一個事業單位關聯起來。 Dataverse 預設使用根業務單位,並將使用者加入該業務單位的預設團隊。
  2. 指派使用者所需的安全角色。
  3. 將使用者加入相應的團隊。
  4. 如果你使用欄位層級的安全,請為使用者或其團隊指派欄位安全設定檔。

使用者的有效存取權結合了直接指派的安全角色與透過團隊分配的角色。 Dataverse 一律會授予這些角色中最寬鬆的權限。 詳細攻略請參閱 「設定環境安全」。

在部署變更前,與應用程式開發者及管理使用者權限的管理員協調重大安全變更。

另請參閱