Un message d’erreur s’affiche lorsque vous essayez de configurer Microsoft Dynamics CRM pour Office Outlook

Cet article fournit une solution à une erreur qui se produit lorsque vous essayez de configurer Microsoft Dynamics CRM pour Office Outlook et que vous disposez d’un rôle de sécurité personnalisé.

S’applique à : Microsoft Dynamics CRM 2013, Microsoft Dynamics CRM 2015
Numéro de la base de connaissances d’origine : 2899051

Symptômes

Lorsque vous essayez de configurer Microsoft Dynamics CRM pour Office Outlook et que vous disposez d’un rôle de sécurité personnalisé, vous recevez l’erreur suivante :

Vous n’êtes pas autorisé à accéder à ces enregistrements. Contactez votre administrateur Microsoft Dynamics CRM.

Si le rôle de sécurité est attribué via l’appartenance à l’équipe au lieu d’être associé directement à l’utilisateur, vous recevez l’erreur suivante :

Vous ne disposez pas des privilèges suffisants pour accéder à l’objet Microsoft Dynamics CRM ou effectuer l’opération demandée.

Cause

Votre rôle de sécurité dans Microsoft Dynamics CRM ne dispose pas de privilèges suffisants pour une entité spécifique. Il peut s’agir de l’entité Boîte aux lettres ou d’un autre privilège d’entité requis pour configurer correctement CRM pour Outlook.

Résolution

Tout d’abord, identifiez le privilège manquant. Vous pouvez développer la section Détails dans le message d’erreur qui fournit des détails supplémentaires, notamment le privilège manquant. Comme indiqué dans la section Plus d’informations ci-dessous, les détails peuvent inclure un message tel que le privilège prvReadMailbox manquant qui indiquerait que l’utilisateur a besoin d’un accès en lecture pour l’entité Boîte aux lettres. Les exemples d’étapes ci-dessous concernent l’entité Mailbox, mais vous pouvez suivre les mêmes étapes en remplaçant l’entité Mailbox par le privilège mentionné dans la section détails de l’erreur.

Mettez à jour le rôle de sécurité pour inclure l’accès en lecture au niveau de l’utilisateur à l’entité Boîte aux lettres. Si le rôle est attribué par le biais de l’appartenance à l’équipe, le rôle de sécurité a besoin d’un accès au niveau de l’unité commerciale ou supérieur.

  1. Connectez-vous à l’application web Microsoft Dynamics CRM en tant qu’utilisateur avec le rôle Administrateur système.
  2. Dans la barre de navigation, sélectionnez Microsoft Dynamics CRM, puis paramètres.
  3. Dans la barre de navigation, sélectionnez Paramètres , puis Administration. Si vous utilisez Microsoft Dynamics CRM 2015 ou version ultérieure, sélectionnez Sécurité au lieu de Administration.
  4. Sélectionnez Rôles de sécurité.
  5. Ouvrez le rôle de sécurité accordé à l’utilisateur qui répond à ce problème.
  6. Sélectionnez l’onglet Gestion de l’entreprise . Si le privilège manquant concerne une autre entité, le privilège peut se trouver sous l’un des autres onglets.
  7. Sélectionnez le cercle pour accorder l’accès en lecture au niveau de l’utilisateur à l’entité Boîte aux lettres. Ce privilège peut être localisé en recherchant l’entité Boîte aux lettres et l’intersection avec le privilège Lecture.
  8. Sélectionnez Enregistrer et fermer.
  9. Configurez à nouveau Microsoft Dynamics CRM pour Office Outlook.

Si vous rencontrez toujours des problèmes, connectez CRM pour Outlook à votre organization CRM Online, Support Microsoft et l’Assistant Récupération est disponible pour vous aider à diagnostiquer le problème.

Informations supplémentaires

Le fichier journal contient l’erreur suivante avec la référence de l’utilisateur principal correspondant à votre SystemUserId :

09 :17 :01| Erreur | Exception : l’utilisateur principal (Id=<ID>, type=8) n’a pas le privilège prvReadMailbox (Id=<ID>)
sur Microsoft.Crm.Application.Platform.ServiceCommands.PlatformCommand.XrmExecuteInternal()
sur Microsoft.Crm.Application.Platform.ServiceCommands.RetrieveCommand.Execute()
sur Microsoft.Crm.Caching.MailboxWebServiceCacheLoader.LoadCacheData(Guid key, IOrganizationContext context)
sur Microsoft.Crm.Caching.ClientCacheLoaderProxy'2.LoadCacheData(TKey key, IOrganizationContext context)
sur Microsoft.Crm.Caching.CrmMultiOrgCacheBase'2.CreateEntry(TKey key, IOrganizationContext context)
sur Microsoft.Crm.Caching.CrmMultiOrgCacheBase'2.LookupEntry(TKey key, IOrganizationContext context)
Microsoft.Crm.Application.Outlook.Config. OutlookConfigurator.InitializeMapiStoreForFirstTime()
Microsoft.Crm.Application.Outlook.Config. OutlookConfigurator.Configure(IProgressEventHandler progressEventHandler)
Microsoft.Crm.Application.Outlook.Config. ConfigEngine.Configure(Object stateInfo)

Si l’utilisateur est membre d’une équipe qui dispose uniquement d’un accès en lecture au niveau utilisateur à l’entité Boîte aux lettres et qu’il n’a pas de rôle de sécurité attribué directement à son enregistrement utilisateur avec un accès en lecture au niveau utilisateur à l’entité Boîte aux lettres, le fichier journal contient l’erreur suivante avec l’ID de propriétaire et la référence utilisateur appelant correspondant à votre SystemUserId :

17 :16 :47| Erreur | Exception : SecLib ::AccessCheckEx a échoué. Hr = -2147187962, ObjectID : <ID>, OwnerId : <ID>, OwnerIdType : 8 et CallingUser : <ID>. ObjectTypeCode : 9606, objectBusinessUnitId : <ID>, AccessRights : ReadAccess
Trace de la pile du serveur :
sur System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
dans System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeSpan)
sur System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, opération ProxyOperationRuntime)
sur System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0] : at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
sur System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, type Int32)
sur Microsoft.Xrm.Sdk.IOrganizationService.Retrieve(String entityName, GUID ID, ColumnSet columnSet)
sur Microsoft.Xrm.Sdk.WebServiceClient.OrganizationWebProxyClient.<>c__DisplayClass4.<RetrieveCore>b__3()
sur Microsoft.Xrm.Sdk.WebServiceClient.WebProxyClient'1.ExecuteAction[TResult](Action Func'1)
sur Microsoft.Xrm.Sdk.WebServiceClient.OrganizationWebProxyClient.RetrieveCore(String entityName, GUID ID, ColumnSet columnSet)
sur Microsoft.Xrm.Sdk.WebServiceClient.OrganizationWebProxyClient.Retrieve(String entityName, GUID ID, ColumnSet columnSet)
sur Microsoft.Crm.Application.SMWrappers.ClientOrganizationServiceProxyBase.Retrieve(String entityName, Guid id, ColumnSet columnSet)
Microsoft.Crm.Application.Outlook.Config. ServerInfo.LoadMailboxInfo(IClientAuthProvider'1 orgAuthProvider)
Microsoft.Crm.Application.Outlook.Config. ServerInfo.LoadUserInfo(IClientAuthProvider'1 orgAuthProvider)
Microsoft.Crm.Application.Outlook.Config. ServerInfo.Initialize(Uri discoveryUri, OrganizationDetail selectedOrg, String displayName, Boolean isPrimary, IClientAuthProvider'1 authenticatedProvider)
Microsoft.Crm.Application.Outlook.Config. ServerForm.LoadDataToServerInfo()
Microsoft.Crm.Application.Outlook.Config. ServerForm.<InitializeBackgroundWorkers>b__3(Object sender, DoWorkEventArgs e)
sur System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
sur System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)