原生解决方案
- 开始 Microsoft SQL Server Management Studio (MSSMS)。
- 在 File 菜单中,单击 Connect Object Explorer 。然后,在 Connect to Server 对话框中:
- 在 Server type 列表框中,选择 Database Engine。
- 在 Server name 文本框中,输入 SQL 群集服务器的名称。
- 在 Authentication 列表框中,选择您的 SQL Server Authentication 方法 并指定用户凭据。如果您不希望每次连接到服务器时都重新键入密码,请勾选 Remember password。
- 单击 Connect 。
- 连接后,单击“New Query”,并将以下查询粘贴到查询字段中(输入完整用户名,例如 ENTERPRISE\J.Carter):
--- Creating temporary table for permissions list ---
SELECT entity_class,
NAME AS entity_name,
subentity_name,
permission_name
INTO #permsummary
FROM (
--- Collecting object-level permissions ---
SELECT 'OBJECT' AS entity_class,
NAME,
subentity_name,
permission_name
FROM sys.objects
CROSS apply Fn_my_permissions(Quotename(NAME), 'OBJECT') a
UNION ALL
--- Collecting database-level permissions ---
SELECT 'DATABASE' AS entity_class,
NAME,
subentity_name,
permission_name
FROM sys.databases
CROSS apply Fn_my_permissions(Quotename(NAME), 'DATABASE') a
UNION ALL
--- Collecting server-level permissions ---
SELECT 'SERVER' AS entity_class,
@@SERVERNAME AS NAME,
subentity_name,
permission_name
FROM Fn_my_permissions(NULL, 'SERVER')) p
--- Grouping all effective permissions for single object ---
SELECT DISTINCT entity_class,
entity_name,
subentity_name,
permissions
FROM (SELECT *
FROM #permsummary) p1
CROSS APPLY (SELECT permission_name + ', '
FROM (SELECT *
FROM #permsummary) p2
WHERE p2.entity_class = p1.entity_class
AND p2.entity_name = p1.entity_name
AND p2.subentity_name = p1.subentity_name
ORDER BY entity_class
FOR xml path('')) D ( permissions )
--- Delete temporary table ---
DROP TABLE #permsummary
- 单击 Execute(或按 F5 键)。
- 查看查询执行结果中的服务器级角色和主体(成员名称)列表:
Netwrix Auditor for SQL Server
- 打开 Netwrix Auditor,然后依次进入 Reports -> Predefined -> SQL Server - State-in-Time -> Account Permissions in SQL Server。
- 指定以下筛选条件:
- 在 User account 筛选条件中,输入完整的用户名(例如 ENTERPRISE\J.Carter)。
- 在 Object type 筛选条件中,选择 Select all 以查看某个用户的所有权限。
- 单击 View ,查看用户的有效权限清晰报告:
“Means Granted” 字段反映了分配给相关用户的服务器角色和数据库角色。单击这些值将打开 SQL Server Means Granted 报告,该报告会在所选的 SQL Server 对象上显示每个帐户的明确权限和继承权限,以及这些权限是如何授予的。
分享到