Это всего лишь один способ сделать что-то. Upsides включают в себя сохранение всего вашего кода SQL в одном месте, проверка procs для синтаксиса во время создания и возможность установки разрешений на procs, которые обычно представляют собой своего рода «действие» и хорошо подходят для концептуальной модели безопасности.
Недостатки включают массовое количество проков для любого среднего или большего применения и все домашнее хозяйство, которое поставляется с этим.
Продукт моего работодателя использует прозы для всего, и я должен сказать, что при правильной практике это вполне сносно.
Это «избегать» или уменьшить риск внедрения sql? Я думал, что для исключения потребуется сильная проверка ввода, Нет? – Shaw 2008-12-04 13:36:07
Пока вы всегда используете параметры, а не используете конкатенацию, SQL-инъекция невозможна. Причина в том, что параметры отделяют синтаксис от значений - все, что содержится в параметрах, не может повлиять на то, как SQL анализируется, потому что это уже сделано. – 2008-12-04 13:42:22
Параметрированные запросы не защищены от SQL-инъекции AFAIK, если код не вызывает sp_executesql или что-то в этом роде. – 2008-12-04 13:43:06