我有一个存储过程,可以根据用户输入创建动态SQL并执行它。
create proc MySP @input nvarchar(max)
as
declare @sql nvarchar(max) = // generate sql using @input and data from tables
-- The generated SQL will need to access linked server too
exec(@sql)
为防止插入,删除,更新,删除等(选择即可)的SQL注入攻击,exec(@sql) as login='aReadonlyLogin'
是否有效?这是不使用只读登录名的方法吗?开发人员可能没有创建新登录名的权限。