Я исследовал табличные параметры в SQL Server 2008 и обнаружил, что при передаче такого параметра в хранимую процедуру на сервер базы данных отправляется запрос, подобный следующему:
declare @p1 dbo.MyTypeName
insert into @p1 values(N'row1col1',N'row1col2')
insert into @p1 values(N'row2col1',N'row2col2')
insert into @p1 values(N'row3col1',N'row3col2')
insert into @p1 values(N'row4col1',N'row4col2')
insert into @p1 values(N'row5col1',N'row5col2')
exec StoredProcedureName @MyParam=@p1
У меня вопрос: насколько это защищено от атак SQL-инъекций, учитывая, что операторы вставки не параметризованы? Я попробовал самую тривиальную атаку против него, и кавычки были должным образом сброшены, но кто-нибудь провел исчерпывающий тест, или здесь происходит что-то еще, что защитит меня?