Ho un database Microsoft SQL Server 2008 r2. Viene definito un utente chiamato Marie, che può accedere alle tabelle nel database principale; questo funziona bene. Ora, vorrei che Marie potesse eseguire questa query:
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
Le tabelle coinvolte sono tabelle principali; come posso dare il permesso a Marie di leggere da loro? Ho già provato a eseguire quanto segue come dbo:
GRANT ALL on sys.dm_tran_locks TO marie
GRANT ALL on sys.sysprocesses TO marie
Tuttavia, quando Marie tenta di eseguire la query sopra, l'errore è:
Msg 297, Level 16, State 1, Line 1
The user does not have permission to perform this action.
Che cosa sto facendo di sbagliato?
sys.dm_exec_requests,sys.dm_exec_sessionsecc.sysprocessesÈ una vista di compatibilità con le versioni precedenti e verrà rimossa dal prodotto a un certo punto.