В SQL Server 2008 R2 произошла ошибка при запуске отладки, ошибка HRESULT E FAIL была возвращена из вызова компонента COM. (библиотеки mscorlib)

Я работаю над SQL Server 2008 R2 Express, когда я использую функцию отладки SQL Server с клиентского ПК, возникает эта ошибка:

разрешение EXECUTE было отклонено для объекта "sp_enable_sql_debug", базы данных "mssqlsystemresource", схемы "sys". (Microsoft SQL Server, ошибка: 229)

мое имя пользователя "HALI", и мне назначено разрешение "public" и "db_Owner",

теперь после этой ошибки я передал все полномочия доступный. И все серверные роли.

сейчас в это время я получил новое сообщение об ошибке,

ошибка HRESULT E_FAIL был возвращен из вызова com-компонента. (библиотеки mscorlib)

теперь, какое решение было бы для этой ошибки.

3 ответов


Я не уверен, достаточно ли отключить брандмауэр. если пользователь имеет разрешения sysadmin и все еще получает эту ошибку, клиент не может подключиться к серверу в режиме отладки. проверьте, правильно ли открыты порты TCP и UDP.

конфигурация удаленной отладки SQL

EDIT: 1

Я уверен, что вы, должно быть, также goggled много и пытались узнать о сообщениях об ошибках. То, что я нашел до сих пор, - это ошибка в OP вы упомянули, что это вводит в заблуждение, и из этой ошибки мы не можем сказать, что именно неправильно или что смотреть дальше. Но, как вы ответили в комментариях, после внесения изменений для включения удаленного отладчика; упомянутая ошибка более ясна, и я чувствую, что правильное разрешение по-прежнему является проблемой. Множество других предложений, которые вы также могли бы попробовать до сих пор, но если вы этого не сделали, давайте попробуем еще раз:

в одном из комментариев я упомянул вас, чтобы попробовать войти с помощью windows пользователь.

теперь сохраните настройки, которые вы уже сделали для портов TCP, исключения брандмауэра и т. д. ... объяснено в приведенной выше ссылке. у вас есть Windows 2012 server, где установлен сервер БД. и Windows 8 Prof, где у вас есть клиент БД, и вы подключаетесь через SSMS. сейчас я считаю, что обе машины находятся в одном домене. скажем, домен XYZ. У вас должен быть вход windows на сервере, скажем, это "XYZ\HALI", с помощью которого вы можете войти на сервер Windows. войдите в систему и убедитесь, что вход также существует в SQL SERVER с разрешением sysadmin. Поскольку клиентская машина также находится в том же домене, убедитесь, что вы вошли в клиентскую машину с помощью того же пользователя "XYZ\HALI". Теперь запустите SSMS и выберите проверку подлинности windows вместо проверки подлинности SQL SERVER. Попробуйте начать отладку кода T-SQL прямо сейчас.

Если клиентские и серверные машины не находятся в одном домене, мы должны зарегистрировать имя сервера на клиентской машине как связанный сервер, олицетворить логин / пользователя как локальный, а затем попробуйте отладку.

Edit: 2

Login to SSMS using Windows Authentication


я столкнулся с этой проблемой после создания сценария SQL 2012 и запуска его в базе данных SQL 2008 R2.

после некоторых исследований я узнал, что мой целевой SQL 2008 R2 работает на 32-разрядной ОС, которая поддерживает файл размером до 2 ГБ. Так я спас сценарий C:\myScript.sql и успешно выполнил его в командной строке с помощью следующих шагов:

  1. откройте окно командной строки.

  2. в командной строке окно, типа:

    sqlcmd -S myServer\instanceName –U yourUserName –P yourPassword -i C:\myScript.sql
    

    здесь myServer\instanceName - имя экземпляра. Укажите имя пользователя и пароль для входа в SQL server и, наконец, путь к файлу, как указано.

  3. Нажмите Enter.

ссылки:


несколько раз я сталкивался с этой ошибкой, это всегда было связано с брандмауэром. Вы работаете на удаленном сервере или на локальном компьютере? (В скобках, будьте осторожны, назначая все возможные роли. Некоторые из них вам совершенно не нужны. Тот, который вам нужен для отладки SQL, - это sysadmin-попробуйте отключить остальные роли, которые вы проверили, и просто назначить их.)

отладка процессоров всегда боль. Это ASP.NET пост помогли мне существенно некоторое время назад.