在 Microsoft Dynamics 365 中,如何将字段安全用于控制访问字段值
发布日期: 2017年1月
适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online
在 Microsoft Dynamics 365 和 Microsoft Dynamics 365 (online) 中,您使用字段级安全性将高业务影响字段限制为仅特定用户和团队可以访问。 例如,可以使用此安全性仅允许特定用户读取或更新客户的信用得分。 对于本版本,字段级安全可适用于自定义字段和自带 (OOB) 字段。
以下步骤说明如何限制对字段的访问:
为属性启用字段安全性
创建字段级安全配置文件
将用户或团队与该配置文件关联
将特定字段权限(例如创建、更新或读取特定属性)添加到配置文件。
下图显示基于角色的安全性、基于记录的安全性和基于字段的安全性之间的交互。
基于角色的安全性使您能够查看特定实体类型,基于记录的安全性使您能够查看个人记录,基于字段的安全性使您能够查看特定字段。
视频:Microsoft Dynamics CRM 2015 中的字段级安全性
常见问题
可以保护哪些属性?
哪种安全角色允许您查看受保护字段?
受保护字段如何处理 Retrieve 和 RetrieveMultiple?
受保护字段如何应对 create 或 update?
共享记录时,受保护字段如何应对?
受保护字段如何处理筛选视图?
受保护字段如何处理脱机同步?
可以保护哪些属性?
若要查看可保护哪些属性,您可以查询实体元数据的以下属性:
可以保护上千属性,那么查找此信息有两种简易方法。若要查看您的组织的实体元数据,请安装浏览组织的元数据中描述的元数据浏览器解决方案。 您还可以在一个名为 EntityMetadata.xlsx 的 Excel 文件中查看非自定义组织的元数据,该文件包含在 SDK 下载的顶级文件夹中。
适用于特定属性数据类型的其他规则:
创建和更新操作可以保护布尔属性,但是不能读取。
当默认值未指明时,创建、更新和读取时可以保护选项集属性。
哪种安全角色允许您查看受保护字段?
“系统管理员”字段安全性配置文件提供对 Microsoft Dynamics 365 中所有受保护字段的完全访问权限。 默认情况下,具有系统管理员安全角色的所有用户都拥有该配置文件。 该配置文件是由系统管理的,不能对其进行更新或删除。
受保护字段如何处理 Retrieve 和 RetrieveMultiple?
当您调用 Retrieve 或 RetrieveMultiple 方法或消息时,Microsoft Dynamics 365 会评估调用者和模拟用户是否拥有对每个检索记录(这是常规安全流程)和每个受保护字段的访问权限。 如果条件包含调用者没有访问权限的受保护字段,则调用不会引发异常。 如果受保护字段是输出列集的一部分,则会针对其返回空值。
以下描述了更多有关检索多个受保护字段行为的信息。
当受保护属性在列集中时
如果调用者(或模拟用户)没有对包含在列集中的受保护字段的读访问权限,则会返回 空值。 您无法知道返回的 空值是因为没有数据还是因为访问权限不足造成的。
当受保护属性在筛选条件中时
如果调用者(或模拟用户)没有筛选条件中包含的受保护字段的访问权限,则在筛选评估期间,会使用 空替代该字段值。
在下表中,调用者具有所有属性(使用星号 (*) 表示的除外)的访问权限。
记录数 |
名称属性的值 |
说明属性的值 |
可以联系属性的值 |
---|---|---|---|
1 |
A |
AAA |
是 |
2 |
B |
BBB |
否 |
3 |
C |
CCC |
是* |
4 |
D |
DDD |
Null |
5* |
E* |
EEE* |
Null* |
当筛选器为 CanbeContacted == True 时,只返回第一条记录。
当筛选器为 IsNULL (CanbeContacted) 时,返回第 3 条和第 4 条记录。 因为用户看不到第三条记录,在条件评估期间,它会被视为 空,会被评估为针对ISNull的True。
对受保护的属性进行聚合时
受保护的值会由一个 null 值替代,这样就可以正常进行 SQL 聚合行为。
当对受保护的属性进行分组时
如果调用者(或模拟用户)没有要组合的属性的访问权限,则该值会被视为 空,会将其结果与所有空值组合在一起。
在以下示例中,调用者具有某些属性的访问权限。粗体表示不可以访问属性,使用 * 表示。斜体表示调用者没有读取访问权限,使用 ** 表示。
客户 |
说明 |
订单数 |
省/直辖市/自治区 |
---|---|---|---|
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
空–2
对受保护的属性进行排序时
如果调用者(或模拟用户)没有对按条件排序中包括的受保护字段的访问权限,则该值会被视为 空。
在以下示例中,调用者具有纯文本格式的属性的访问权限。粗体表示不可以访问属性,使用星号 (*) 表示。斜体表示调用者没有读取访问权限,使用 ** 表示。
客户 |
说明 |
CanbeContacted |
---|---|---|
A |
AAA |
是 |
B |
BBB |
否 |
C |
CCC* |
是* |
D |
DDD |
Null |
E |
EEE* |
Null* |
F** |
FFF** |
是** |
G |
Null |
是 |
Select Name order by Description ascending的结果如下:
将返回 {G,E,C},A, B, D。
受保护字段如何应对 create 或 update?
程序员可能会构建一个客户端,该客户端使用 Create 和 Update 方法与受保护字段交互。 当您调用 Create 或 Update 方法为受保护字段传递数据,而调用者没有足够权限时,会引发异常。
共享记录时,受保护字段如何应对?
具有对某个记录中的受保护字段的访问权限的用户可以与其他用户或团队共享该记录。 用户只能提供他们具有的记录访问权限。 例如,若要共享记录和授予“更新”权限,则该用户必须具有更新权限。
您可以与安全主体(用户或团队)共享特定记录中受保护字段的“读取”和/或“更新”权限。 即使被共享的用户或团队成员没有为其提供访问权限的字段安全性配置文件,该用户或团队成员也会具有且只具有对该特定记录上的共享的受保护字段的类型的访问权限。
受保护字段如何处理筛选视图?
管理员会在应用程序中保护多个字段的访问权限,希望这些字段在报表中不可用。 这样就可以为所有用户保留相同的报表集。 如果调用用户没有这些字段的授权,筛选视图不会返回受保护字段的数据。 如果没有对任何视图属性应用字段安全性,筛选视图就会返回完整数据。
受保护字段如何处理脱机同步?
如果您正在使用 带脱机访问功能的 Microsoft Dynamics 365 for Microsoft Office Outlook,则仅可以将您具有访问权限的字段值复制到脱机数据库。 如果没有该数据的访问权限,则不会进行脱机保存。
另请参阅
视频:Microsoft Dynamics CRM 2015 中的字段级安全性
Microsoft Dynamics 365 的安全模型
如何在 Microsoft Dynamics 365 中使用基于角色的安全性控制对实体的访问权限
如何使用基于记录的安全性来控制对 Microsoft Dynamics 365 中记录的访问
Microsoft Dynamics 365
© 2017 Microsoft。 保留所有权利。 版权