我想做一个t-sql查询来检查哪些login有服务器types安全性中的“查看服务器状态”权限。 如何做到这一点?
这个来自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视图来实现此目的。 就像是:
SELECT pr.* FROM sys.server_permissions p INNER JOIN sys.server_principals pr ON p.grantee_principal_id = pr.principal_id WHERE p.type = 'VWSS'
有关sys.server_permissions视图的更多信息,请参阅此处。