2013-11-22 15 views
6

Yeni bir SQL Server 2008 R2 yapılandırıyorum ve exec vermeyi denediğimde aşağıdaki hatayı alıyorumSQL Server: sa, dbo, varlık sahibi, information_schema, sys veya kendiniz için izinler verilemiyor, reddedilemiyor veya iptal edilemiyor

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

hata alıyorum gibi deyimini kullanarak kullanıcılara saklı prosedürleri izni:

verin, deny veya sa, dbo, varlık sahibine izinleri iptal edebilir, information_schema sys, ya da kendin.

Eş anlamlılara izin vermek gibi başka izinler verebiliyorum. Ayrıca girişler oluşturarak ve kullanıcılara girişler oluşturarak kullanıcı veri yazarı ve veri okuyucu rolleri verebiliyorum.

Genel, serveradmin ve sysadmin sunucu rollerine sahibim. İzinleri vermeye çalıştığım veritabanında db_owner rolü var.

Bu konuya daha önce hiç sahip olmadım.

Neyi eksik?

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

Ben izinleri vermek için çalışıyordu kullanıcı için bu o nesnelerin şema sahibi çünkü oldu:

+2

'userName' şu anda hangi rollere/izinlere sahip? –

+0

Hangi kural üyesisiniz? –

+0

Bazı saklı yordamlarda userName exec iznini vermeye çalışıyordum. Yanıtlamak gerekirse, Amirreza Keshavarz'ın sorusu, sysadmin ve serveradmin rolleri olduğunu söyledim. – John

cevap

5

Ben mesajı başlamıştı nedenini anladım. Örneğin, saklı yordamlardan biri mySchema.usp_CreateUser() ve userName ise "appUser" şeklindedir. "AppUser" şeması "mySchema" sahibi. Kullanıcı şemaya sahip olduğundan, kullanıcı prosedürü çalıştırabilir. Kullanıcıya exec izni verilmesine gerek yoktur.

İlgili konular