В SQL Server 2005 как вы можете использовать переменную для имени пользователя для разрешений GRANT или DENY для объектов с базой данных? Я пробовал:Использование переменных с GRANT и DENY в SQL Server 2005
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
. Как я могу это сделать без ввода имени пользователя для каждого оператора? Я хочу сделать это, чтобы уменьшить вероятность любой опечатки (что может привести к неправильному пользователю, получающему разрешения)
Это отлично работает, спасибо. Нет необходимости в операторах SET @sql с этим – SamWM