2013-02-25 72 views
9

到我的db_datareader有以下腳本:無法添加用戶通過腳本

ALTER ROLE [db_datareader] ADD MEMBER [DomainGroup123] 

,當我跑這對SQL Server 2008 R2我得到這個錯誤:

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

我在網上看了,並發現examples使用此準確的語句(但與不同的用戶)。

我已經雙重檢查登錄存在,並且是我正在使用的數據庫上的有效用戶。另外我在服務器上擁有SA權限。

我在想什麼?

+7

雖然您已經找到了解決方案,但請注意,ALTER ROLE文檔顯示您嘗試的語法僅在[SQL Server 2012](http://msdn.microsoft.com/zh-cn/ us/library/ms189775(v = sql.110).aspx),而不是[SQL Server 2008 R2](http://msdn.microsoft.com/zh-cn/library/ms189775(v = sql.105).aspx )。 – Pondlife 2013-02-26 13:19:46

+0

@龐德是正確的。注意:對於SS2012未來的任何開發,您應該使用「ALTER ROLE」。證明:微軟的「重要」注意[sp_addrolemember](http://msdn.microsoft.com/zh-cn/library/ms187750.aspx)中明確提到使用「ALTER ROLE」代替。 – MikeTeeVee 2014-12-08 19:36:04

回答

15

使用sp_addrolemember。

EXECUTE sp_addrolemember db_datareader, 'UserName' 
2

我注意到,根據服務器的版本,我需要去下列其中之一。

alter role RoleName add member UserName 

execute sp_addrolemember RoleName, UserName 

我想改變我的做法,從試驗和錯誤,以某種有條件的,但(一)在我的情況和(b執行此操作相當很少)我現在有點懶。

相關問題