Tengo una base de datos Microsoft SQL Server 2008 r2. Se define un usuario llamado marie, que puede acceder a las tablas en la base de datos principal; Esto funciona bien. Ahora, me gustaría que Marie pueda realizar esta consulta:
SELECT resource_type,spid,login_time,status,hostname,program_name,nt_domain,nt_username,loginame
FROM sys.dm_tran_locks dl
JOIN sys.sysprocesses sp on dl.request_session_id = sp.spid
Las tablas involucradas son tablas maestras; ¿Cómo le doy permiso a Marie para leer de ellos? Ya intenté ejecutar lo siguiente como dbo:
GRANT ALL on sys.dm_tran_locks TO marie
GRANT ALL on sys.sysprocesses TO marie
Aún así, cuando Marie intenta realizar la consulta anterior, el error es:
Msg 297, Level 16, State 1, Line 1
The user does not have permission to perform this action.
¿Qué estoy haciendo mal?
sys.dm_exec_requests
,sys.dm_exec_sessions
etc.sysprocesses
es una vista compatibilidad con versiones anteriores y se separó del producto en algún momento.