Каковы последствия для безопасности sp_executesql?


9

По умолчанию в SQL Server [public]роль имеет EXECUTEправа на sp_executesql.

Тем не менее, я унаследовал сервер базы данных, на котором предыдущий администратор БД отозвал EXECUTEправо sp_executesql.

В качестве временного обходного пути я предоставляю EXECUTEправа sp_executesqlпо мере необходимости (через роль в базе данных master). Но это начинает быть болью обслуживания.

Если я верну EXECUTEпублике, есть ли какие-то последствия, о которых мне нужно знать?

Ответы:


8

Никто. sp_executesqlвыполняет SQL в том же контексте и привилегиях, что и исходный вызывающий объект, который выполняет тот же SQL. Существует множество случаев, когда динамический SQL неизбежен.


3
-1 , потому что ответ не означает , что Microsoft отмечает , что может представлять угрозу для безопасности msdn.microsoft.com/en-us/library/ms188001(v=sql.105).aspx
miracle173

@ miracle173 - Честно говоря, это плохо написанный динамический SQL, который не является угрозой безопасности sp_executesql. Если предположить, что требование динамического SQL, а затем отключение, sp_executesqlможет на самом деле увеличить риск, по крайней мере, это позволит вам параметризировать запросы (в отличие от EXEC)
Martin Smith,

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