我有一个数据库 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
Run Code Online (Sandbox Code Playgroud)
涉及的表是主表;我如何允许玛丽阅读它们?我已经尝试以 dbo 身份执行以下操作:
GRANT ALL on sys.dm_tran_locks TO marie
GRANT ALL on sys.sysprocesses TO marie
Run Code Online (Sandbox Code Playgroud)
尽管如此,当 marie 尝试执行上面的查询时,错误是:
Msg 297, Level 16, State 1, Line 1
The user does not have permission to perform this action.
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
Mik*_*Fal 28
系统视图需要稍微提升的状态才能查看,因为它们是实例范围的。你会想要GRANT VIEW SERVER STATE:
GRANT VIEW SERVER STATE TO marie;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47068 次 |
| 最近记录: |