创建用户动态名称并分配角色

时间:2011-02-14 11:31:12

标签: sql sql-server tsql

我需要创建具有变量名称

的动态名称的用户

示例:

以下代码给出了语法错误。

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

我需要为创建的用户分配角色..

2 个答案:

答案 0 :(得分:8)

您不能对变量使用create login。您必须动态创建语句,或者可以使用sp_addlogin。 根据{{​​3}},不推荐使用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)

答案 1 :(得分:5)

您不能将变量用于对象名称。你可以作弊

exec sp_addlogin @User_name, @password;

要么构造动态SQL,要么确保使用QUOTENAME来阻止SQL注入。