我正在对一个大型server 2008数据库进行一些性能优化,IT组不愿意给予SHOWPLAN权限。在过去,“显示执行计划”是理解单个查询和过程性能的最有效方法。
授予这一许可所固有的风险是什么?是否有正当理由对数据库的开发副本进行这种限制?
注意:此SQL IT组在单个Server实例下具有200+数据库。谢谢。
答:我认为没有回应意味着除了下面提到的安全风险之外,没有其他重大的安全风险。基本上,将其限制在开发数据库上是适得其反的。
如果有人想出更好的答案,我会更新的。谢谢你的评论!
发布于 2012-01-10 10:12:54
看看“联机丛书”中的展示计划安全性,它说:
具有
SHOWPLAN、ALTER TRACE或VIEW SERVER STATE权限的用户可以查看显示计划输出中捕获的查询。这些查询可能包含敏感信息,如密码。因此,建议只将这些权限授予有权查看敏感信息的用户,例如db_owner固定数据库角色的成员或sysadmin固定服务器角色的成员。我们还建议您只将包含显示计划相关事件的显示计划文件或跟踪文件保存到使用NTFS文件系统的位置,并限制对有权查看敏感信息的用户的访问。例如,考虑以下查询:从table_1中选择COUNT(*),其中column_1 < 10,如果恶意用户为像本例这样的一组查询生成Showplan输出,并且每次用不同的常量替换谓词中的值"10“,则用户可以通过读取估计的行计数来推断column_1在table_1中的列值的大致数据分布。
这种风险似乎可以忽略不计,特别是考虑到这是一个开发服务器,所有查询都来自devs和IT人员,而不是用户。
https://dba.stackexchange.com/questions/10406
复制相似问题