2013-02-25 3 views
9

ich das folgende Skript haben:Kann nicht vom Benutzer hinzufügen, über ein Skript db_datareader

ALTER ROLE [db_datareader] ADD MEMBER [DomainGroup123] 

wenn ich dies gegen SQL Server 2008 R2 laufen bekomme ich diesen Fehler:

Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'ADD'.

ich online ausgesehen haben , und examples gefunden, die diese genaue Aussage benutzen (aber mit einem anderen Benutzer.)

Ich habe doppelt überprüft, dass die Anmeldung existiert und ist ein gültiger Benutzer auf der Datenbank, die ich verwende. Außerdem habe ich SA-Berechtigungen auf dem Server.

Was bin ich mssing?

+7

Obwohl Sie bereits eine Lösung gefunden haben, beachten Sie bitte, dass die Dokumentation für 'ALTER ROLE' zeigt, dass die von Ihnen getestete Syntax nur in [SQL Server 2012] gültig ist (http://msdn.microsoft.com/de-de us/library/ms189775 (v = sql.110) .aspx), nicht [SQL Server 2008 R2] (http://msdn.microsoft.com/en-us/library/ms189775 (v = sql.105) .aspx). – Pondlife

+0

@Pondlife ist richtig. Hinweis: Sie sollten "ALTER ROLE" für jede zukünftige Entwicklung ab SS2012 verwenden. Beweis: Microsofts "Wichtiger" Hinweis hier auf [sp_addrolemember] (http://msdn.microsoft.com/en-us/library/ms187750.aspx) sagt explizit, stattdessen "ALTER ROLE" zu verwenden. – MikeTeeVee

Antwort

15

Verwenden Sie sp_addrolemember.

EXECUTE sp_addrolemember db_datareader, 'UserName' 
2

Ich habe festgestellt, dass je nach der Version des Servers, muss einer der folgenden gehen.

alter role RoleName add member UserName 

oder

execute sp_addrolemember RoleName, UserName 

ich meinen Ansatzes des Wechsels von Versuch und Irrtum zu irgendeiner Art von bedingt denke aber (a) diese Operation durchgeführt wird, ganz selten in meinem Fall und (b) Ich bin heutzutage ein bisschen faul.

Verwandte Themen