Які наслідки для sp_executesql для безпеки?


9

За замовчуванням у SQL Server [public]роль EXECUTEувімкнена sp_executesql.

Однак я успадкував сервер баз даних, де попередня DBA скасувала EXECUTEправо на sp_executesql.

Як тимчасове вирішення, я надав EXECUTEправа sp_executesqlза потребою (через роль у головній базі даних). Але це починає бути технічним болем.

Якщо я EXECUTEповернусь громадськості, чи мають бути якісь наслідки, про які я маю знати?

Відповіді:


8

Жоден. sp_executesqlвиконує SQL в точно такому ж контексті та привілеях, що і оригінальний абонент, який виконував би той самий SQL. Є багато-багато випадків, коли динамічний SQL неминучий.


3
-1 тому, що відповідь не вказує, що microsoft зазначає, що може виникнути ризик безпеки msdn.microsoft.com/en-us/library/ms188001(v=sql.105).aspx
чудо173

@ miracle173 - Справедливо кажучи, це погано написаний динамічний SQL, що не є ризиком для безпеки sp_executesql. Якщо припустити динамічну вимогу SQL, то відключення sp_executesqlможе насправді підвищити ризик, як мінімум, що дозволяє параметризувати запити (на відміну від них EXEC)
Мартін Сміт,

2
Хоча ризик ін'єкції sql ніколи не можна недооцінити, відключення sp_executesqlне є відповідним пом'якшенням. Переважна більшість помилок введення SQL виникає у клієнта, коли оператор SQL будується "вручну" шляхом об'єднання фрагментів SQL з вхідними змінними, а потім виконує "як є". Для всіх тих випадків, sp_executesqlколи бути відключеними, нічого не допомагає.
Рем Русану
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.