Mám databázi Microsoft SQL Server 2008 r2. Je definován uživatel marie, který má přístup k tabulkám v hlavní databázi; to funguje dobře. Nyní bych ráda, aby marie mohla provést tento dotaz:
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
Zahrnuté tabulky jsou hlavní tabulky; Jak mohu povolit marie číst od nich? Jako dbo jsem se již pokusil provést následující:
GRANT ALL on sys.dm_tran_locks TO marie
GRANT ALL on sys.sysprocesses TO marie
Přesto, když se marie pokusí provést výše uvedený dotaz, chyba je:
Msg 297, Level 16, State 1, Line 1
The user does not have permission to perform this action.
Co dělám špatně?
Systémové pohledy vyžadují mírně zvýšený stav, protože jsou široké. Budete chtít GRANT VIEW SERVER STATE
za to:
GRANT VIEW SERVER STATE TO marie;