Magic Quadrant™ para la gestión de acceso privilegiado 2025: Netwrix reconocida por cuarto año consecutivo. Descarga el informe.

Plataforma
Centro de recursosGuía práctica
Cómo verificar los privilegios de usuario en SQL Server

Cómo verificar los privilegios de usuario en SQL Server

Solución nativa

  • Inicie Microsoft SQL Server Management Studio (MSSMS).
  • En el menú File, haga clic en Connect Object Explorer. Luego, en el cuadro de diálogo Connect to Server:
    • En el cuadro de lista de Server type, seleccione Database Engine.
    • En el cuadro de texto Server name, escriba el nombre del servidor de clúster SQL.
    • In the Authentication list box, choose your SQL Server Authentication method and specify the user credentials. If you do not want to re-type the password every time you connect to the server, tick Remember password.
  • Haga clic en Connect.
  • Al conectarse, haga clic en “New Query” y pegue la siguiente consulta en el campo de consulta (escriba el nombre de usuario completo, como 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
      
  • Haga clic en Execute (o presione la tecla F5).
  • Revise la lista de roles a nivel de servidor y principios (nombres de miembros) en los resultados de la ejecución de la consulta:
Image

Netwrix Auditor para SQL Server

  • Abra Netwrix Auditor y navegue a Informes -> Predefinidos -> SQL Server - Estado en Tiempo -> Permisos de cuenta en SQL Server.
  • Especifique los siguientes filtros:
    • En el filtro de User account, escriba el nombre completo del usuario (como ENTERPRISE\J.Carter).
    • En el filtro de Object type, elija Select all para ver todos los permisos de un usuario.
  • Haga clic en Ver para ver un informe claro sobre los permisos efectivos para el usuario:
Image

El campo “Means Granted” refleja los roles de servidor y roles de base de datos asignados al usuario en cuestión. Al hacer clic en los valores se abrirá el informe de SQL Server Means Granted, que muestra cada cuenta con permisos explícitos y heredados en el objeto de SQL Server seleccionado y cómo se otorgaron dichos permisos.

Compartir en