听起来很可怕,必须在以下动态SQL中保护密码参数的输入:CREATE LOGIN NewLogin WITH PASSWORD='MyStrongPassword'
。无法使用@parameter:
像这样PASSWORD=@pwd
('@pwd'错误附近的语法错误)。使用表名或用户名等其他参数,它或多或少都很简单:允许使用字母,数字和下划线,使用简单的正则表达式进行验证并对其进行引号化。使用密码,您必须允许使用强字符。
那么密码应该从逗号,空格等某些字符中清除,还是有更好的方法?
答案 0 :(得分:1)
不是直接答案,但您可以参数化sp_addlogin:
exec sp_AddLogin @user, @password;
或者您可以使用SMO。