无法在 dbo 模式中执行存储过程
Posted
技术标签:
【中文标题】无法在 dbo 模式中执行存储过程【英文标题】:Unable to execute stored procedure in the dbo schema 【发布时间】:2012-07-31 11:39:28 【问题描述】:我使用 Windows 身份验证连接到 SQL Server。我在dbo
模式中创建了一个存储过程。当我尝试在 SSMS 中执行该存储过程时,出现以下错误
对象“sp_test”,数据库“myDB,schema = dbo”的执行权限被拒绝
这里需要做什么?
为什么我需要为我创建的存储过程授予权限?
【问题讨论】:
sp_
是 MS 提供的程序的保留前缀。你应该避免在你自己的存储过程中使用这样的前缀(并且,通常,避免任何前缀)
【参考方案1】:
是否创建了存储过程并不重要。 SQL Server 不使用 Windows 身份验证来确定您是否有权执行存储过程。它仅使用它来授予您连接到服务器的权限。连接后,您需要将 Windows 帐户映射到相应数据库中的用户。完成此操作后,您通常希望自己成为数据库角色的成员(创建新角色或使用预定义角色之一),然后向您所属的角色授予执行权限。这确保了该角色的任何成员都可以继续执行存储过程。
【讨论】:
to a Login in the respective database
我想你的意思是用户。以上是关于无法在 dbo 模式中执行存储过程的主要内容,如果未能解决你的问题,请参考以下文章
msdb.dbo.sp_send_dbmail 不在存储过程中执行
如何为用户(已经 dbo)授予存储过程的执行权限以运行 s-s-rS 报告