我是SQL的新手,想知道是否有人可以帮我解决所有非DBA用户的问题,这些用户来自当前数据库,也可能是整个服务器(所有数据库)。
非常感谢你!
答案 0 :(得分:0)
考虑到所有DBA都是Sysadmin角色的成员,您可以执行以下操作来检查不是Sysadmin角色成员的成员。
SELECT DISTINCT
s.name AS principal_name
FROM sys.server_principals s
INNER JOIN sys.server_permissions p ON s.principal_id = p.grantee_principal_id
WHERE s.type IN ( 's', 'u' )
AND NOT EXISTS ( SELECT 1
FROM sys.server_role_members m
INNER JOIN sys.server_principals sp
ON m.role_principal_id = sp.principal_id
WHERE s.principal_id = m.member_principal_id
AND sp.name = 'sysadmin' );