我试图执行创建一个给定的用户名用户(通过SQL参数)SQL Server中创建与参数(VB.net)USER
exec sp_executesql N'CREATE USER @LoginName
FOR LOGIN @LoginName;',
N'@LoginName varchar(5)', @LoginName='myuser'
继承人的代码生成那上面:
Dim myCommand As SqlCommand = New SqlCommand("CREATE USER @LoginName
FOR LOGIN @LoginName;",
ClassDatabaseConnection.CustomInstance)
myCommand.CommandType = CommandType.Text
myCommand.Parameters.Add("@LoginName", SqlDbType.VarChar).Value = LoginName
myCommand.ExecuteScalar()
我得到和错误:
Incorrect syntax near '@LoginName'.
我认为这是由于为varchar被传递的参数导致“MYUSER”,而比MyUser
我不能用sql参数来做这个吗?
我试图避免这种情况,由于SQL注入。 – madlan 2010-10-16 19:09:48
@madlan,请注意,但您可以在提交之前始终在您的登录名中检查错误字符。分号,引号和双连字符是一个很好的起点。就我个人而言,我从来不会在用户名中允许这些字符。 – Brad 2010-10-18 12:19:29
好点布拉德,这是你的建议。 – madlan 2010-10-19 20:14:04