Netwrix 1Secure 提供跨数据和身份的统一可见性——免费试用14天,享有完全访问权限。开始免费试用

资源中心操作指南

如何检查 SQL Server 中的用户权限

如何检查 SQL Server 中的用户权限

原生解决方案

  • 开始 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 键)。
  • 查看查询执行结果中的服务器级角色和主体(成员名称)列表:
How to View SQL Server Database File Locations - Native Audiuting

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 ,查看用户的有效权限清晰报告:
a screenshot of the account permissions in sql server .

“Means Granted” 字段反映了分配给相关用户的服务器角色和数据库角色。单击这些值将打开 SQL Server Means Granted 报告,该报告会在所选的 SQL Server 对象上显示每个帐户的明确权限和继承权限,以及这些权限是如何授予的。

分享到