授予用户 SQL Server SHOWPLAN 权限是否有任何风险?

Rao*_*bin 25 sql-server-2008 sql-server execution-plan

我正在对大型SQL server 2008 数据库做一些性能调优,IT 组不愿意给SHOWPLAN 权限。过去,“显示执行计划”是了解单个查询和过程性能的最有效方法。

授予此权限有哪些固有风险?对数据库的开发副本进行这种限制是否有正当理由?

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

:我认为没有回应意味着除了下面提到的风险之外没有重大的安全风险。基本上,将其限制在开发数据库上会适得其反。

如果有人提出更好的答案,我会更新。感谢您的意见!

小智 20

看看在线书籍中的Showplan Security,它说:

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

例如,考虑以下查询:

SELECT COUNT(*)  FROM table_1  WHERE column_1 < 10 
Run Code Online (Sandbox Code Playgroud)

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

这种风险似乎可以忽略不计,特别是考虑到这是一个开发服务器,所有查询都来自开发人员和 IT 人员,而不是用户。