2013-11-22 137 views
6

我正在配置新的SQL Server 2008 R2,并且在尝试授予exec时收到以下错误允许对存储过程使用语句的用户喜欢SQL Server:无法向sa,dbo,实体所有者,information_schema,sys或您自己授予,拒绝或撤销权限

grant exec on [schemaName].[StoredProcedureName] TO userName 

我得到的错误:

不能授予,拒绝或吊销权限SA,DBO,实体店主, INFORMATION_SCHEMA,SYS,或者你自己。

我可以授予其他权限,如选择同义词的权限。我还能够根据登录创建登录和创建用户,并授予用户数据作者和数据库读者角色。

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

我从来没有遇到过这个问题。

我错过了什么?

+2

'userName'目前有哪些角色/权限? –

+0

你是什么规则的成员? –

+0

我正试图授予某些存储过程的userName exec权限。 要回答,Amirreza Keshavarz的问题,我说我有sysadmin和serveradmin角色。 – John

回答

5

我已经想通了,为什么我得到的消息的原因:

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

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

例如,其中一个存储过程是mySchema.usp_CreateUser(),userName是“appUser”。 “appUser”拥有模式“mySchema”。由于用户拥有架构,用户可以执行该过程。没有必要授予用户执行权限。

相关问题