2013-03-25 398 views
5

我的工作的SQL Server 2008 R2快車上,當我使用SQL Server調試功能可以從客戶端PC,出現此錯誤:在開始調試時發生SQL Server 2008 R2錯誤,錯誤HRESULT E_FAIL已從調用COM組件返回。 (mscorlib程序)

The EXECUTE permission was denied on the object 'sp_enable_sql_debug', database 'mssqlsystemresource', schema 'sys'. (Microsoft SQL Server, Error: 229)

我的用戶名是「HALI」和權限分配給我是「公」和「DB_OWNER」,

現在這個錯誤後,我分配了所有權限可用。和所有的服務器角色。

在這個時候,我得到了新的錯誤消息

現在,

Error HRESULT E_FAIL has been returned from a call to a COM component. (mscorlib)

現在的解決辦法是什麼這個錯誤。

回答

5

我不知道,如果禁用防火牆是不夠的。如果用戶具有系統管理員權限並仍然出現此錯誤,則意味着客戶端無法以調試模式連接到服務器。檢查這個TCP和UDP端口是否正確打開。

SQL remote debugging configuration

編輯:1

我相信你一定也瞪大眼睛很多,試圖找出有關的錯誤消息。 到目前爲止,我發現的是,您提到的OP中的錯誤是誤導性的,從那個錯誤中我們無法確定究竟是錯誤還是下一步要看什麼。但正如你在評論中回覆的那樣,在啓用遠程調試器之後進行了更改;提到的錯誤更加清晰,我認爲適當的許可仍然是一個問題。許多其他建議你也可能已經嘗試到目前爲止,但如果你還沒有這樣做,讓我們再試一次:

在其中一個評論中,我提到你嘗試使用Windows用戶登錄。

現在讓你已經做了TCP端口,防火牆例外等的設置...在上面的鏈接解釋。 您有安裝了數據庫服務器的Windows 2012服務器。和Windows 8教授你有DB客戶端,你通過SSMS連接。 現在我相信這兩臺機器都在同一個域中。讓我們說域XYZ。您必須在服務器上有Windows登錄,假設它是「XYZ \ HALI」,您可以使用它登錄到Windows Server。登錄並確保登錄也存在於具有sysadmin權限的SQL SERVER中。由於客戶端計算機也位於同一個域中,因此請確保使用同一用戶「XYZ \ HALI」登錄到客戶端計算機。現在啓動SSMS並選擇Windows身份驗證代替SQL SERVER身份驗證。嘗試立即開始調試T-SQL代碼。

如果客戶機和服務器不在同一個域,那麼我們必須要客戶端機器上註冊服務器名稱作爲鏈接服務器,冒充登錄/用戶本地,然後嘗試調試。

編輯:2

Login to SSMS using Windows Authentication

+0

在做博客中提到的所有struff,包括服務器端和客戶端之後,當我嘗試在clinet上進行調試時出現此錯誤,在做出防火牆例外之前,我得到了不同的錯誤,現在我收到了這個錯誤 - 。 。 無法啓動Transact-SQL調試器,無法連接到數據庫引擎實例'xxxx'。確保您已啓用調試防火牆例外,並且使用的是sysadmin固定服務器角色成員的登錄名。點擊幫助瞭解更多信息。 – 2013-10-26 11:53:09

+0

操作系統在服務器和客戶端上。當你在客戶端連接到SSMS時,你使用「servername \ instancename」而不是IP地址。你也使用兩臺機器上存在的「windows認證用戶」。 – 2013-10-26 14:40:05

+0

是在客戶端我連接服務器名稱,我正在使用sql認證, 我應該使用IP地址 – 2013-10-27 05:56:15

1

有幾次我越過這個錯誤來看,它一直防火牆有關。你正在使用遠程服務器還是本地機器? (。順便,小心指派了所有可能的角色,其中有些是你絕對不希望那些你需要的SQL調試的一個是系統管理員 - 嘗試禁用你檢查過的角色的休息,只是分配一個。)

調試過程總是很痛苦。 This ASP.NET post在很大程度上幫助了我。

+0

我已在服務器和客戶端計算機上禁用防火牆。 – 2013-03-25 11:39:39

+0

您是否嘗試取消選中正在調試的用戶的所有角色但系統管理員? – antinescience 2013-03-25 11:44:00

+0

你好!但發生相同的錯誤。 – 2013-03-25 11:48:24

2

我在SQL 2008 R2數據庫生成SQL 2012腳本並運行該腳本後,遇到了這個問題。

經過一番研究,我發現我的目標SQL 2008 R2運行在32位操作系統上,該操作系統支持最大2GB的文件。所以我保存在C腳本爲C:\ myScript.sql在命令窗口中運行的文件和我在這幾個步驟後成功:

要運行腳本文件:

  1. 打開命令提示符窗口。

  2. 在命令提示符窗口中,鍵入:SQLCMD -s服務器\實例-U yourUserName -P你的密碼-i C:\ myScript.sql 其中myserver \實例是實例名稱,將用戶名&密碼SQL服務器登錄,最後如圖所示文件路徑

  3. 按ENTER鍵。

相關問題