我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),欢迎关注我的微信公众号 MSFTDynamics365erLuoYong ,回复374或者20191104可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!

我们知道,一个Dynamics 365用户至少要授予一个角色才有可能登录Dynamics 365,那么这个角色至少要有哪些权限呢?我这里使用的本地部署版本是Microsoft Dynamics 365,版本 1612 (9.0.7.8) (DB 9.0.7.8) (本地) 来验证。但是官方文档推荐的做法是克隆一个现有角色修改来适配,本文只是一个探索,不要用于生产项目。

如果是使用以Common Data Service为基础的model-driven app,可以参考 Configure environment security 中的 Minimum privileges to run app 章节,下载一个名称为 MinprivilegeSecRole 的非托管解决方案,下载网址是 Common Data Service minimum privilege security role ,导入系统后会有一个名称为 min priv apps use 的角色,可以根据这个来克隆出定制的角色。

我在根业务部门上新建一个角色,名称为 Mini Role

我先只授予该角色对用户(systemuser)实体的读取权限,然后将这个角色授予我新建的一个用户,该用户只有这个角色。

然后我用这个用户去登录Dynamics 365,应该会报错,如下图:

按F12,可以看到部分请求出错,如下图:

具体查看这两个请求的返回,可以知道缺少权限prvReadSystemForm 和 prvReadUserEntityUISettings 。如何找到对应的权限呢?官方有个文档 Security role UI to privilege mapping 。从这个文档可以知道,prvReadSystemForm 对应的是【自定义】Tab中【系统窗体】实体的读权限。

prvReadUserEntityUISettings 权限对应的是【核心记录】Tab中【用户实体UI设置】的读取权限,实际上还应该给予角色对这个实体的创建、修改权限(prvCreateUserEntityUISettings 和prvWriteUserEntityUISettings)。

因为首页要打开仪表盘,也报错,/_common/error/errorhandler.aspx?BackUri=https%3a%2f%2fdemo.luoyong.me%2fmain.aspx&ErrorCode=0x80040220&Parm0=%0d%0a%0d%0a%e9%94%99%e8%af%af%e8%af%a6%e7%bb%86%e4%bf%a1%e6%81%af%3a%20Principal%20user%20%28Id%3dc7345a98-11ff-e911-a85b-000d3a6f652b%2c%20type%3d8%29%20is%20missing%20prvReadQuery%20privilege%20%28Id%3d902d70d3-2ff8-4d93-92f9-8efdcf889af8%29&RequestUri=%2fworkplace%2fhome_dashboards.aspx%3fsitemappath%3dSFA%257cMyWork%257cnav_dashboards%26pagemode%3diframe&user_lcid=2052 ,这个翻译过来就是 错误详细信息: Principal user (Id=c7345a98-11ff-e911-a85b-000d3a6f652b, type=8) is missing prvReadQuery privilege (Id=902d70d3-2ff8-4d93-92f9-8efdcf889af8)&RequestUri=/workplace/home_dashboards.aspx?sitemappath=SFA%7cMyWork%7cnav_dashboards&pagemode=iframe&user_lcid=2052" .

prvReadQuery 对应【自定义】Tab中的【查看】的读取权限。

如果要看到活动,请授予【核心记录】tab中【活动】实体的读取权限。

一般应该授予用户能查看及更改自己的选项,需要则需要授予【业务管理】Tab中【用户设置】的读和写权限(prvReadUserSettings 和 ):

还需要授予【自定义】中【Web资源】、【关系】、【字段】、【实体】、【实体键】、【选项集】的读取权限。

还需要授予【自定义】Tab中【流程】实体的读取权限。

若是提示缺少 prvReadComplexControl 权限,需要授予【自定义】Tab中【流程配置】的读权限。

因为表单默认有公告(Post),所以最好还授予对【核心记录】这个Tab中【公告】实体的读取权限,因为有两个公告,这里用到的是没有写权限可以设置的那个【公告】实体。

如果要可以使用如下所示的公共图表:

需要授予角色对【自定义】Tab中【系统图表】的读取权限。

一般还应该授予用户prvReadTraceLog权限,对应于【核心记录】Tab的【跟踪】实体的读取权限。

要让公告实体好用,还需要对【核心记录】Tab中【关注】实体(postfollow)的读取权限。【自定义】Tab中【筛选器】实体的读取权限(prvReadmsdyn_wallsavedqueryusersettings),【留言板视图】实体的读取权限,【核心记录】中【操作卡】实体的读取权限,

如果用户需要自己能创建私有视图,则需要【核心记录】Tab中【已保存的视图】实体(UserQuery) 有读和创建权限。

如果要能自己创建和读取【用户图表】实体(UserQueryVisualization) ,则需要对【核心记录】Tab中【用户图表】实体有读和创建权限。

若是需要对【用户仪表板】实体(UserForm),则需要对【核心记录】Tab中【用户仪表板】实体有读和创建权限。

若用户需要有导出数据到Excel的权限,就需要授予【业务管理】Tab中【导出至Excel】这个权限,值得注意的是这个权限是个杂项权限,没有与某个实体关联。

探索Dynamics 365 用户能够登录使用的最小权限需求的更多相关文章

  1. Dynamics 365需要的最小的权限用来更改用户的业务部门和角色

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  2. 轻量级应用程序Dynamics 365 App for Outlook介绍

    摘要: 本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复273或者20180625可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyon ...

  3. asp.net mvc 自定义全局过滤器 验证用户是否登录

    一般具有用户模块的系统都需要对用户是否登录进行验证,如果用户登录了就可以继续操作,否则退回用户的登录页面 对于这样的需求我们可以通过自定义一个独立的方法来完成验证的操作,但是这样代码的重复率就大大提高 ...

  4. AD 域中给AD 用加登录本地计算的权限

    说明:一般新添加的AD 用户没有登录计算机电脑的权限,如果需要添加登录权限. 步骤:1.打开Active Directory 用户和计算机 步骤:2.打开某个用户 步骤3; 如下图.

  5. 如何让用户登录Dynamics 365 Customer Engagement后自动登录到Unified Interface App?

    微软动态CRM专家罗勇 ,回复324或者20190422可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! Dynamics 365 Customer Engagement ...

  6. 自定义工作流活动报错:您无法登陆系统。原因可能是您的用户记录或您所属的业务部门在Microsoft Dynamics 365中已被禁用。

    本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复265或者20170926可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...

  7. Dynamics 365 Online用户密码三问及其解答

    本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复264或者20170903可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...

  8. Dynamics 365工作流报错:您无法登陆系统。原因可能是您的用户记录或您所属的业务部门在Microsoft Dynamics 365中已被禁用。

    本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复265或者20170926可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...

  9. 做了面向互联网部署的Dynamics 365 CE更改AD FS的登录页面

    摘要: 微软动态CRM专家罗勇 ,回复306或者20190307可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 默认情况下A ...

随机推荐

  1. 使用Python为中秋节绘制一块美味的月饼

    每逢佳节- 对于在外的游子,每逢佳节倍思亲.而对于996ICU的苦逼程序猿们,最期待的莫过于各种节假日能把自己丢在床上好好休息一下了.这几天各公司都陆续开始发中秋礼品了.朋友圈各种秀高颜值的月饼,所以 ...

  2. SpringBoot-HelloWorld(三)

    HelloWorld 学一个新的框架,不写helloworld是没有灵魂的,嘿嘿 准备工作 我们将学习如何快速的创建一个Spring Boot应用,并且实现一个简单的Http请求处理.通过这个例子对S ...

  3. 快速搭建 Serverless 在线图片处理应用

    作者:倚贤 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute):函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传.函数 ...

  4. Spring Security OAuth2 Demo —— 隐式授权模式(Implicit)

    本文可以转载,但请注明出处https://www.cnblogs.com/hellxz/p/oauth2_impilit_pattern.html 写在前面 在文章OAuth 2.0 概念及授权流程梳 ...

  5. openstack网络(一)

    什么是OpenStack Networking OpenStack网络的特性 交换机 路由器 负载均衡 防火墙 虚拟专用网络 网络功能虚拟化 网络类型 管理网络 API 网络 外部网络 访客网络 在一 ...

  6. CodeForces985C-Liebig's Barrels

    描述 题解 二分加贪心.先确保前 ii 桶可以分配为相邻的 kk 个,并且保证 a[i∗k+j]−a[1]<=la[i∗k+j]−a[1]<=l,这样就能保证所有的差不大于 ll,如果不能 ...

  7. python 列表越界

    data = [1,8,5,9,7,4,5] print(data[10:]) #返回空 print(data[10]) #出错,越界

  8. 初次接触tensorflow

    要确保已经明白神经网络和卷积神经网络的原理.如果不明白,先学习参考资料1.tensorflow中有很多api,可以分成2大类.1类是比较低层的api(tf.train),叫TensorFlow Cor ...

  9. JS页面跳转和打开新窗口方式

    1.window.location.href=URL : 在本窗体打开一个新的页面,也是最常用的一种方法: 2.window.open(URL)  :  在一个新的窗口打开一个新的页面: 3.loca ...

  10. 28. 实现strStr() (双指针)

    实现 strStr() 函数. 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始).如果不存在,则返 ...