堆栈跟踪:
[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角色