Создавайте динамические имена пользователей и назначайте роли - PullRequest
5 голосов
/ 14 февраля 2011

Мне нужно создать пользователя с динамическими именами с именем переменной

пример:

Следующий код дает синтаксическую ошибку.

Create Login @User_name WITH PASSWORD @password;
                USE database; 

и мне нужно назначить роль для созданного пользователя ..

Ответы [ 2 ]

9 голосов
/ 14 февраля 2011

Нельзя использовать создание логина с переменными.Вы должны создать оператор динамически или вы можете использовать sp_addlogin.Согласно http://msdn.microsoft.com/en-us/library/ms173768.aspx sp_addlogin устарела.

declare @UN sysname
declare @PW sysname
declare @S nvarchar(100)

set @UN = 'UserName'
set @PW = 'Password'

set @S = 'CREATE LOGIN ' + quotename(@UN) + ' WITH PASSWORD = ' + quotename(@PW, '''')

exec (@S)
5 голосов
/ 14 февраля 2011

Нельзя использовать переменные для имен объектов.Вы можете обмануть

exec sp_addlogin @User_name, @password;

Либо так, либо создать динамический SQL, но обязательно используйте QUOTENAME для предотвращения внедрения SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...