升级到 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 运行类似于以下内容的 SQL 查询_MSCRM数据库:

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

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