我有一个数据库Microsoft SQL Server 2008 r2。定义了一个名为marie的用户,该用户可以访问主数据库上的表。这很好。现在,我希望marie能够执行以下查询:
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
涉及的表是主表;如何授予玛丽向他们阅读的权限?我已经尝试过以dbo执行以下命令:
GRANT ALL on sys.dm_tran_locks TO marie
GRANT ALL on sys.sysprocesses TO marie
不过,当玛丽尝试执行上述查询时,错误是:
Msg 297, Level 16, State 1, Line 1
The user does not have permission to perform this action.
我究竟做错了什么?
sys.dm_exec_requests
,sys.dm_exec_sessions
等sysprocesses
是向后兼容的视图,并且有时会从产品中删除。