在SQL Server 2005中,如何使用变量作为用户名来使用GRANT或DENY权限访问数据库对象?我曾尝试:在SQL Server 2005中与GRANT和DENY一起使用变量
DECLARE @username varchar(30)
SET @username = 'DOMAIN\UserName'
GRANT SELECT ON [mytable] TO @username
GRANT UPDATE([field one], [field two], [field three]) ON [mytable] TO @username
我得到Incorrect syntax near '@username'
,所以后来我包裹在[和]
GRANT SELECT ON [mytable] TO [@username]
然而,这随后导致Cannot find the user '@username', because it does not exist or you do not have permission
。我怎样才能做到这一点,而不必输入每个语句的用户名?我想要这样做,以减少任何错字的机会(这可能会导致错误的用户获得权限设置)
只要记住保护代码免受SQL注入。 – 2009-06-18 12:51:02
这将导致一个错误: 未能找到存储过程 'GRANT SELECT ON [MYTABLE] TO域\用户名' – SamWM 2009-06-18 12:52:58