MSDTC ne parvient pas à authentifier mutuellement lorsque les ordinateurs n'exécutent pas dans le même domaine

Traductions disponibles Traductions disponibles
Numéro d'article: 827805 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Symptômes

Lorsque deux ordinateurs qui n'exécutent pas dans le même domaine utilisent MSDTC (Microsoft Distributed Transaction Coordinator) pour la communication et pour les transactions distribuées, l'authentification mutuelle peut échouer.

Lorsque vous exécutez une transaction distribuée sur un serveur lié dans Microsoft SQL Server 2000 sur un ordinateur qui exécute Microsoft Windows Server 2003 Enterprise Edition, message d'erreur suivant peut s'afficher :
Serveur: Msg 7391, niveau 16, état 1, ligne 2
Impossible d'effectuer l'opération car le fournisseur OLE DB 'SQLOLEDB' n'a pas pu démarrer une transaction distribuée. Fournisseur OLE/DB a retourné le message : nouvelle transaction ne peut pas s'inscrire dans le coordinateur de transactions spécifié.

Cause

Le proxy MSDTC peut ne pas correctement authentifié MSDTC lorsque les ordinateurs qui communiquent ne sont pas dans le même domaine.

Contournement

important Cette section, méthode ou tâche contient des étapes qui vous indiquent comment modifier le Registre. Toutefois, les problèmes graves peuvent se produire si vous modifiez le Registre de façon incorrecte. Par conséquent, assurez-vous que ces étapes avec soin. Pour ajouter une protection, sauvegarder le Registre avant de le modifier. Ensuite, vous pouvez restaurer le Registre si un problème se produit. Pour plus d'informations sauvegarder et restaurer le Registre, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
322756Comment faire pour sauvegarder et restaurer le Registre de Windows


Pour savoir comment modifier le Registre, consultez la rubrique d'aide "Modifier des clés et des valeurs" dans l'Éditeur du Registre (Regedit.exe) ou les rubriques d'aide "Ajouter et supprimer des informations dans le Registre" et "Modification des données de Registre" dans Regedt32.exe. Microsoft vous recommande de sauvegarder le Registre avant de le modifier.

Pour contourner ce problème, désactivez le RPC sécurité sur vos ordinateurs Windows Server 2003. Sécurité RPC est un DTC de nouvel fonctionnalité de Windows Server 2003. Lorsque vous désactivez la sécurité RPC, le DTC de niveau de sécurité de l'authentification pour les appels RPC revient à un niveau est disponible dans Microsoft Windows 2000 Server. Pour ce faire, procédez comme suit pour la valeur DWORD de la valeur de Registre TurnOffRpcSecurity à 1 :
  1. Démarrez l'Éditeur du Registre (Regedt32.exe).
  2. Recherchez la clé suivante dans le Registre :
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
  3. Dans le menu Edition , cliquez sur Ajouter valeur , puis ajoutez la valeur de Registre suivante :
    Réduire ce tableauAgrandir ce tableau
    Nom de valeurType de donnéesValeur
    TurnOffRpcSecurityREG_DWORD1
  4. Quittez l'Éditeur du Registre.
Remarque Après avoir installé Windows Server 2003 Service Pack 1, l'entrée de Registre TurnOffRpcSecurity est définie à 0. Vous devez rétablir la valeur à 1 en utilisant l'éditeur avant de redémarrer l'ordinateur.

Statut

Ce comportement est voulu par la conception même du produit.

Plus d'informations

Procédure pour reproduire le problème

  1. Assurez-vous que les deux ordinateurs exécutent Windows Server 2003.
  2. Installez SQL Server 2000 avec Service Pack 3 (SP3) sur les deux ordinateurs.
  3. Vérifiez que MSDTC est démarré sur les deux ordinateurs.
  4. Sur le premier ordinateur, démarrez l'Analyseur de requêtes SQL utilitaire (Isqlw.exe), puis connectez-vous à SQL Server local.
  5. Ajouter le second ordinateur en tant que le serveur lié. Pour ce faire, exécutez l'instruction Transact-SQL suivante dans l'Analyseur de requêtes SQL :
    EXEC sp_addlinkedserver  'remote_server',  N'SQL SERVER'
    GO
    Remarque remplacer remote_server avec le nom du deuxième ordinateur.
  6. Exécutez l'instruction Transact-SQL suivante dans l'Analyseur de requêtes SQL :
    SET xact_abort ON 
    GO
    USE  pubs
    GO
    BEGIN DISTRIBUTED TRANSACTION
    SELECT  *  FROM remote_server.pubs.dbo.authors
    COMMIT TRAN
    GO
    
    vous pouvez recevoir le message d'erreur mentionné dans la section "Symptômes" section de cet article.
Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
329332Erreur 7391 lorsque vous exécutez une transaction distribuée sur un serveur lié
Pour plus d'informations sur Microsoft COM + 1.5, site Web MSDN (Microsoft Developer Network) suivant :
http://msdn2.microsoft.com/en-us/library/ms687608.aspx

Propriétés

Numéro d'article: 827805 - Dernière mise à jour: mercredi 5 décembre 2007 - Version: 4.7
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft SQL Server 2000 Édition Entreprise
  • Microsoft COM+ 1.5
Mots-clés : 
kbmt kbinfo kbtshoot kbtransaction kbsecurity kbrpc kbauthentication kbdtc kbdomain KB827805 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 827805
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com