我是微软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. 全面认识 RUST -- 掌控未来的雷电

    文章目录 RUST 简介 如何衡量语言的好坏? 静态语言 编译器 语言定位 代表性项目 Hello World RUST 前景 RUST 简介 Rust 是一种兼顾内存安全.高并发和稳定运行的编程语言 ...

  2. iOS库的种类

    一.什么是库? 库是共享程序代码的方式,一般分为静态库和动态库. 二.静态库与动态库的区别? 静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝. 动态库:链接时不复制,程序运行时由系 ...

  3. go实践之apiserver搭建

    文章目录 go实践之apiserver搭建 1.配置文件读取 2.数据连接 3.日志初始化 4.server初始化 5.接口编写 go实践之apiserver搭建 本文主要记录下博主用gin搭建app ...

  4. Java修炼——手写服务器项目

    项目工程总览: 1.Dispatcher类(一个请求与响应就是一个Dispatcher) package com.bjsxt.server; import java.io.IOException; i ...

  5. HDU3710 Battle over Cities(最小生成树+树链剖分+倍增+线段树)

    Battle over Cities Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Othe ...

  6. 洛谷 P2254 [NOI2005]瑰丽华尔兹(单调栈优化DP)

    题目描述 不妨认为舞厅是一个N行M列的矩阵,矩阵中的某些方格上堆放了一些家具,其他的则是空地.钢琴可以在空地上滑动,但不能撞上家具或滑出舞厅,否则会损坏钢琴和家具,引来难缠的船长.每个时刻,钢琴都会随 ...

  7. [golang] nats的消息传递模型介绍

    目录 nats的消息传递模型 What is NATS 主题式消息(Subject-Based Messaging) 发布订阅(Publish-Subscribe) 请求应答(Request-Repl ...

  8. 【MySQL】ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

    问题现象: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 拒绝访问root用户 ...

  9. Orleans[NET Core 3.1] 学习笔记(二)Hello World

    项目结构 开始Orleans之前,我们都知道Orleans主要可以分为俩部分,Host和Client. 所以我们可以创建如下的项目结构: IGrain 一个包含Grain接口的库(.NET Stand ...

  10. Orleans 初接触(二) 测试用例

    [返回导航] 在简单了解了Orleans 之后我们可以通过几个例子去加深印象 一.快速入门示例 这个例子也是跟着<Microsoft Orleans 之 入门指南>(https://www ...