我有一组 5 名开发人员,他们需要能够查看他们为数据库编写的查询计划,并且仅限于该数据库。我拒绝让他们成为系统管理员的成员。我不希望他们能够在此服务器上运行跟踪,也不希望他们能够运行 dmv。
这 5 个开发人员是一个 windows 组的成员。我已让他们成为 db_owner 的成员。
这是我发现的:
- 尝试查看 SHOWPLAN 输出时,拒绝服务器权限 ALTER TRACE 的服务器主体将遇到错误 262
- 即使数据库主体具有 GRANT for SHOWPLAN 数据库权限,也会发生这种情况
- 发生这种情况是因为 ALTER TRACE 权限隐含了 SHOWPLAN 权限
- 如果数据库主体是数据库所有者,则不会发生这种情况
- 具有 GRANT 的服务器权限 ALTER TRACE 的服务器主体将能够获得 SHOWPLAN 输出,而无需为单个数据库显式授予 SHOWPLAN
只有 sysadmin 并且如果您映射到 db 中的 dbo 用户名,它不会执行检查。
有没有办法让这些开发人员能够在没有系统管理员角色或授予更改跟踪或授予查看服务器状态的情况下查看计划的能力?