在本期将为大家介绍安全性中最重要的概念:安全角色。
什么是安全角色
安全角色是 Datavers 中重要的安全概念,用来定义不同用户如何操作不同类型的记录。每个用户可以拥有多个安全角色,但是如果用户没有安全角色他就不能访问系统数据,所以用户最少也要有一个安全角色。
另外安全角色是建立在业务部门中的,默认所有的安全角色都是在默认的根业务部门中创建的,在根业务部门创建的安全角色会复制到所有的子业务部门中。
尽量所有安全角色都在根业务部门中创建,因为只有根业务部门中的安全角色可以被添加到解决方案从而导出到其他环境中。
根据分配给用户的安全角色,以及用户所属业务部门,可以很方便的限制用户能够处理的数据范围。
除此之外还可以将安全角色分配给团队,如果用户所在的团队有更高的权限,这个权限会覆盖掉用户本身被分配的安全角色,也就是说在 Dataverse 中,用户的权限是根据他所被分配的最高权限来定义的,不论这个安全角色是分配给用户还是团队。
默认安全角色
在 Dataverse 中提供了一些预定义的默认安全角色,这些角色定义了常用的一些用户任务,并且这些用户的访问权限都是微软按照最佳实践配置好的,(安全性最佳实践:提供对使用应用来讲,最少的数据访问权限,也就是说如果应用场景只需要访问学生表,就不要给其他表的权限)这些默认安全角色都是在根业务部门中创建的。
接下来我会依次给大家介绍下这些默认的安全角色。
没有数据库时的默认安全角色
首先有一点需要注意,就是有个特殊情况是 Dataverse 中没有创建数据库,这个时候安全角色只有2个。
Environment Admin :环境管理员,环境的最高权限,可以在环境上执行所有操作。
包括给其他用户分配环境管理员或环境制造者的权限。
添加数据库的权限
管理环境中的所有资源
设置 DLP 数据防丢失策略
Environment Maker:环境制造者,可以在环境中创建新应用,比如画布应用,流程等等。并可以将制作完成的应用分享给他人。
创建数据库后的默认安全角色
当我们在环境中创建 Dataverse 数据库后,原有的环境管理员角色会被自动分配为系统管理员角色,同时会出现多个预定义的默认角色。
Environment Maker :环境制造者,和没有的 Dataverse 数据库时的权限一样,重点在于该角色无法访问数据。
System Administrator :系统管理员,具有管理该环境的所有权限,包括创建,修改和给用分配安全角色,同时可以查看环境中的所有数据。(环境中最少需要有一个系统管理员)
System Customizer :系统定制员,可以定制该环境的所有内容,包括在数据库中创建表,但是他们只能查看由自己创建的表数据。
Basic User:基本用户,可以在环境中使用应用,并对他自己所拥有的标准表记录执行常见操作(增删改)。
Service Reader:服务阅读者,对环境中的所有数据具有读取权限,一般适用于给后端服务使用,方便读取所有数据。
Service Writer:服务写入者,对环境中的所有数据具有读取,创建,写入的权限。当后端服务需要对数据进行读写时,可以使用该角色。
Delegate:代理,代表其他用户执行操作,通常用来模拟另外一个用户来执行操作。
Support User:支持用户,通常用来让支持人员对环境配置问题进行诊断,无法访问核心数据
向用户添加默认安全角色
进入管理中心的环境设置界面-展开用户权限,点击进入安全角色。
![](https://forum.power-platform.cn/assets/files/2022-03-25/1648193724-589415-94b3321d75559dabfc7ce0476153bf17.png)
这里我们可以看到当前业务部门下有哪些安全角色。
![](https://forum.power-platform.cn/assets/files/2022-03-25/1648193737-591418-0167dd4713775bc7f2eaa729cbd15bb0.png)
这时想要将用户添加到哪个角色,可以点击进入相应的角色后,点击添加人员,这时候可以输入用户的邮箱或者团队名,将用户或团队添加到该角色。(后面的章节会介绍团队,如果在搜索的时候找不到相应的人员,说明该用户没有被添加到环境里)
![](https://forum.power-platform.cn/assets/files/2022-03-25/1648193745-477611-0839880777c521a208009622a5c30000.png)
安全角色的详细说明
通过点击编辑,可以查看每个安全角色中具体的权限设置。
![](https://forum.power-platform.cn/assets/files/2022-03-25/1648193757-41341-9eadc9df3f57996954cb9e87382f0d35.png)
整个安全角色的配置分为
Details
Role Name : 安全角色名
Business Unit : 安全角色所在的业务部门
Member's privilege inheritance :
配置团队成员权限的继承方式, 默认的选择都是 Team privileges only 仅限团队权限,此时将安全角色分配给团队的话,团队成员在创建记录的时候该记录的所有者会记录为用户所在的团队,而不是用户本人。
但如果选择了 Ditrvy User access level and Team privileges ,此时将安全角色分配给团队的话,团队成员在创建记录的时候该记录的所有者可以为他们本人以及所属团队。
(关于记录的所有者会在后期介绍)
![](https://forum.power-platform.cn/assets/files/2022-03-25/1648193774-86323-f5000086b4c88e31f638e78454369c62.png)
Core Records
Sales
Service
Business Management
Service Management
Customization
Missing Entities
Business Process Flows
Custom Entities
后面几个选项都是配置针对不同类型记录的访问权限,所以这里就以 Core Records 为例,这里主要是配置核心记录的访问权限,在该页面可以配置核心记录的访问权限。
![](https://forum.power-platform.cn/assets/files/2022-03-25/1648193785-264823-dd11874bc58b94e8868a9f9523875d60.png)
Entity
表示当前区域中可配置的表,在核心记录中包括 Account ,Activity 等系统核心表数据。
针对每一个表在 Dataverse 中可以分别配置 8 种操作的权限,而每种操作又可以设置5种访问级别。
操作
Create : 在该表中创建记录的权限
Read : 读取该表中记录的权限
Write : 对该表进行写入的权限
Delete :对表中记录进行删除的权限
Append : 针对表中记录的追加权限
Append To : 针对表中记录的追加到权限
Assign : 针对表中记录的分配操作权限
Share : 对表中记录的共享权限
访问级别
在 Dataverse 中以彩色圆圈定义了5种不同的访问级别,访问级别定义了用户在针对记录执行操作时的权限深度。简单来说指的就是用户可以操作哪些记录,比如你指定了一个安全角色有删除记录的权限,那访问级别定义的就是他可以删除哪些记录。
None Selected :无,这个最好理解如果指定表的操作设置为 None Selected 表示该安全角色针对当前表没有相关操作的权限。
比如将 Account 的 Create 操作设置为 None Selected ,表示该安全角色无法创建 Account 记录。
User:用户,这个也是最常用的一种访问级别。如果设置为 User ,表示该安全角色针对当前表可以执行所有者为自己或自己所属团队以及其他用户共享给他的记录。
比如系统定制者这个角色,他就是将 Account 的所有操作都设置为 User 级别,表示只能操作用户自己的记录。能看到,修改或删除自己和团队创建的 Account,但是不能对其他团队或者业务部门中其他用户的记录进行操作。
通常如果作为一个用户级别的安全角色,就可以给他分配这个访问级别
![](https://forum.power-platform.cn/assets/files/2022-03-25/1648193810-916255-bab68f4f9f4a87ec724a14787fcc3f9b.png)
Business Unit :业务部门,可以操作自己所在业务部门中所有用户的相关记录。这个权限就比较大了,通常会分配给该部门的管理人员,经理之类的角色,不同用户最好不要分配。
Parent Child Business Units :父子业务部门,除了可以操作当前业务部门的相关记录外,还可以操作所属业务部门的所有子业务部门的相关记录,通常会将该权限分配给同时是多个业务部门的管理者。
Organization : 组织,可以操作组织里所有的记录,不管记录属于哪个业务部门,这相当于是最高权限了,通常是分配给整个组织的管理者,慎用。比如系统管理员,他对所有表的所有数据都有全部的操作权限,所以系统管理员可以说是整个 Dataverse 数据库中最大的权限了。
![](https://forum.power-platform.cn/assets/files/2022-03-25/1648193826-548619-18d52921fb625a298791ad6efd38efe8.png)
除了表以外还有一些系统功能,也是在安全角色中进行配置的,比如是否能查看之前提到的审计历史,是否可以批量删除出局等等。
![](https://forum.power-platform.cn/assets/files/2022-03-25/1648193835-196291-4fa28e58b029f4fe0830f16b2b9a269f.png)
在 Dataverse 中提供的默认角色最好不要更改,也不要删除。如果有更改的需要可以复制一份角色,在复制的角色中进行修改。
创建安全角色
从刚才编辑安全角色的页面中,我们就可以发现,如果我们想要从零开始创建一个新的安全角色的时候,起码要进行几百个配置,因为每个表都有8个操作的5种不同访问级别可以设置。所以通常来讲不会完全从零开始去创建安全角色,而是通过复制现有角色,然后在其基础上去根据需求进行修改,这样的话修改起来会方便很多。
![](https://forum.power-platform.cn/assets/files/2022-03-25/1648193845-750497-143be60c6e024865eaa7593bc9b5e688.png)
系统管理员角色
之前也提到过系统管理员在数据库里相当于最高权限了,所以这个角色比较特殊,首先我们是没办法编辑该角色的权限配置的,其次在 Dataverse 种可以给多个用户都分配系统管理员角色,也可以把多余的系统管理员都删除,但是最少要保留1个系统管理员的角色。