La ejecución del SQL Server Profiler requiere al menos del permiso de servidor ALTER TRACE. Este es el mismo permiso que se requiere para poder ejecutar los procedimientos almacenados de T-SQL que se utilizan para crear las trazas.
Veamos un ejemplo.
Creamos un usuario con mínimos permisos :
USE [master]
GO
-- creamos el Login
CREATE LOGIN [prueba]
WITH PASSWORD=N'pruebaPass',
DEFAULT_DATABASE=[master],
CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
Luego podemos verificar que no se puede acceder mediante el profiler:
Hacer click en la imagen para agrandarla.
Asignamos el permiso de servidor ALTER TRACE con lo cual le concedemos el permiso de hacer trazas y conectar el Profiler para realizar un seguimiento.
GRANT ALTER TRACE
TO [Prueba]
GO
Luego nos conectamos desde el Profiler y verificamos que ahora si se puede conectar.
Entonces ejecutamos :
CREATE LOGIN [prueba2]
WITH PASSWORD=N'pruebaPass',
DEFAULT_DATABASE=[master],
CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
exec sp_help 'sys.indexes'
Como puede verse en la próxima imagen siguiente, el Profiler funciona y como seleccionamos el evento SQL:BatchStarting nos muestra las sentencias que ejecutamos.
Hacer click en la imagen para agrandarla.
Consideraciones de seguridad importantes al asignar el permiso ALTER TRACE
Es importante ver que en el caso del CREATE LOGIN nos oculta los datos del usuario y la contraseña. Sin embargo nos muestra el parámetro del procedimiento almacenado sp_help.
Como los usuarios que tienen el permiso ALTER TRACE pueden ver las consultas capturadas, se debe tener cuidado ya que las mismas pueden contener datos confidenciales, como contraseñas que se pasan como parámetros en los procedimientos almacenados. El caso mas común es cuando se utilizan mecanismos propietarios de autenticación. Por lo tanto, es importante conceder estos permisos solo a los usuarios que tengan autorización para ver información confidencial.