安装SiteFactory版本时出现的应用程序错误的处理方法之一

作者:动易网络 来源:本站原创 点击数: 发布时间:2008年06月22日

  我们在安装siteFactory版本时,安装操作没有设置好的话,很多时候会出现出错页面,比如下面问题之一:

 

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


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

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

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

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪:

[SqlException (0x80131904): 拒绝了对对象 'PR_UserManage_Users_Update'(数据库 'AAAAA',所有者 'dbo')的 EXECUTE 权限。]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +925466
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +800118
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +186
   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1932
   System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +149
   System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +1005
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +132
   System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) +149
   System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +135
   Microsoft.Practices.EnterpriseLibrary.Data.Database.DoExecuteNonQuery(DbCommand command) +131
   Microsoft.Practices.EnterpriseLibrary.Data.Database.ExecuteNonQuery(DbCommand command) +208
   PowerEasy.SqlServerDal.DBHelper.ExecuteNonQuery(CommandType commandType, String strCommand, Parameters cmdParams) +76
   PowerEasy.SqlServerDal.UserManage.Users.Update(UserInfo usersInfo) +24
   PowerEasy.UserManage.Users.Update(UserInfo userInfo) +13
   PowerEasy.WebSite.Admin.Login.IbtnEnter_Click(Object sender, ImageClickEventArgs e) +1249
   System.Web.UI.WebControls.ImageButton.OnClick(ImageClickEventArgs e) +86
   System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument) +115
   System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1746


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

---------------------------------------------

 

  在遇到出错信息时,我们不要马上就觉得自己就没有办法处理了,急于到处求问,静下心来我们会发现为什么会出错的原因其实已经在出错信息里已经提示出来了,我们注意看下出错信息:

  

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

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

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

 

  从这里我们就可以判断出出错的问题在于数据库,并且是因为数据库管理用户的权限不够,那么默认的建数据库管理用户时,所给的权限是 "dbo_public', 这个只是通用的权限设置,在使用动易系统时,很多地方是会涉及到对数据表的更新,插入,删除等操作,那么按照这种操作要求(同时为了方便地让客户能设置数据库),我们应该给数据库管理用户以"dbo_owner"权限, (请初次使用动易系统的用户一定要仔细地阅读动易产品包里的安装说明),所以在掌握了这些信息之后,我们就明白了如何操作进行解决这个错误,下面是给出的方法:

  1. 对于SQL 2005数据库,我们要设置好管理动易数据库的管理用户权限:
  打开SQL Server企业管理器,依次点击〔安全性〕-〔登录〕,选中您设置的用户,右键-属性,在打开的新窗口中点击映射,勾选db_owner角色

  2.对于SQL 2000数据库

  打开SQL Server企业管理器,依次点击〔安全性〕-〔登录〕,选中您设置的用户,右键-属性-数据库访问,在新打开的窗口中选择您设置的数据库名,勾选db_owner角色