asp.net – 在proc中使用sp_executesql时出现“select permissio
我正在使用Sql Server 2008并且有一个在内部使用sp_executesql的proc.通过ASP.NET执行proc时,我一直收到以下错误:
对象’MyTable’,数据库’MyDatabase‘,架构’dbo’上的SELECT权限被拒绝. 我已经对此做了大量研究,大多数人都指出我需要在动态查询读取的基础表上授予select权限.好吧,我已经完成了这个,它似乎仍然无法正常工作: select object_name(major_id) as object,user_name(grantee_principal_id) as grantee,user_name(grantor_principal_id) as grantor,permission_name,state_desc from sys.database_permissions where major_id = object_id('User') and class = 1 Results: MyTable public dbo SELECT GRANT MyTable guest dbo SELECT GRANT MyTable myuser dbo SELECT GRANT MyTable NT AUTHORITYNETWORK SERVICE dbo SELECT GRANT 正如你所看到的,我试图在基础表上授予select,这已经过度了.我甚至重新编写了我的proc,以便它只在动态sql中引用MyTable.我甚至已经授予所有上述用户“proc”执行权限…没有运气. 上面的“myuser”是web.config中我的connectionstring中的用户名. 我在这里错过了什么吗? 谢谢! 解决方法
我想到了.将此发布给遇到此问题的其他任何人.
1)首先,我注意到我的dbo用户没有与之关联的登录名.您可以通过右键单击dbo用户的Security / Users文件夹中的dbo用户并单击Properties来查看.在灰色区域中,您应该是用户名(dbo)和登录名(sa).我认为这通常发生在您还原数据库或某些事情时(不确定).无论如何,如果您没有看到登录名,只需在数据库中运行该问题: sp_changedbowner’sa’ 这只是使dbo成为数据库的所有者(或类似的东西).我发现这个的原因是因为我尝试通过这个gui接口保存一些权限,例如“db_datareader”,“db_datawriter”,但是抛出了一个错误,说明需要登录名.我认为dbo应该检查db_owner(我的确如此),我认为无论如何这都胜过其他所有人. 2)为了让我的proc工作,我必须在proc结束时添加“with execute as owner”.我以前试过这个,但是因为我的第一个问题#1而认为它不起作用. Proc通常在proc的所有者下运行,但在procs中不是动态sql.它们在用户执行proc的上下文中运行.对我来说这很奇怪,因为我认为我需要在动态sql(我试过)中添加它,但它需要在proc本身(去图?) 3)运行此脚本也可能不会受到影响: 将’MyTable’上的选择授予’MyUser’ 对于动态sql中使用的每个表. 希望这可以帮助… 这里有一些对同一问题的引用: http://www.jimmcleod.net/blog/index.php/2007/05/15/sp_executesql-breaks-chain-of-ownership-in-sql-server-2000/ http://kbalertz.com/301299/Security-Context-Dynamic-Statements-Inside-Stored-Procedure.aspx http://www.mssqltips.com/tipprint.asp?tip=1822 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – asp.net mvc局部视图错误输出
- .net – SimpleMembership取消用户身份验证?
- asp.net-mvc – 任何理由不信任ASP.NET AntiForgeryToken?
- asp.net-mvc – Windows Azure多租户应用程序和SSL
- asp.net – Mscaptcha在本地运行良好,但图片没有在服务器中
- asp.net-mvc-3 – ASP.Net MVC 3 – 编辑器模板的客户端不显
- .net – Umbraco Yay还是Nay?
- asp.net-mvc – ASP.NET MVC角色授权
- asp.net-mvc – MVC4上的服务堆栈
- ASP.NET Core部署在IIS中后,报无法打开登录所请求的数据库
- C#使用Jquery zTree实现树状结构显示_异步数据加
- 如果ASP.NET应用程序使用许多DLL,那么保持每个dl
- asp.net – Crystal Reports“加载报告失败”错误
- ASP.NET可以在C#中设置会话超时值
- asp.net – ProviderManifestToken’2008’与之前
- [干货来袭]DevExpress ASP.NET示例资源最全分享!
- asp.net – 在会话中存储值是否安全?
- asp.net-mvc – MVC中部分VIEW和用户控件的区别
- asp.net – 找不到与名为’help’的控制器匹配的
- asp.net-mvc – 将角色动态映射到ASP.Net MVC中的