EXECUTE权限在对象“xxxxxxx”,数据库“zzzzzzz”,模式“dbo”

我遇到问题执行一个function…

以下是我所做的:

  1. 使用sql server management studio创build一个函数。 它被成功创build。
  2. 然后我试着执行新创build的函数,这里是我得到的:

EXECUTE权限在对象'xxxxxxx',数据库'zzzzzzz',模式'dbo'上被拒绝。

听起来像你需要授予执行权限的用户(或他们的一部分组)的存储过程的问题。

例如,您可以授予访问权限:

USE zzzzzzz; GRANT EXEC ON dbo.xxxxxxx TO PUBLIC 

我发现最好的解决scheme是创build一个新的数据库angular色即

 CREATE ROLE db_executor; 

然后授予该angular色的exec权限。

 GRANT EXECUTE TO db_executor; 

现在,当您转到用户的属性并转到“用户映射”并select添加了新angular色的数据库时,现在新angular色将显示在“数据库angular色成员身份:”部分

欲了解更多详情阅读全文

在Sql Server中:

只需要去security->schema->dbo

双击dbo,然后点击permission tab->(blue font)view database permission ,随意滚动查看所需的字段,如"execute". 帮助自己select使用grantdeny控制。 希望这会帮助:)

你需要运行这样的东西

 GRANT Execute ON [dbo].fnc_whatEver TO [domain\user] 

如果您尝试向用户或angular色授予权限,则这将起作用。

使用Microsoft SQL Server Management Studio:

  • 转到:数据库
  • 右键单击dbo.my_database
  • select:属性
  • 在左侧面板上,点击:权限
  • select用户或angular色,然后在名称面板中
  • 查找执行权限和复选标记:授予,授予或拒绝

尽pipe您有足够的权限来创build它,但您无权执行此操作。

有关更多信息,请参阅GRANT对象权限(Transact-SQL)

给予这样的权限可能是危险的,特别是如果您的Web应用程序使用相同的用户名。

现在,Web用户(以及整个万维网)也有权在数据库中创build和删除对象。 认为SQL注入!

我build议只授予给定对象的特定用户的执行权限,如下所示:

将storedProcedureNameNoquotes的执行授予myusernameNoquotes

现在用户myusernameNoquotes可以执行storedProcedureNameNoquotes过程,没有其他不必要的权限您的宝贵的数据。

我遇到了同样的问题,我解决了给数据库用户的db_owner权限。

如果您遇到上述问题,例如执行解决scheme时引发的exception问题,则问题是权限,未正确授予该组的用户访问数据库/存储过程。 所有你需要做的就是做下面的事情,用你的数据库名称,存储过程(函数)以及权限或angular色的types或你授予访问权限的人来replace我的东西。

 USE [StableEmployee] GO GRANT EXEC ON dbo.GetAllEmployees TO PUBLIC 

/ ******对象:StoredProcedure [dbo]。[GetAllEmployees] Script Date:01/27/2016 16:27:27 ****** /

 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER procedure [dbo].[GetAllEmployees] as Begin Select EmployeeId, Name, Gender, City, DepartmentId From tblEmployee End 

如果你让这个用户尤其是特定的数据库,那么你可能不会在属性的“用户映射”中将其设置为db_owner

你可以给每个人执行权限:

 GRANT Execute on [dbo].your_object to [public] 

“公共”是所有用户都是其成员的默认数据库angular色。