我需要分配使用 sys.database_mirroring 的权限,当然我想提供最少的权限。当我查看微软主页时,它说:
要查看 master 或 tempdb 以外的数据库的行,您必须是数据库所有者或至少具有 ALTER ANY DATABASE 或 VIEW ANY DATABASE 服务器级权限或 master 数据库中的 CREATE DATABASE 权限。要查看镜像数据库上的非 NULL 值,您必须是 sysadmin 固定服务器角色的成员。
在测试服务器上尝试后,我无法弄清楚最后一句话是什么意思。有人知道在什么情况下需要系统管理员权限吗?
评论:“要查看镜像数据库上的非 NULL 值,您必须是 sysadmin 固定服务器角色的成员”可在sys.database_mirroring动态管理视图的讨论中找到:
https://msdn.microsoft.com/en-us/library/ms178655.aspx
尝试运行以下语句:
使用我的系统管理员帐户,我得到了每个数据库的一行。大多数行都是 NULL,因为它们不是镜像数据库,但是两个镜像报告它们的状态。如果您只想检查正在运行的镜像,您可以使用:
使用我的非系统管理员帐户,我什么也得不到。没有返回任何行,没有 ROWCOUNT,等等,只有延迟的“叮”声。
所以,那张便条只是想告诉你,当你没有得到任何信息时不要感到惊讶。(也许除了“叮”声。)