Se muestra el mensaje de error al intentar configurar Microsoft Dynamics CRM para Office Outlook

En este artículo se proporciona una solución a un error que se produce al intentar configurar Microsoft Dynamics CRM para Office Outlook y tiene un rol de seguridad personalizado.

Se aplica a: Microsoft Dynamics CRM 2013, Microsoft Dynamics CRM 2015
Número de KB original: 2899051

Síntomas

Al intentar configurar Microsoft Dynamics CRM para Office Outlook y tiene un rol de seguridad personalizado, recibe el siguiente error:

No tiene permiso para acceder a estos registros. Póngase en contacto con el administrador de Microsoft Dynamics CRM.

Si el rol de seguridad se asigna mediante la pertenencia al equipo en lugar de asociarse directamente al usuario, recibirá el siguiente error:

No tiene suficientes privilegios para acceder al objeto Microsoft Dynamics CRM ni para realizar la operación solicitada.

Causa

Al rol de seguridad de Microsoft Dynamics CRM le faltan privilegios suficientes para una entidad específica. Que podría ser la entidad Mailbox o algún otro privilegio de entidad necesario para configurar correctamente CRM para Outlook.

Resolución

En primer lugar, identifique qué privilegio falta. Puede expandir la sección Detalles en el mensaje de error que proporciona detalles adicionales, incluidos los privilegios que faltan. Como se muestra en la sección Más información a continuación, los detalles pueden incluir un mensaje, como la falta de privilegios prvReadMailbox, que indicaría que el usuario necesita acceso de lectura para la entidad Mailbox. Los pasos de ejemplo siguientes son para la entidad Mailbox, pero puede seguir los mismos pasos reemplazando la entidad Mailbox por el privilegio que se menciona en la sección de detalles del error.

Actualice el rol de seguridad para incluir el acceso de lectura de nivel de usuario a la entidad Mailbox. Si el rol se asigna a través de la pertenencia al equipo, el rol de seguridad necesitará un nivel de unidad de negocio o un acceso superior.

  1. Inicie sesión en la aplicación web Microsoft Dynamics CRM como usuario con el rol Administrador del sistema.
  2. En la barra de navegación, seleccione Microsoft Dynamics CRM y, a continuación, seleccione Configuración.
  3. En la barra de navegación, seleccione Configuración y, después, Administración. Si usa Microsoft Dynamics CRM 2015 o posterior, seleccione Seguridad en lugar de Administración.
  4. Seleccione Roles de seguridad.
  5. Abra el rol de seguridad concedido al usuario que cumple este problema.
  6. Seleccione la pestaña Administración de negocios . Si el privilegio que falta es para una entidad diferente, el privilegio puede encontrarse en una de las otras pestañas.
  7. Seleccione el círculo para conceder acceso de lectura de nivel de usuario a la entidad Mailbox. Este privilegio se puede encontrar mediante la búsqueda de la entidad Mailbox y la intersección con el privilegio Lectura.
  8. Seleccione Guardar y cerrar.
  9. Vuelva a configurar Microsoft Dynamics CRM para Office Outlook.

Si sigue experimentando problemas, conecte CRM para Outlook a su organización de CRM Online, Soporte técnico de Microsoft y Recovery Assistant están disponibles para ayudar a diagnosticar el problema.

Más información

El archivo de registro contiene el siguiente error con la referencia de usuario principal que coincide con systemUserId:

09:17:01| Error| Excepción: al usuario principal (Id=<ID>, type=8) le falta el privilegio prvReadMailbox (Id=<ID>)
at Microsoft.Crm.Application.Platform.ServiceCommands.PlatformCommand.XrmExecuteInternal()
at Microsoft.Crm.Application.Platform.ServiceCommands.RetrieveCommand.Execute()
at Microsoft.Crm.Caching.MailboxWebServiceCacheLoader.LoadCacheData(Guid key, IOrganizationContext context)
at Microsoft.Crm.Caching.ClientCacheLoaderProxy'2.LoadCacheData(TKey key, IOrganizationContext context)
at Microsoft.Crm.Caching.CrmMultiOrgCacheBase'2.CreateEntry(TKey key, IOrganizationContext context)
at Microsoft.Crm.Caching.CrmMultiOrgCacheBase'2.LookupEntry(TKey key, IOrganizationContext context)
en Microsoft.Crm.Application.Outlook.Config. OutlookConfigurator.InitializeMapiStoreForFirstTime()
en Microsoft.Crm.Application.Outlook.Config. OutlookConfigurator.Configure(IProgressEventHandler progressEventHandler)
en Microsoft.Crm.Application.Outlook.Config. ConfigEngine.Configure(Object stateInfo)

Si el usuario es miembro de un equipo que solo tiene acceso de lectura en el nivel de usuario a la entidad Mailbox y no tiene un rol de seguridad asignado directamente a su registro de usuario con acceso de lectura de nivel de usuario a la entidad Mailbox, el archivo de registro contiene el siguiente error con el identificador de propietario y la referencia de usuario de llamada que coincidan con systemUserId:

17:16:47| Error| Excepción: se produjo un error en SecLib::AccessCheckEx. Devuelve hr = -2147187962, ObjectID: <ID>, OwnerId: <ID>, OwnerIdType: 8 y CallingUser: <ID>. ObjectTypeCode: 9606, objectBusinessUnitId: <ID>, AccessRights: ReadAccess
Seguimiento de la pila de servidores:
at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Excepción que se vuelve a producir en [0]: en System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Tipo Int32)
at Microsoft.Xrm.Sdk.IOrganizationService.Retrieve(String entityName, Guid id, ColumnSet columnSet)
en Microsoft.Xrm.Sdk.WebServiceClient.OrganizationWebProxyClient.<>c__DisplayClass4.<RetrieveCore>b__3()
at Microsoft.Xrm.Sdk.WebServiceClient.WebProxyClient'1.ExecuteAction[TResult](func'1 action)
at Microsoft.Xrm.Sdk.WebServiceClient.OrganizationWebProxyClient.RetrieveCore(String entityName, Guid id, ColumnSet columnSet)
at Microsoft.Xrm.Sdk.WebServiceClient.OrganizationWebProxyClient.Retrieve(String entityName, Guid id, ColumnSet columnSet)
at Microsoft.Crm.Application.SMWrappers.ClientOrganizationServiceProxyBase.Retrieve(String entityName, Guid id, ColumnSet columnSet)
en Microsoft.Crm.Application.Outlook.Config. ServerInfo.LoadMailboxInfo(IClientAuthProvider'1 orgAuthProvider)
en Microsoft.Crm.Application.Outlook.Config. ServerInfo.LoadUserInfo(IClientAuthProvider'1 orgAuthProvider)
en Microsoft.Crm.Application.Outlook.Config. ServerInfo.Initialize(Uri discoveryUri, OrganizationDetail selectedOrg, String displayName, Boolean isPrimary, IClientAuthProvider'1 authenticatedProvider)
en Microsoft.Crm.Application.Outlook.Config. ServerForm.LoadDataToServerInfo()
en Microsoft.Crm.Application.Outlook.Config. ServerForm.<InitializeBackgroundWorkers>b__3(Object sender, DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)