`
happmaoo
  • 浏览: 4339007 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

拒绝了对对象 'sp_sdidebug'(数据库 'master',所有者 'dbo')的 EXECUTE 权限。

阅读更多

在用VS2008开发网站时,调试代码时(选择了附加到进程的方法进行调试),在执行一个SQL查询时报以下错误:

“/VM”应用程序中的服务器错误。

拒绝了对对象 'sp_sdidebug'(数据库 'master',所有者 'dbo')的 EXECUTE 权限。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: 拒绝了对对象 'sp_sdidebug'(数据库 'master',所有者 'dbo')的 EXECUTE 权限。

源错误:

行 116:			dsCommand.SelectCommand.CommandText=sql;
行 117:			dsCommand.SelectCommand.CommandType=CommandType.Text;
行 118:			dsCommand.SelectCommand.Connection.Open();
行 119:			try
行 120:			{

源文件: D:\Work\VM\SqlServerDAL\SqlLink.cs 行: 118

堆栈跟踪:

[SqlException (0x80131904): 拒绝了对对象 'sp_sdidebug'(数据库 'master',所有者 'dbo')的 EXECUTE 权限。]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +1948826
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4844747
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194
   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2392
   System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +204
   System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +954
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +162
   System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) +175
   System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +137
   System.Data.SqlClient.SqlConnection.IssueSQLDebug(UInt32 option, String machineName, UInt32 pid, UInt32 id, String sdiDllName, Byte[] data) +561
   System.Data.SqlClient.SqlConnection.CheckSQLDebug(SqlDebugContext sdc) +129
   System.Data.SqlClient.SqlConnection.CheckSQLDebugOnConnect() +349
   System.Data.SqlClient.SqlConnection.CompleteOpen() +4874985
   System.Data.SqlClient.SqlConnection.Open() +185
   Vm.SqlServerDAL.SqlLink.SelectSqlSet(String sql) in D:\Work\VM\SqlServerDAL\SqlLink.cs:118
   Vm.SqlServerDAL.BaseEntity.clsCity.Load_HomeOftenCity() in D:\Work\VM\SqlServerDAL\BaseEntity\clsCity.cs:452
   Vm.Vm.business.Hotel.HotelSearchGuoNei.bindChangQuCity() in D:\Work\VM\Web\business\hotel\HotelSearchGuoNei.aspx.cs:39
   Vm.Vm.business.Hotel.HotelSearchGuoNei.Page_Load(Object sender, EventArgs e) in D:\Work\VM\Web\business\hotel\HotelSearchGuoNei.aspx.cs:30
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
   System.Web.UI.Control.OnLoad(EventArgs e) +99
   System.Web.UI.Control.LoadRecursive() +50
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627

版本信息:Microsoft .NET Framework 版本:2.0.50727.3053; ASP.NET 版本:2.0.50727.3053

百度了一下,解决方法如下:

在.net中调用时出现“拒绝了对对象 'sp_sdidebug'(数据库 'master',所有者 'dbo')的 EXECUTE 权限”的错误的解决办法。

该问题是我在用指定的URL启动项目后,再“附加进程”后运行程序时出现的。该问题主要是.net2005的调试机制引起的,当已启动程序,再附加进程后,他默认是要对SQL Server 也要进行调试的,可这需要装补丁才能支持。所以就出现了“拒绝了对对象 'sp_sdidebug'(数据库 'master',所有者 'dbo')的 EXECUTE 权限”的错误。这时我们可以通过更改它的调试类型来处理该问题,并使调试正常进行。

在“附加到进程”对话框中点击“附加到:”后的“选择”按钮,可以看到它默认的选项是“自动确定要调试的代码类型”。完后选中“调试以下代码”,并只选择“托管”。这样就可以正常进行了。

另外,若项目整体无法启动调试,也可以先在项目属中指定从某一URL进行调试,完后在启动之后通过上面的方法将该进程附加到调试器中也可以实现对项目的调试。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics