asp.net - System.Data.SqlClient.SqlException : The SELECT permission was denied on object 'tableName' , 数据库 'dbName' ,架构 'dbo'

标签 asp.net sql-server asp.net-mvc sql-server-2008 iis

我尝试通过托管在本地 IIS 7 中的 ASP.NET MVC Web 应用程序从 SQL Server 中选择一些数据,但收到此错误:

System.Data.SqlClient.SqlException: The SELECT permission was denied on object 'tableName', database 'dbName', schema 'dbo'.

知道所有IIS APPPOOL\ASP.NET V4.0 Integrated的权限被检查,请问我该如何解决这个问题?

堆栈跟踪:

[RuntimeBinderException: Cannot perform runtime binding on a null reference] CallSite.Target(Closure , CallSite , Object ) +200
System.Dynamic.UpdateDelegates.UpdateAndExecute1(CallSite site, T0 arg0) +924 ASP._Page_Views_Shared__Header_cshtml.Execute() in c:\Users\Nectarys\desktop\monitoringn_web\monitoring2 - copy\monitoringn\Views\Shared_Header.cshtml:11
System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +280
System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +126
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +196
System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData) +158 ASP._Page_Views_Shared__Layout_cshtml.Execute() in c:\Users\Nectarys\desktop\monitoringn_web\monitoring2 - copy\monitoringn\Views\Shared_Layout.cshtml:13
System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +280
System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +126
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +196
System.Web.WebPages.WebPageBase.Write(HelperResult result) +89
System.Web.WebPages.WebPageBase.RenderSurrounding(String partialViewName, Action1 body) +233<br/> System.Web.WebPages.WebPageBase.PopContext() +291<br/> System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +378 System.Web.Mvc.<>c__DisplayClass1a.<InvokeActionResultWithFilters>b__17() +33 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func1 continuation) +855148 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +265
System.Web.Mvc.Async.<>c_DisplayClass25.b_22(IAsyncResult asyncResult) +839620
System.Web.Mvc.<>c_DisplayClass1d.b_18(IAsyncResult asyncResult) +28
System.Web.Mvc.Async.<>c_DisplayClass4.b_3(IAsyncResult ar) +15 System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +65
System.Web.Mvc.Async.<>c_DisplayClass4.b_3(IAsyncResult ar) +15 System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +51
System.Web.Mvc.<>c_DisplayClass8.b_3(IAsyncResult asyncResult) +42
System.Web.Mvc.Async.<>c_DisplayClass4.b_3(IAsyncResult ar) +15 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +51
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +606 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +288

另外,我已经 grant SELECT,INSERT,UPDATE,DELETE on dbo.tableName to "IIS APPPOOL\ASP.NET V4.0 Integrated"; 。我通过选择 dbName 并在新脚本中编写了该行来完成此操作。

最佳答案

您的数据库用户无权读取数据库中的表。您可以给它 db_owner 权限,它应该可以工作。

  1. 登录 SQL 服务器
  2. 转到您的数据库 --> 展开它
  3. 安全性-->您的数据库用户
  4. 右键单击--> 属性
  5. 确保选择 db_owner

关于asp.net - System.Data.SqlClient.SqlException : The SELECT permission was denied on object 'tableName' , 数据库 'dbName' ,架构 'dbo',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22323182/

相关文章:

sql-server - 如何添加具有默认值的不可空列

javascript - 从 C# 中的 jquery bootgrid 获取排序方向

asp.net-mvc - requestValidationMode ="2.0"实际上做了什么?

asp.net - ASP 密码恢复不起作用

javascript - ASP.NET Web 应用程序无法在 IE10 中运行

asp.net - 如何使用linq在数据表中查找列的最大长度

asp.net - .NET JIT 编译器会优化方法调用吗?

python - 将 Python 列表传递给 SQL Server 查询的 ORDER BY 子句

sql - Closure Table INSERT 语句包括水平/距离列

asp.net-mvc - ASP.net MVC 或 Knockout.JS