如何根据PrincipalObjectAccess中的“访问权限掩码”值了解用户具有哪些权限

时间:2012-10-04 07:54:22

标签: dynamics-crm-2011

我们需要使用SQL中PrincipalObjectAccess(POA)表中的AccessRightsMask列找出CRM 2011中特定实体有多少记录(行)具有写权限。

在CrmSdk中的AccessRights枚举器中,WriteAccess的掩码值为2,但是当我们在POA表上搜索值2时,没有找到此AccessRightsMask值的记录。

我们应该使用什么查询来返回用户或团队对该对象具有写入权限的行?

1 个答案:

答案 0 :(得分:2)

您几乎肯定不会找到许多主体只有写访问权限的对象,因为几乎总是需要读取访问权限以及其他一些东西。 你是把它当成面具不是吗?即不寻找值= 2但倒数第二位= 1? 您的查询想要像:

select foo from <POA table> where AccessRightsMask & 2 =2

据我所知,POA表仅记录了正常安全模型之外的访问权限,即已明确共享的记录,或者在重新父母化时级联权限的记录。根据安全角色,团队成员资格,相对于对象的委托人的BU等,可以即时计算“正常”访问权限。

我觉得有必要提出一个大问题 - “为什么你需要尝试获取这些信息,以及为什么采用这种方法?”