Mam bazę danych Microsoft SQL Server 2008 R2. Zdefiniowano użytkownika Marie, który ma dostęp do tabel w głównej bazie danych; to działa dobrze. Teraz chciałbym, żeby Marie mogła wykonać to zapytanie:
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
Zaangażowane tabele to tabele główne; Jak mogę wyrazić zgodę na to, żeby Marie odczytywała z nich? Próbowałem już wykonać następujące czynności jako dbo:
GRANT ALL on sys.dm_tran_locks TO marie
GRANT ALL on sys.sysprocesses TO marie
Mimo to, gdy Marie próbuje wykonać powyższe zapytanie, błąd jest następujący:
Msg 297, Level 16, State 1, Line 1
The user does not have permission to perform this action.
Co ja robię źle?
sys.dm_exec_requests
,sys.dm_exec_sessions
itp.,sysprocesses
Jest to widok kompatybilności wstecznej i zostanie w pewnym momencie usunięty z produktu.