升级到 Microsoft Dynamics CRM 2011 后,登录用户没有相应的安全权限错误

本文提供了一个解决方法,用于解决由于登录用户没有查看这些记录或执行此错误的特定操作的适当安全权限而无法升级到 Microsoft Dynamics CRM 2011 的问题。

适用范围:Microsoft Dynamics CRM 2011
原始 KB 编号: 953962

症状

升级到 Microsoft Dynamics CRM 2011 后,用户在尝试在 Microsoft Dynamics CRM 中执行操作时可能会遇到以下错误:

登录用户没有查看这些记录或执行特定操作的适当安全权限。

如果启用了Microsoft Dynamics CRM平台跟踪,则平台跟踪包括以下错误信息:

MSCRM 错误报告:

--------------------------------------------------------------------------------------------------------
错误:服务器无法处理请求。
错误编号:0x80040220
错误消息:SecLib::CrmCheckPrivilege 失败。 返回的 hr = -2147220960:UserId: <ID> 和 PrivilegeId: <ID>

注意

在此示例中的信息中,UserId 值和 PrivilegeId 值是实际值的占位符。

原因

升级到 Microsoft Dynamics CRM 2011 时,不会自动向自定义安全角色授予对所有新功能的权限。 只有现装角色将被授予默认权限。

如果未向用户的角色授予执行操作所需的权限,则也可能会发生此问题。 如果满足以下条件之一,则可能会出现这种情况:

  • 角色是从头开始创建的。
  • 该角色是从标准角色复制的。 然后,该角色被大量编辑。

解决方案

若要解决此问题,请执行以下步骤。

注意

这些步骤要求获取Microsoft Dynamics CRM平台跟踪中的信息。

  1. 在Microsoft Dynamics CRM平台跟踪中显示的错误信息中,找到 PrivilegeId 值。

  2. 通过运行使用 PrivilegeId 值的 SQL 查询来确定缺少的权限。 例如,针对 OrganizationName_MSCRM 数据库运行类似于以下内容的 SQL 查询:

    select Name, * from PrivilegeBase where PrivilegeId = 'a8ecac53-09e8-4a13-b598-8d8c87bc3d33'
    
  3. 若要向用户授予缺少的权限,请执行以下步骤:

    1. 从 2011 Microsoft Dynamics CRM开始。
    2. 选择“设置”,在“设置”下选择“管理”,然后选择“安全角色”。
    3. 双击分配给用户的角色。
    4. 向用户的角色授予缺少的权限。 例如,若要向用户的角色授予 prvReadLead 权限,请选择“ 核心记录 ”选项卡,然后在“ 潜在顾客 ”行上选择相应的“读取”权限。
    5. 选择"保存并关闭"。