私は 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
私の質問は、insert ステートメントがパラメーター化されていないことを考えると、これは SQL インジェクション攻撃に対してどの程度安全かということです。私はそれに対して最も些細な攻撃を試みましたが、引用符は適切にエスケープされましたが、誰かが徹底的なテストを実行しましたか、それとも私を保護する何かがここで起こっていますか?