Dans l'erreur SQL Server 2008 R2 s'est produite lors du debugging, Erreur HRESULT E_FAIL a été renvoyée à partir d'un appel à un composant COM. (mscorlib)

Je travaille sur SQL Server 2008 R2 Express, lorsque j'utilise la fonctionnalité de debugging de SQL Server à partir du PC client, cette erreur se produit:

L'autorisation EXECUTE a été refusée sur l'object 'sp_enable_sql_debug', la database 'mssqlsystemresource', le schéma 'sys'. (Microsoft SQL Server, erreur: 229)

Mon nom d'user est 'HALI' et l'autorisation qui m'est assignée est 'public' et 'db_Owner',

maintenant après cette erreur, j'ai assigné toutes les permissions disponibles. Et tous les rôles de server.

Maintenant, à ce moment, j'ai reçu un nouveau message d'erreur,

Erreur HRESULT E_FAIL a été renvoyé à partir d'un appel à un composant COM. (mscorlib)

Maintenant, quelle serait la solution pour cette erreur.

Je ne suis pas sûr si la désactivation du pare-feu est suffisante. Si l'user possède des permissions sysadmin et que l'erreur persiste, le client ne peut pas se connecter au server en mode de debugging. vérifiez que les ports TCP et UDP sont correctement ouverts.

Configuration de debugging à distance SQL

EDIT: 1

Je suis sûr que vous devez avoir aussi beaucoup goggled et essayé de découvrir les messages d'erreur. Ce que j'ai trouvé jusqu'ici est l'erreur dans le PO que vous avez mentionné est trompeuse et de cette erreur nous ne pouvons pas dire exactement ce qui est faux ou quoi regarder ensuite. Mais comme vous avez répondu dans les commentaires, après avoir apporté des modifications pour activer le débogueur à distance; l'erreur mentionnée est plus claire et je pense que la permission appropriée est toujours un problème. Beaucoup d'autres suggestions que vous avez peut-être déjà essayées, mais si vous n'avez pas fait cela, essayons une fois de plus:

Dans l'un des commentaires je vous ai mentionné pour essayer de vous connecter en utilisant l'user Windows.

Maintenant Gardez les parameters que vous avez déjà fait pour les ports TCP, Firewall Exception etc … expliqué dans le lien ci-dessus. vous avez le server Windows 2012 sur lequel vous avez installé le server de database. et Windows 8 Prof où vous avez DB client et vous vous connectez via SSMS. Maintenant, je crois que les deux machines sont dans le même domaine. Disons le domaine XYZ. Vous devez avoir une connection Windows sur le server, disons que c'est "XYZ \ HALI" avec lequel vous pouvez vous connecter à Windows Server. Connectez-vous et assurez-vous que la connection existe également dans SQL SERVER avec l'autorisation sysadmin. Parce que la machine cliente est également dans le même domaine, assurez-vous que vous avez ouvert une session sur la machine cliente en utilisant le même user "XYZ \ HALI". Maintenant, démarrez SSMS et choisissez l'authentification Windows à la place de l'authentification SQL SERVER. Essayez de démarrer le debugging du code T-SQL maintenant.

Si les machines client et server ne se trouvent pas dans le même domaine, nous devons save le nom du server sur la machine cliente en tant que server lié, usurper l'identité du login / user en tant que local et ensuite essayer le debugging.

Éditer: 2

Connectez-vous à SSMS à l'aide de l'authentification Windows

J'ai rencontré ce problème après avoir généré un script SQL 2012 et exécuté le script dans une database SQL 2008 R2 .

Après quelques searchs, j'ai découvert que ma cible SQL 2008 R2 fonctionnait sur un operating system 32 bits qui prend en charge un file d'une taille maximale de 2 Go. J'ai donc sauvegardé le script en C alors que C: \ myScript.sql exécutait le file dans la window de command et j'ai réussi après avoir suivi ces quelques étapes:

Pour exécuter le file de script:

  1. Ouvrez une window d'invite de command.

  2. Dans la window Invite de commands, tapez: sqlcmd -S myServer \ instanceName -U yourUserName -P yourPassword -i C: \ myScript.sql où myServer \ instanceName est le nom de l'instance, fournissez le nom d'user et le mot de passe pour la connection au server SQL, et enfin path du file comme indiqué

  3. Appuyez sur Entrée.

Les quelques fois où j'ai rencontré cette erreur, ça a toujours été lié au pare-feu. Travaillez-vous sur un server distant ou sur votre machine locale? (Entre parenthèses, soyez attentif à assigner tous les rôles possibles, certains sont ceux que vous ne voulez absolument pas, celui dont vous avez besoin pour le debugging SQL est sysadmin – essayez de désactiver le rest des rôles que vous avez cochés et d'assigner celui-là.)

Le debugging des procs est toujours une douleur. Ce post ASP.NET m'a beaucoup aidé il y a quelque time.