动态sql sp_executesql/execute(@sql)暗藏杀机
形如如下的脚本:
declare @sql nvarchar(1000)
set @sql='select '+@sql
exec sp_executesql @stmt=@sql
只是想简单的把一个结果返回给客户端
@sql=' 1+1'
但是这里有一个严重的安全问题!
比如
@sql=' 1+1 delete myuser'
将会删除myuser表的全部信息
除了select外,有没有其它的将信息较安全的返回给客户端的办法?
(print是不行的,我试了)