我是微软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. cf1119d Frets On Fire 前缀和+二分

    题目:http://codeforces.com/problemset/problem/1119/D 题意:给一个数n,给出n个数组的第一个数(a[0]=m,a[1]=m+1,a[2]=m+2,... ...

  2. python输出日志到文件(每天一个日志)

    import logging from logging.handlers import TimedRotatingFileHandler logger = logging.getLogger('sim ...

  3. Python 3 对象关系映射(ORM)

    ORM 对象关系映射 Object Relational Mapping 表 ---> 类 字段 ---> 属性 记录 ---> 对象 # mysql_client.py impor ...

  4. Fusion360_Generative Design 入门学习笔记

    2019.12.17更新 初次见到衍生式设计的时候感觉非常惊艳,现在觉得这个功能就是个弟弟,只能做一些中看不中用的东西.这个方法的理论基础是拓扑优化,想做research的同学可参阅"如何入 ...

  5. ES6,模块化

    遇到的问题: 在js文件中使用import,export的时候报错: 原因:因为NodeJS只支持部分ES6的语法,有些ES6语法还不支持,而import语法就是其中一个: 解决方法: 1.使用ES5 ...

  6. 什么是jsp(java server pages)

    JSP是一种运行在服务器端的脚本语言,是用来开发动态网页的技术,它是JAVA Web 程序开发的重要技术.本章介绍JSP技术的相关概念以及如何开发JSP程序,主要内容包括JSP技术简介.JSP的处理过 ...

  7. 4个点说清楚Java中synchronized和volatile的区别

    作者 : Hollis 回顾一下两个关键字:synchronized和volatile 1.Java语言为了解决并发编程中存在的原子性.可见性和有序性问题,提供了一系列和并发处理相关的关键字,比如sy ...

  8. SSH框架搭建详细图文教程

    转载请标明原文地址:http://www.cnblogs.com/zhangyukof/p/6762554.html 一.什么是SSH? SSH是JavaEE中三种框架(Struts+Spring+H ...

  9. hdu 6298 Maximum Multiple (简单数论)

    Maximum Multiple Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  10. mysql数据库实战之优酷项目

    管理员: 1.注册功能 客户端 1-1.选择每个功能之前都需要都需要需要连接上服务器,即需要一个socket对象,每个函数传一个client 1-2.密码在传递过程中不能是明文吧,需要加密,可选择ha ...