2013-11-22 3 views
6

Ich konfiguriere einen neuen SQL Server 2008 R2 und erhalte den folgenden Fehler, wenn ich versuche, exec zu erteilen Berechtigung für gespeicherte Prozeduren Benutzer die Anweisung wieSQL Server: Berechtigungen für sa, dbo, Entitätseigner, information_schema, sys oder yourself können nicht erteilt, verweigert oder widerrufen werden

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

Der Fehler ich erhalte mit:

Berechtigungen sa, dbo, Organisation Eigentümer, information_schema, sys kann nicht erteilt, verweigert oder widerrufen, oder du selbst.

Ich bin in der Lage, andere Berechtigungen zu erteilen, wie zum Beispiel die Berechtigung für Synonyme. Ich bin auch in der Lage, Logins zu erstellen und Benutzer basierend auf den Logins zu erstellen und den Benutzern Rollen für Datenschreiber und Datenleser zu gewähren.

Ich habe die öffentlichen, serveradmin und sysadmin Server-Rollen. Ich habe die Rolle db_owner in der Datenbank, in der ich versucht habe, die Berechtigungen zu erteilen.

Ich hatte dieses Problem nie zuvor.

Was fehlt mir?

+2

Welche Rollen/Berechtigungen hat 'userName' momentan? –

+0

Zu welcher Regel gehören Sie? –

+0

Ich habe versucht, UserName Exec-Berechtigung für einige gespeicherte Prozeduren zu erteilen. Um Amirreza Keshavarz Frage zu beantworten, sagte ich, ich habe Systemadministrator und sereradmin Rollen. – John

Antwort

5

Ich habe den Grund herausgefunden, warum ich die Nachricht bekam:

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

Das war, weil der Benutzer Ich habe versucht, Berechtigungen zu erteilen die das Schema dieser Objekte besitzt.

Zum Beispiel ist eine der gespeicherten Prozeduren mySchema.usp_CreateUser() und der Benutzername ist "appUser". Der "appUser" besitzt das Schema "mySchema". Da der Benutzer das Schema besitzt, kann der Benutzer die Prozedur ausführen. Es ist nicht notwendig, dem Benutzer die exec-Berechtigung zu erteilen.

Verwandte Themen