Microsoft Dataverse 中的安全性概念

Dataverse 提供豐富的安全模型,能適應多種商業情境。 安全模型僅適用於擁有 Dataverse 資料庫的環境。 作為管理員,你經常管理使用者、設定他們的安全設定,並排除存取問題。

以角色為基礎的安全性

Dataverse 利用基於角色的安全性來分組權限。 你可以將這些 安全角色 直接關聯給使用者,或將它們與 Dataverse 團隊和業務單位關聯。 使用者可以與團隊綁定,因此所有與團隊相關的使用者都能從該角色中受益。 需要理解的 Dataverse 安全性一項關鍵概念是:所有權限授與都會累加,並以最高的存取權限為準。 如果你將整個組織層級的廣泛讀取權限授予所有聯絡人記錄,之後就無法再回頭隱藏單一記錄。

業務單位

提示

視訊符號 觀看以下影片:現代化業務單位。

業務單位與資安角色決定使用者的有效安全。 業務單位定義安全邊界,協助管理使用者及其可存取的資料。 每個 Dataverse 資料庫都有一個根業務單位。

建立子事業單位 以進一步細分使用者與資料。 環境中的每個使用者都屬於一個業務單位。 雖然事業單位可以一對一建模組織階層,但他們更常定義支持安全模型的邊界。

考慮一個有三個事業單位的環境。 Woodgrove 是根業務單位,且始終位於最上層。 子業務單位 A 與 B 為具有不同存取需求的使用者提供服務。 將每位使用者分配到其中一個事業單位。 使用者的業務單位擁有使用者所建立的紀錄。 安全角色會授權存取該業務單位的紀錄。

階層式資料存取結構

使用樹狀組織架構來區隔使用者與資料。

將使用者指派到三個事業單位中的其中一個,並從該事業單位指派一個安全性角色給使用者。 使用者的業務單位擁有使用者所建立的紀錄。 設定安全角色以授權該業務單位的紀錄存取權限。

使用者A屬於A部門,擁有A部門的安全角色Y。此角色賦予使用者 A 聯絡人 #1 與聯絡人 #2 紀錄的存取權。 使用者 B 屬於 B 部門,無法存取 A 部門的聯絡紀錄,但可以存取聯絡人 #3 的紀錄。

圖表顯示各事業單位對聯絡紀錄的階層存取。

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

使用樹狀組織結構將資料區隔,同時讓使用者能存取來自任何業務單位的資料,無論其所屬的業務單位為何。

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

使用者 A 可以屬於任何事業單位,包括根事業單位。 來自 A 部門的安全角色 Y 會授權使用者 A 存取聯絡人 #1 和聯絡人 #2 的紀錄。 來自 B 部門的安全角色 Y 會授權使用者 A 存取聯絡人 #3 紀錄。

圖表顯示跨事業單位的聯絡人紀錄矩陣存取情況。

啟用矩陣資料存取結構

注意

啟用此功能前,請先發布所有自訂資料,確保它支援每一張新資料表。 如果開啟此功能後未發佈的資料表仍無法運作,請使用 Microsoft Dynamics CRM 的 OrgDBOrgSettings 工具將 RecomputeOwnershipAcrossBusinessUnits 設為 true。 此設定允許 Dataverse 設定並更新 擁有事業單位 欄位。

  1. 以系統管理員身分登入 Microsoft Power Platform 系統管理中心(Dynamics 365 系統管理員或 Microsoft Power Platform 系統管理員)。
  2. 在導覽窗格中,選擇管理。
  3. 在“管理” 窗格中,選擇 “環境”,然後選擇要為其啟用此功能的環境。
  4. 選取設定>產品>功能。
  5. 將跨業務單位的記錄擁有權開關設為開啟。
  6. 選取儲存。

啟用此功能後,當您將安全性角色指派給使用者時,請選取業務單位。 此選項允許您指派不同業務單位的使用者安全角色。 要執行模型驅動應用程式,使用者還需要來自其指定業務單位的安全角色,並 擁有使用者設定權限。 請參閱 基本使用者 安全角色以獲得所需權限。

您可以將使用者指派為任何業務單位的記錄負責人,而不需要在記錄的擁有業務單位中指派資訊安全角色,只要使用者的資訊安全角色擁有對記錄資料表的讀取權限即可。 請參閱現代化業務單位中的記錄擁有權。

注意

此功能開關會儲存在 EnableOwnershipAcrossBusinessUnits 設定中,您可以使用 Microsoft Dynamics CRM 的 OrgDBOrgSettings 工具進行設定。

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

您可以使用 Microsoft Entra 安全性群組來對應您的業務單位,以簡化您的使用者管理和角色指派。

為每個業務單位建立一個 Microsoft Entra 安全性群組,並將對應的業務單位資訊安全角色指派給每個群組團隊。

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

為每個業務單位建立 Microsoft Entra 安全性群組。 為每個 Microsoft Entra 安全性群組建立 Dataverse 群組團隊。 將業務單位的相應資訊安全角色指派給各個 Dataverse 群組團隊。 當使用者存取環境時,Dataverse 會在根業務單位建立使用者。 使用者與 Dataverse 群組團隊可留在根業務單位。 他們的安全角色僅允許存取對應業務單位的資料。

將使用者新增至相應的 Microsoft Entra 安全性群組,以授與他們存取業務單位的權限。 使用者可以立即執行應用程式並存取其資源/資料。

對於矩陣資料存取,請將使用者加入 Microsoft Entra 安全群組,這些群組對應到他們需要資料的業務單位。

擁有事業單位

每筆紀錄都有一個擁有業務 單位 欄位,用以識別擁有該紀錄的事業單位。 預設欄位會使用使用者的業務單位。 使用者只能在功能開啟時更改該數值。

注意

當您更改擁有記錄的業務單位時,請務必檢查以下是否有階層式效應:使用 .NET 的 SDK 設定階層式行為。

當功能開關開啟時,您可以管理是否允許使用者設定「擁有業務單位」資料行。 若要設定「擁有者商務單位」資料行,您必須授與使用者的安全性角色對「商務單位」資料表的 「附加至」 權限,且權限層級須為本機層級。

讓使用者設定此欄位:

  1. 加入它來形成主體和頁首。
  2. 把它加入觀看次數。
  3. 把它加入 欄位映射。 如果你使用 AutoMapEntity,請在地圖中指定欄位。

注意

若作業或程序在環境之間同步資料,且其結構描述中包含 Owning Business Unit,當目標環境沒有相同的值時,該作業會因 Foreign KEY 條件約束違規而失敗。

從來源架構中移除 擁有事業單位 欄位,或將其來源值改為目標環境中存在的業務單位。

若作業或程序將資料複製到外部資源(例如 Power BI),只有在該資源支援時,才包含 Owning Business Unit。

資料表/紀錄擁有權

Dataverse 支援兩種紀錄所有權: 組織擁有 與 使用者或團隊擁有。 你在建立資料表時選擇擁有權類型,之後就不能更改。 對於組織擁有的紀錄,每項權限不是允許就是拒絕某項操作。 對於由使用者或團隊擁有的記錄,大多數權限都支援下列存取層級:組織、業務單位、業務單位及其子業務單位,以及使用者。 例如,將聯絡人的讀取權限設為「使用者」會限制使用者只能使用自己的紀錄。

例如,使用者A屬於A部門,擁有業務單位層級的聯絡人讀取權限。 使用者A可以看到聯絡人#1和聯絡人#2,但無法看到聯絡人#3。

當您設定安全性角色權限時,便會為每項權限設定存取層級。 以下截圖顯示安全角色權限編輯器。

Dataverse 資料表的安全角色權限編輯器截圖。

安全角色權限編輯器會顯示每個資料表的標準權限類型:建立、讀取、寫入、刪除、附加、附加、指派與分享。 請分別編輯每個特權。 每個符號都對應金鑰中的一個存取層級。

安全角色權限存取等級的金鑰截圖。

範例賦予組織層級的聯絡人存取權,讓 A 部門的使用者可以查看並更新任何人擁有的聯絡人。 避免授權超過使用者所需的權限,因為這樣做會削弱安全模型。

經篩選的資料表記錄擁有權(預覽)

預覽功能不供生產時使用,而且可能功能受限。 這些功能是在正式發行前先行推出,讓客戶能夠搶先體驗並提供意見反應。

篩選式紀錄所有權讓管理員能透過欄位值篩選器控制 Dataverse 紀錄的存取權。 例如,僅授與 資料行等於 City 的記錄存取權。 使用者只能建立、閱讀、更新及刪除符合其安全角色中篩選條件的紀錄。

與傳統 Dataverse 表格不同,帶有篩選紀錄所有權的資料表不支援紀錄擁有權、分享或指派。 基於過濾器的權限控制記錄存取,並提供細緻的列級存取,且不限制資料表、欄位或其他模型物件。

注意

使用篩選紀錄所有權來授予符合篩選條件的紀錄在列層級的存取權限。 對篩選過的紀錄所有權資料表及現有的使用者或組織擁有資料表套用基於篩選的權限。 對於現有資料表,此方法保留底層的所有權模型。

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

在 現代化事業單位中,使用者可以跨事業單位擁有紀錄。 他們只需在任何業務單位中擁有對記錄資料表具讀取權限的安全性角色即可。 他們不需要在記錄所在的每個事業單位都有安全角色。

如果您的生產環境保留了 跨事業單位的記錄擁有權 的預覽設定,請依照下列步驟啟用跨事業單位的記錄擁有權:

  1. 安裝 組織設定編輯器。
  2. 將組織設定設 RecomputeOwnershipAcrossBusinessUnits 為 true。 此設定會將系統鎖定最多五分鐘,等待系統重新計算所有權。 重新計算後,使用者可在各事業單位間擁有紀錄,無需在每個事業單位中擁有獨立的安全角色。 紀錄持有人也可以將紀錄指派給非該紀錄擁有業務單位的使用者。
  3. 將 AlwaysMoveRecordToOwnerBusinessUnit 設定為 false。 當所有權變更時,紀錄仍保留在原本擁有的業務單位中。

對於非生產環境,設定 AlwaysMoveRecordToOwnerBusinessUnit 為 false 以啟用跨業務單位的紀錄擁有權。

注意

如果您關閉 跨業務單位記錄擁有權 功能,或使用 Microsoft Dynamics CRM 的 OrgDBOrgSettings 工具 將 RecomputeOwnershipAcrossBusinessUnits 設定為 false,您就無法設定或更新 擁有業務單位 欄位。 當值不同時,系統也會更新每筆記錄的 擁有事業單位 欄位,使其與擁有者的業務單位一致。

團隊(包括 群組團隊)

Teams 是屬於某個事業單位的安全建構單元。 當你建立事業單位時,Dataverse 會自動建立預設團隊。 Dataverse 管理預設團隊的成員,包含該業務單位所有相關用戶。 你無法手動新增或移除成員。 Dataverse 會隨著 使用者與事業單位的關聯或脫離而更新會員資格。 Dataverse 支援兩種團隊類型:擁有者團隊與存取團隊。

  • 擁有者隊伍可以擁有紀錄。 團隊成員可直接存取團隊擁有的紀錄。 使用者可以屬於多個團隊,這會授予廣泛的權限,但不會管理每個使用者的存取權限。
  • 下一節將介紹存取團隊作為紀錄共享的一部分。

共用記錄

將個別紀錄分享給使用者或團隊,以處理不符合紀錄所有權或業務單位成員存取模式的例外情況。 分享使用要節制,因為這會降低效能,並使存取問題更難排除。 與團隊分享比與個別使用者分享更有效率。

Access Teams 提供更進階的分享服務。 Dataverse 會自動建立存取團隊,並根據存取團隊範本分享紀錄存取權,該範本定義了權限。 Access Teams 也支援無需範本的手動會員管理。 Dataverse 不允許存取團隊擁有紀錄或擔任資安角色,這提升了效能。 使用者在將紀錄分享給其所屬的存取團隊時,即可取得存取權限。

Dataverse 中的記錄層級安全性

有多種因素決定使用者對紀錄的存取權限。 Dataverse 結合了使用者安全角色、業務單位、團隊成員及共享紀錄的存取。 這些權限僅適用於單一環境的資料庫,Dataverse 會在每個資料庫中分別追蹤這些權限。 使用者也需要適當的 Dataverse 授權。

Dataverse 中的資料行層級安全性

當記錄層級存取不符合商業情境需求時,使用欄位層級的安全。 欄位層級的安全讓你對存取有更細緻的控制。 它支援所有自訂欄位及大多數系統欄位。 大多數包含個人識別資訊(PII)的系統欄位都支援個別安全措施。 每個系統欄位的元資料會顯示欄位層級安全性是否可用。

為每欄分別啟用欄位層級的安全。 接著建立一個欄位安全設定檔來管理存取權限。 該設定檔列出已啟用欄位層級安全性的欄位,並為每個欄位定義建立、更新及讀取權限。 將個人檔案與使用者或團隊關聯,授權他們存取已能存取的紀錄中受保護欄位。 欄位層級的安全不賦予記錄層級的存取權限。 只有在需要時才使用,因為過度使用會降低效能。

管理多個環境的安全性

使用 Dataverse 解決方案在不同環境間移動安全角色與欄位安全設定檔。 在每個環境中分別建立和管理業務單位與團隊,並將使用者分配到所需的安全元件。

在環境中設定使用者安全性

在建立角色、團隊和業務單位後,為每位使用者指派安全設定。 建立使用者時,將該使用者與業務單位關聯起來。 預設情況下,Dataverse 會將使用者與組織的根業務單位關聯,並將使用者加入該業務單位的預設團隊。

指派使用者所需的安全角色,並將使用者加入相應的團隊。 由於團隊也可以擁有安全角色,使用者的有效權限會將直接指派的角色與團隊成員的角色結合起來。 Dataverse 會套用這些權限中限制最少的權限。 欲了解攻略,請參閱 設定環境安全。

如果你使用欄位層級安全,請將使用者或其團隊成員與欄位安全設定檔關聯起來。

安全是一個複雜的議題。 應用程式開發者與管理使用者權限的團隊應該在安全議題上合作。 在部署前就協調重大變更。

另請參閱