2013-02-23 112 views
0

我在存儲過程以下行權限授予用戶對這個存儲過程將權限授予多個數據庫用戶在一行

GRANT EXECUTE ON [dbo].[GetItem] TO [<<DBUSER>>] 

的存儲過程是在合併爲一個大的腳本與他人使用Powershell,我用一個用戶名替換了<>值。

我想修改這個,以便我可以授予在該數據庫中存在的列表中的用戶權限。例如:

GRANT EXECUTE ON [dbo].[GetItem] TO [User1, User2, User3] 

是否可以用SQL來做到這一點?我正試圖儘可能減少這些變化。如果用戶不在數據庫中,它只是忽略它。

+5

您是否考慮過爲可以使用存儲過程並給予組執行權限的用戶提供組?然後,您可以將用戶添加到該組中。 – 2013-02-23 18:12:11

回答

2

根據documentation對於GRANT,你確實可以做到這一點。但由於brackets,您的查詢試圖授予一個用戶的權限[User1, User2, User3]。你可能希望這樣的:

GRANT EXECUTE ON [dbo].[GetItem] TO [User1], [User2], [User3]

雖然戈登指出,一組是,如果有可能在這種情況下容易得多。

+0

感謝你 - 如果用戶不存在,它會拋出一個錯誤嗎? – amateur 2013-02-23 19:42:35

+1

爲什麼不試試看? – Pondlife 2013-02-23 22:15:02