小编sta*_*ray的帖子

如何让一组开发人员能够查看查询计划,而不能运行跟踪或查看服务器状态?

我有一组 5 名开发人员,他们需要能够查看他们为数据库编写的查询计划,并且仅适用于该数据库。我拒绝让他们成为系统管理员的成员。我不希望他们能够在此服务器上运行跟踪,也不希望他们能够运行 dmv。

这 5 位开发人员是 Windows 组的成员。我已经让他们成为 db_owner 的成员。

这是我发现的:

  • 具有 DENY 服务器权限 ALTER TRACE 的服务器主体在尝试查看 SHOWPLAN 输出时将遇到错误 262
  • 即使数据库主体具有 SHOWPLAN 数据库权限的 GRANT,也会发生这种情况
  • 发生这种情况是因为 ALTER TRACE 权限隐含了 SHOWPLAN 权限
  • 如果数据库主体是数据库所有者,则不会发生这种情况
  • 具有 GRANT 服务器权限 ALTER TRACE 的服务器主体将能够获得 SHOWPLAN 输出,而无需为单个数据库显式授予 SHOWPLAN

只有 sysadmin 并且如果您映射到 db 中的 dbo 用户名,它不会执行检查。

有没有办法让这些开发人员能够在没有系统管理员角色或授予更改跟踪或授予查看服务器状态的情况下查看计划?

security sql-server permissions execution-plan

4
推荐指数
1
解决办法
1955
查看次数