SQL Server:无法授予,拒绝或撤消sa,dbo,实体所有者,information_schema,sys或您自己的权限

时间:2013-11-22 16:23:34

标签: sql-server sql-server-2008 permissions

我正在配置新的SQL Server 2008 R2,当我尝试使用像

这样的语句向用户授予对存储过程的exec权限时,会出现以下错误
grant exec on [schemaName].[StoredProcedureName] TO userName

我得到的错误:

  

无法授予,拒绝或撤消sa,dbo,实体所有者的权限,   information_schema,sys或者你自己。

我可以授予其他权限,例如对同义词的select权限。我还能够根据登录创建登录和创建用户,并授予用户数据编写者和datareader角色。

我有public,serveradmin和sysadmin服务器角色。我在数据库中有db_owner角色,我试图授予权限。

我之前从未遇到过这个问题。

我错过了什么?

1 个答案:

答案 0 :(得分:6)

我已经找到了收到消息的原因:

Cannot grant, deny, or revoke permissions to sa, dbo, entity owner, information_schema, sys, or yourself.

那是因为我试图授予权限的用户拥有那些对象的架构。

例如,其中一个存储过程是mySchema.usp_CreateUser(),userName是“appUser”。 “appUser”拥有架构“mySchema”。由于用户拥有架构,因此用户可以执行该过程。无需向用户授予exec权限。