欄位安全性如何用於控制 Microsoft Dynamics 365 欄位值的存取

 

發佈日期: 2017年1月

適用對象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

在 Microsoft Dynamics 365 和 Microsoft Dynamics 365 (線上),您可以使用欄位層級安全性,限制只有特定使用者與團隊才能存取高業務影響欄位。 例如,您可以使用此功能,讓只有特定使用者才能讀取或更新客戶的信用分數。 在這個版本,欄位層級安全性會套用在自訂欄位和許多內建 (OOB) 欄位。

下列步驟說明如何限制欄位的存取:

  1. 啟用屬性的欄位層級安全性

  2. 建立欄位層級安全性設定檔

  3. 建立使用者或團隊與設定檔關聯

  4. 將特定欄位權限,例如特定屬性的建立、讀取、更新,新增至設定檔

下圖顯示角色型安全性、記錄型安全性以及欄位層級安全性之間的互動。

角色型與欄位層級安全性比較

角色型安全性讓您查看特定實體類型,記錄型安全性可讓您查看個別記錄,而欄位層級安全性讓您查看特定欄位。

影片:Microsoft Dynamics CRM 2015 的欄位層級安全性

常見問題集

  • 哪些屬性可受保護?

  • 哪些資訊安全角色讓您查看受保護欄位?

  • 受保護欄位對 Retrieve 和 RetrieveMultiple 如何運作?

  • 受保護欄位對 create 或 update 如何運作?

  • 共用記錄時,受保護欄位如何運作?

  • 受保護欄位對篩選過的檢視如何運作?

  • 受保護欄位對離線同步處理如何運作?

哪些屬性可受保護?

若要找出那些屬性可受保護,您可以查詢下列屬性的實體中繼資料:

有數千個屬性可受保護,有兩個比較輕鬆的方法尋找此資訊。若要檢視組織的實體中繼資料,請安裝瀏覽組織的中繼資料中敘述的中繼資料瀏覽器解決方案。 您也可以下載 SDK 後開啟其頂層資料夾內所附名為 EntityMetadata.xlsx 的 Excel 檔案,從中檢視未經自訂組織的中繼資料。

特定屬性資料類型有一些額外的適用規則:

  • 對於建立和更新作業,布林屬性可受保護,但讀取則不可。

  • 預設值未指定時,選項組屬性針對建立、更新和讀取可受保護。

哪些資訊安全角色讓您查看受保護欄位?

[系統管理員] 欄位安全性設定檔可用於完整存取 Microsoft Dynamics 365 中所有受保護的欄位。 根據預設,具有系統管理員資訊安全角色之所有使用者均具有此設定檔。 此設定檔是由系統管理,無法更新或刪除。

受保護欄位對 Retrieve 和 RetrieveMultiple 如何運作?

當您呼叫 RetrieveRetrieveMultiple 方法或訊息時,Microsoft Dynamics 365 評估呼叫端及模擬使用者是否可存取每個擷取記錄 (這是一般的安全性程序) 以及每個受保護的欄位。 如果準則包含呼叫端無法存取的受保護欄位,這個呼叫不會擲回例外狀況。 相反地,如果這些受保護欄位是輸出資料行集合的一部分,針對受保護欄位會傳回 null 值。

以下進一步說明受保護欄位的擷取多個行為。

當受保護屬性是在資料行集合中

如果呼叫端 (或模擬使用者) 沒有受保護欄位 (包含在資料行集合中) 的讀取權限,傳回值為 null。 您無法辨別因沒有資料或因存取權限不足所致傳回值 null 之間的差異。

當受保護屬性是在篩選條件中

如果呼叫端 (或模擬使用者) 沒有受保護欄位 (包含在篩選準則中) 的存取權限,在評估篩選時欄位值會替代為 null

在下表中,呼叫端可存取所有屬性,但標示星號 (*) 的屬性除外。

記錄數目

名稱屬性的值

描述屬性的值

可連絡的屬性的值

1

A

AAA

TRUE

2

B

BBB

FALSE

3

C

CCC

TRUE*

4

D

DDD

Null

5*

E*

EEE*

Null*

當篩選是 CanbeContacted == True,只傳回記錄一。

當篩選是 IsNULL (CanbeContacted),則傳回記錄 3 及 4。 因為記錄 3 對使用者完全隱藏,在條件評估時,被視為 null 且對 ISNull 評估為 True

在受保護屬性上彙總時

受保護屬性替代為 null 值,因此適用一般 SQL 彙總行為。

在受保護屬性上群組時

如果呼叫端 (或模擬使用者) 沒有屬性 (用於群組) 的存取權限,值視為 null,而且結果與所有 null 值群組。

在下列範例中,呼叫端可存取一些屬性。粗體指出沒有屬性的存取權,也標示 *。斜體表示呼叫端沒有讀取權限的記錄,也標示 **。

名稱

描述

訂單數目

縣市

A

AAA

1

WA

B

BBB

4

WA

C

CCC

4

CA

D**

DDD**

3**

MA**

E

EEE

0

CA

F

FFF

0

WA*

G

GGG

2

CA*

Select State, Total(orders) Group by (STATE) 產生下列結果:

WA–5

CA–4

null–2

在受保護屬性上排序時

如果呼叫端 (或模擬使用者) 沒有受保護欄位 (依據條件包含在訂單中) 的存取權,值視為 null

在下列範例中,呼叫端可存取純文字的屬性。粗體指出沒有屬性的存取權,也標示星號 (*)。斜體表示呼叫端沒有讀取權限的記錄,也標示 **。

名稱

描述

CanbeContacted

A

AAA

TRUE

B

BBB

FALSE

C

CCC*

TRUE*

D

DDD

Null

E

EEE*

Null*

F**

FFF**

TRUE**

G

Null

TRUE

Select Name order by Description ascending 產生下列結果:

傳回 {G,E,C},A, B, D,。

受保護欄位對 create 或 update 如何運作?

程式設計師可使用 CreateUpdate 方法建置與受保護欄位互動的用戶端。 當您呼叫 CreateUpdate 方法時,傳遞受保護欄位的資料,而呼叫端的權限不足,則會擲回例外狀況。

共用記錄時,受保護欄位如何運作?

具有記錄中受保護欄位之存取權的使用者可以和其他使用者或團隊共用。 使用者只能授與他們擁有的記錄存取權。 例如,若要共用記錄並授與更新權限,使用者必須具有更新權限。

可以與安全性主體 (使用者或團隊) 共用具有讀取和/或更新之特定記錄上的受保護欄位。  共用記錄的使用者或團隊成員現在具有該類型受保護欄位的存取權,但在該筆特定記錄上的共用受保護欄位,即使共用使用者或團隊成員沒有授與存取權的欄位安全性設定檔。

受保護欄位對篩選過的檢視如何運作?

系統管理員保護應用程式中數個欄位的存取,且想要欄位不用於報表。 這允許對所有使用者維護同一組報表。 如果呼叫的使用者沒有欄位的授權,篩選過的檢視不會傳回受保護欄位的資料。 當沒有欄位安全性適用於任何檢視表屬性時,篩選過的檢視會傳回完整資料。

受保護欄位對離線同步處理如何運作?

如果使用 Microsoft Dynamics 365 for Microsoft Office Outlook with Offline Access,只有您擁有存取權的受保護欄位值會複寫至離線資料庫。 如果無法存取資料,則無法離線儲存。

另請參閱

影片:Microsoft Dynamics CRM 2015 的欄位層級安全性
Microsoft Dynamics 365 的安全性模型
角色型安全性如何用於控制 Microsoft Dynamics 365 實體的存取
記錄型安全性如何用於控制 Microsoft Dynamics 365 記錄的存取

Microsoft Dynamics 365

© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權