尝试使用动态参数在存储过程中创建 SQL 登录时,开发人员可能会遇到错误“'@username 附近的语法不正确” '。”此神秘消息可能会产生误导,导致混乱。
根本问题是 CREATE LOGIN 语句仅接受文字用户名,而不接受参数。要规避此限制,必须采用一种解决方法:
以下是如何实现此解决方法的示例:
DECLARE @sql nvarchar(max) = 'CREATE LOGIN ' + quotename(@username) + ' WITH PASSWORD = ' + quotename(@password, ''''); EXEC(@sql)
此代码首先构造动态 SQL 命令字符串,确保用户名和密码引用是为了防止 SQL 注入攻击。然后,它使用 EXEC 语句执行动态 SQL 命令,创建 SQL 登录。
通过采用这种方法,开发人员可以克服 CREATE LOGIN 仅接受文字的限制,并在其存储过程中动态创建 SQL 登录。
以上是如何在存储过程中动态创建 SQL 登录?的详细内容。更多信息请关注PHP中文网其他相关文章!