zoukankan      html  css  js  c++  java
  • 探索Dynamics 365 用户能够登录使用的最小权限需求

    我是微软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】这个权限,值得注意的是这个权限是个杂项权限,没有与某个实体关联。

  • 相关阅读:
    circle
    pq
    graph
    matrix
    计数(count)
    想象一下(imagine)
    出租车(taxi)
    字符串函数 (strfun)
    Sabota?
    3973: seq
  • 原文地址:https://www.cnblogs.com/luoyong0201/p/Dynamics_365_Customer_Engagement_Minimum_Role_Privilege.html
Copyright © 2011-2022 走看看