12

次のスクリプトがあります。

ALTER ROLE [db_datareader] ADD MEMBER [DomainGroup123]

これを SQL Server 2008 R2 に対して実行すると、次のエラーが発生します。

メッセージ 156、レベル 15、状態 1、行 1
キーワード「ADD」付近の構文が正しくありません。

オンラインで調べたところ、この正確なステートメントを使用している例が見つかりました (ただし、別のユーザーを使用しています)。

ログインが存在し、使用しているデータベースの有効なユーザーであることを再確認しました。また、サーバーに対する SA 権限があります。

私は何を見逃していますか?

4

3 に答える 3

23

sp_addrolemember を使用します。

EXECUTE sp_addrolemember db_datareader, 'UserName'
于 2013-02-25T23:41:14.907 に答える
9

この回答を見つけました: https://stackoverflow.com/a/456365/16241

これは、次のように実行できることを示しました。

exec sp_addrolemember db_datareader, [DomainGroup123]

私はそれをしました、そしてそれはうまくいきました。

于 2013-02-25T23:40:51.530 に答える
4

サーバーのバージョンによっては、次のいずれかを実行する必要があることに気付きました。

alter role RoleName add member UserName

また

execute sp_addrolemember RoleName, UserName

アプローチを試行錯誤からある種の条件付きに変更することを考えていますが、(a) この操作は私の場合はほとんど実行されず、(b) 最近は少し怠け者です。

于 2015-01-22T08:42:41.390 に答える