Существуют ли какие-либо риски для предоставления пользователям разрешения SQL Server SHOWPLAN?

23

Я выполняю некоторые настройки производительности для большой базы данных SQL Server 2008, и ИТ-группа не желает давать разрешение SHOWPLAN. В прошлом «Показывать план выполнения» был наиболее эффективным способом понять производительность отдельных запросов и процедур.

Какие риски присущи предоставлению этого разрешения? Существует ли законное обоснование для такого ограничения на копию базы данных для разработки?

Примечание. Эта группа ИТ-специалистов по SQL имеет более 200 баз данных в одном экземпляре SQL Server. Спасибо.

Ответ : я принимаю отсутствие ответа, чтобы означать, что нет никаких существенных рисков безопасности, кроме того, который отмечен ниже. По сути, ограничение этого для базы данных разработки контрпродуктивно.

Я обновлю это, если кто-нибудь придумает лучший ответ. Спасибо за ваши комментарии!

RaoulRubin
источник

Ответы:

19

Взгляните на Showplan Security в Books Online, где написано:

Пользователи , которые имеют SHOWPLAN, ALTER TRACEили VIEW SERVER STATEразрешение могут просматривать запросы, которые захватываются в Showplan выходе. Эти запросы могут содержать конфиденциальную информацию, такую ​​как пароли. Поэтому мы рекомендуем предоставлять эти разрешения только пользователям, которым разрешено просматривать конфиденциальную информацию, таким как члены предопределенной роли базы данных db_owner или члены предопределенной роли сервера sysadmin . Мы также рекомендуем сохранять файлы Showplan или файлы трассировки, содержащие события, связанные с Showplan, в месте, где используется файловая система NTFS, и ограничивать доступ для пользователей, которым разрешено просматривать конфиденциальную информацию.

Например, рассмотрим следующий запрос:

SELECT COUNT(*)  FROM table_1  WHERE column_1 < 10 

Если злонамеренный пользователь создает выходные данные Showplan для набора запросов, подобных этому примеру, и каждый раз заменяет значение «10» в предикате различными константами, пользователь может вывести приблизительное распределение данных значений столбца для column_1 в table_1 , прочитав расчетное количество строк.

Этот риск кажется незначительным, особенно если учесть, что это сервер разработки, где все запросы будут от разработчиков и ИТ-специалистов, а не пользователей.

Пол Уайт говорит, что GoFundMonica
источник