向用户授予SQL Server SHOWPLAN权限有任何风险吗?


23

我正在对大型SQL Server 2008数据库进行性能调整,并且IT小组不愿意授予SHOWPLAN权限。过去,“显示执行计划”一直是了解单个查询和过程的性能的最有效方法。

授予此许可有哪些固有风险?对数据库的开发副本进行此限制是否有合理的理由?

注意:该SQL IT组在一个SQL Server实例下有200多个数据库。谢谢。

:我认为缺乏响应是指除以下所述之外,没有重大的安全风险。基本上,将其限制在开发数据库上会适得其反。

如果有人想出更好的答案,我将进行更新。感谢您的意见!

Answers:


19

看看联机丛书中的Showplan安全性,其中说:

拥有SHOWPLANALTER TRACEVIEW SERVER STATE权限的用户可以查看Showplan输出中捕获的查询。这些查询可能包含敏感信息,例如密码。因此,我们建议您仅将这些权限授予那些有权查看敏感信息的用户,例如 db_owner固定数据库角色的成员或sysadmin固定服务器角色的成员。我们还建议您仅将Showplan文件或包含Showshow相关事件的跟踪文件保存到使用NTFS文件系统的位置,并且建议您限制对有权查看敏感信息的用户进行访问。

例如,考虑以下查询:

SELECT COUNT(*)  FROM table_1  WHERE column_1 < 10 

如果恶意用户产生的一组这样的示例查询计划输出,并与不同常数谓词每次替换值“10”,用户可以推断该列值的近似数据分发COLUMN_1TABLE_1通过阅读估计的行数。

这种风险确实微不足道,特别是考虑到这是一台开发服务器,其中所有查询都来自开发人员和IT人员,而不是用户。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.