2013-02-23 74 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

相关问题