【发布时间】:2017-11-04 03:31:54
【问题描述】:
我目前正在开发一个 MVC5、EF6 项目,并且需要一个存储过程用于项目的一部分。我已经编写了存储过程,现在当我尝试在我的代码中使用它时,我收到一条错误消息:
The EXECUTE permission was denied on object ....
然而,当我在 SQL Management Studio 中测试存储过程时,我可以很好地运行存储过程。我不确定该怎么做才能解决这个问题,因为我以前从未遇到过。
【问题讨论】:
-
您在应用中的 sql 用户是否与您在 SSMS 中使用的用户相同?
-
你应该授予用户执行权限
-
检查您的 web.config 连接字符串以找到您连接到数据库的用户,然后将执行权限扩展到该用户
-
进程很可能以与 SSMS 中不同的用户身份运行,和/或您在连接字符串中指定的凭据与 SSMS 中的凭据不匹配,和/或者您连接到错误的服务器/数据库。当事情似乎违背逻辑时,挑战你的假设。
-
您确实应该创建一个单独的帐户来从 WEB 应用程序访问 SQL 服务器。永远不要使用您的凭据!
标签: sql sql-server entity-framework stored-procedures