2013-11-22 179 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」。由於用戶擁有架構,用戶可以執行該過程。沒有必要授予用戶執行權限。

相關問題