我想做一个 t-sql 查询来检查哪些登录在服务器类型安全对象中具有“查看服务器状态”权限。如何做到这一点?
这个来自 mssqltips 的查询没有显示:
http://www.mssqltips.com/tip.asp?tip=1718
SELECT prin.[name] [User], sec.state_desc + ' ' + sec.permission_name [Permission]
FROM [sys].[database_permissions] sec
JOIN [sys].[database_principals] prin
ON sec.[grantee_principal_id] = prin.[principal_id]
WHERE sec.class = 0
ORDER BY [User], [Permission];
您需要检查服务器级别的权限。您拥有的查询在数据库级别检查权限。您可以通过使用 sys.server_permissions 和 sys.server_principals 视图来实现这一点。就像是:
有关sys.server_permissions 视图的更多信息,请参阅此内容。